{
	"targets": {
		"SafeDecimalMath": {
			"name": "SafeDecimalMath",
			"address": "0xDC6a8b54298584EA570D7b64dFcC4BfFC6c3f29a",
			"source": "SafeDecimalMath",
			"link": "https://etherscan.io/address/0xDC6a8b54298584EA570D7b64dFcC4BfFC6c3f29a",
			"timestamp": "2022-03-15T14:30:35.909Z",
			"txn": "",
			"network": "mainnet"
		},
		"Math": {
			"name": "Math",
			"address": "0xd5313446D69731b3C515EC268d91DA1BAc6d6187",
			"source": "Math",
			"link": "https://etherscan.io/address/0xd5313446D69731b3C515EC268d91DA1BAc6d6187",
			"timestamp": "2022-03-15T14:30:36.962Z",
			"txn": "",
			"network": "mainnet"
		},
		"SystemSettingsLib": {
			"name": "SystemSettingsLib",
			"address": "0x11a5f523B3496fd08a3b10a20928EF84cDc6aFa1",
			"source": "SystemSettingsLib",
			"link": "https://etherscan.io/address/0x11a5f523B3496fd08a3b10a20928EF84cDc6aFa1",
			"timestamp": "2022-03-15T14:30:37.758Z",
			"txn": "",
			"network": "mainnet"
		},
		"AddressResolver": {
			"name": "AddressResolver",
			"address": "0x1c300F19466997f419197B741B7eFb630AD780c4",
			"source": "AddressResolver",
			"link": "https://etherscan.io/address/0x1c300F19466997f419197B741B7eFb630AD780c4",
			"timestamp": "2022-03-15T14:30:38.945Z",
			"txn": "",
			"network": "mainnet"
		},
		"ReadProxyAddressResolver": {
			"name": "ReadProxyAddressResolver",
			"address": "0x2DEd3C5C4143ec182c0B483465943b5BF4e31628",
			"source": "ReadProxy",
			"link": "https://etherscan.io/address/0x2DEd3C5C4143ec182c0B483465943b5BF4e31628",
			"timestamp": "2022-03-15T14:30:39.674Z",
			"txn": "",
			"network": "mainnet"
		},
		"ext:AggregatorIssuedSynths": {
			"name": "ext:AggregatorIssuedSynths",
			"address": "0xD31eBE0a6a0BbD5515A106B70EeB9dF46da6c12E",
			"source": "SingleNetworkAggregatorIssuedSynths",
			"link": "https://etherscan.io/address/0xD31eBE0a6a0BbD5515A106B70EeB9dF46da6c12E",
			"timestamp": "2022-03-15T14:30:40.670Z",
			"txn": "",
			"network": "mainnet"
		},
		"ext:AggregatorDebtRatio": {
			"name": "ext:AggregatorDebtRatio",
			"address": "0xf0d6E5A91337a26A41B7cCCf988e78bE9800a577",
			"source": "SingleNetworkAggregatorDebtRatio",
			"link": "https://etherscan.io/address/0xf0d6E5A91337a26A41B7cCCf988e78bE9800a577",
			"timestamp": "2022-03-15T14:30:42.176Z",
			"txn": "",
			"network": "mainnet"
		},
		"FlexibleStorage": {
			"name": "FlexibleStorage",
			"address": "0xe740B4c5aAa9d2387c65a7304751Fa93A8F4c0F4",
			"source": "FlexibleStorage",
			"link": "https://etherscan.io/address/0xe740B4c5aAa9d2387c65a7304751Fa93A8F4c0F4",
			"timestamp": "2022-03-15T14:30:42.979Z",
			"txn": "",
			"network": "mainnet"
		},
		"SystemSettings": {
			"name": "SystemSettings",
			"address": "0xE7505152ca31DcEB72dD388E30B8e6763dA3f489",
			"source": "SystemSettings",
			"link": "https://etherscan.io/address/0xE7505152ca31DcEB72dD388E30B8e6763dA3f489",
			"timestamp": "2022-03-15T14:30:44.799Z",
			"txn": "",
			"network": "mainnet"
		},
		"SystemStatus": {
			"name": "SystemStatus",
			"address": "0x4DEF3Af32D54B4455ff4E96Be558675cfd0BE6Ac",
			"source": "SystemStatus",
			"link": "https://etherscan.io/address/0x4DEF3Af32D54B4455ff4E96Be558675cfd0BE6Ac",
			"timestamp": "2022-03-15T14:30:45.611Z",
			"txn": "",
			"network": "mainnet"
		},
		"ExchangeRates": {
			"name": "ExchangeRates",
			"address": "0xFC1B82B7C51Df86fE11d78DE32c150171a5D60CE",
			"source": "ExchangeRatesWithDexPricing",
			"link": "https://etherscan.io/address/0xFC1B82B7C51Df86fE11d78DE32c150171a5D60CE",
			"timestamp": "2022-03-15T14:30:47.449Z",
			"txn": "",
			"network": "mainnet"
		},
		"RewardEscrow": {
			"name": "RewardEscrow",
			"address": "0x642d5862ef903a0B329e4d99dFfE81Ba3A1ea389",
			"source": "RewardEscrow",
			"link": "https://etherscan.io/address/0x642d5862ef903a0B329e4d99dFfE81Ba3A1ea389",
			"timestamp": "2022-03-15T14:30:50.484Z",
			"txn": "",
			"network": "mainnet"
		},
		"RewardEscrowV2": {
			"name": "RewardEscrowV2",
			"address": "0xE62E65eed3ad59DaD10C70F4cB0A0ffa577e1E25",
			"source": "RewardEscrowV2",
			"link": "https://etherscan.io/address/0xE62E65eed3ad59DaD10C70F4cB0A0ffa577e1E25",
			"timestamp": "2022-03-15T14:30:55.223Z",
			"txn": "",
			"network": "mainnet"
		},
		"OikosEscrow": {
			"name": "OikosEscrow",
			"address": "0x7317b23AF1DC4b8660637Fea27Dc42dc1e3a7b7c",
			"source": "OikosEscrow",
			"link": "https://etherscan.io/address/0x7317b23AF1DC4b8660637Fea27Dc42dc1e3a7b7c",
			"timestamp": "2022-03-15T14:30:57.077Z",
			"txn": "",
			"network": "mainnet"
		},
		"OikosState": {
			"name": "OikosState",
			"address": "0x9e45A47553EE576E17656F262E2FA29DF0668b90",
			"source": "OikosState",
			"link": "https://etherscan.io/address/0x9e45A47553EE576E17656F262E2FA29DF0668b90",
			"timestamp": "2022-03-15T14:30:58.626Z",
			"txn": "",
			"network": "mainnet"
		},
		"OikosDebtShare": {
			"name": "OikosDebtShare",
			"address": "0xF1D51119C53D7862691Ea3997aED21E6811B397a",
			"source": "OikosDebtShare",
			"link": "https://etherscan.io/address/0xF1D51119C53D7862691Ea3997aED21E6811B397a",
			"timestamp": "2022-03-15T14:31:01.193Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyFeePool": {
			"name": "ProxyFeePool",
			"address": "0xb6EFfA14251D21009e67E596BbA7B97B689E7d1A",
			"source": "Proxy",
			"link": "https://etherscan.io/address/0xb6EFfA14251D21009e67E596BbA7B97B689E7d1A",
			"timestamp": "2022-03-15T14:31:01.929Z",
			"txn": "",
			"network": "mainnet"
		},
		"DelegateApprovalsEternalStorage": {
			"name": "DelegateApprovalsEternalStorage",
			"address": "0x83797fa374ec4274A2A4566cb18C41Ee40AD5fED",
			"source": "EternalStorage",
			"link": "https://etherscan.io/address/0x83797fa374ec4274A2A4566cb18C41Ee40AD5fED",
			"timestamp": "2022-03-15T14:31:04.316Z",
			"txn": "",
			"network": "mainnet"
		},
		"DelegateApprovals": {
			"name": "DelegateApprovals",
			"address": "0xdf238f487d2C9d794C5AF87450E919D9d38F6b20",
			"source": "DelegateApprovals",
			"link": "https://etherscan.io/address/0xdf238f487d2C9d794C5AF87450E919D9d38F6b20",
			"timestamp": "2022-03-15T14:31:08.162Z",
			"txn": "",
			"network": "mainnet"
		},
		"Liquidations": {
			"name": "Liquidations",
			"address": "0xDc60375f238Bb20e8b4F6ECECcC414D9Bb285a45",
			"source": "Liquidations",
			"link": "https://etherscan.io/address/0xDc60375f238Bb20e8b4F6ECECcC414D9Bb285a45",
			"timestamp": "2022-03-15T14:31:10.173Z",
			"txn": "",
			"network": "mainnet"
		},
		"EternalStorageLiquidations": {
			"name": "EternalStorageLiquidations",
			"address": "0x99627fc77cc7aFB69523BC4C5D24261E9C093A6F",
			"source": "EternalStorage",
			"link": "https://etherscan.io/address/0x99627fc77cc7aFB69523BC4C5D24261E9C093A6F",
			"timestamp": "2022-03-15T14:31:11.607Z",
			"txn": "",
			"network": "mainnet"
		},
		"FeePoolEternalStorage": {
			"name": "FeePoolEternalStorage",
			"address": "0xcb225675E89bAF85db9E184bfe2FFceF71079E9B",
			"source": "FeePoolEternalStorage",
			"link": "https://etherscan.io/address/0xcb225675E89bAF85db9E184bfe2FFceF71079E9B",
			"timestamp": "2022-03-15T14:31:13.839Z",
			"txn": "",
			"network": "mainnet"
		},
		"FeePool": {
			"name": "FeePool",
			"address": "0xb9cA3E800cffcB0910B9cADB410EaB29D17b9c74",
			"source": "FeePool",
			"link": "https://etherscan.io/address/0xb9cA3E800cffcB0910B9cADB410EaB29D17b9c74",
			"timestamp": "2022-03-15T14:31:16.883Z",
			"txn": "",
			"network": "mainnet"
		},
		"FeePoolState": {
			"name": "FeePoolState",
			"address": "0x1968e902d962C1D1F6342Ac179e4F8d4EB1cCb42",
			"source": "FeePoolState",
			"link": "https://etherscan.io/address/0x1968e902d962C1D1F6342Ac179e4F8d4EB1cCb42",
			"timestamp": "2022-03-15T14:31:18.495Z",
			"txn": "",
			"network": "mainnet"
		},
		"RewardsDistribution": {
			"name": "RewardsDistribution",
			"address": "0xe4DC44F0e93c13f159fEFcec53392f5433F22AA6",
			"source": "RewardsDistribution",
			"link": "https://etherscan.io/address/0xe4DC44F0e93c13f159fEFcec53392f5433F22AA6",
			"timestamp": "2022-03-15T14:31:20.702Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyERC20": {
			"name": "ProxyERC20",
			"address": "0xDC9a1393320178b3bF9b321415dA5e0a099e425f",
			"source": "ProxyERC20",
			"link": "https://etherscan.io/address/0xDC9a1393320178b3bF9b321415dA5e0a099e425f",
			"timestamp": "2022-03-15T14:31:22.418Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStateOikos": {
			"name": "TokenStateOikos",
			"address": "0xDFB45a5a8008D2ce07b07105EdB399564c60CC23",
			"source": "LegacyTokenState",
			"link": "https://etherscan.io/address/0xDFB45a5a8008D2ce07b07105EdB399564c60CC23",
			"timestamp": "2022-03-15T14:31:23.689Z",
			"txn": "",
			"network": "mainnet"
		},
		"Oikos": {
			"name": "Oikos",
			"address": "0x9C32b74C49a26463207d0583F1cA4F4DCDa23152",
			"source": "Oikos",
			"link": "https://etherscan.io/address/0x9C32b74C49a26463207d0583F1cA4F4DCDa23152",
			"timestamp": "2022-03-15T14:31:26.703Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyOikos": {
			"name": "ProxyOikos",
			"address": "0x12d22809f8cdAD64FD54fbb61F58cC488Ac1d464",
			"source": "Proxy",
			"link": "https://etherscan.io/address/0x12d22809f8cdAD64FD54fbb61F58cC488Ac1d464",
			"timestamp": "2022-03-15T14:31:27.510Z",
			"txn": "",
			"network": "mainnet"
		},
		"DebtCache": {
			"name": "DebtCache",
			"address": "0x8F56A0a616cB763De9cBd68F2aE322ef30Af59a8",
			"source": "DebtCache",
			"link": "https://etherscan.io/address/0x8F56A0a616cB763De9cBd68F2aE322ef30Af59a8",
			"timestamp": "2022-03-15T14:31:29.009Z",
			"txn": "",
			"network": "mainnet"
		},
		"Exchanger": {
			"name": "Exchanger",
			"address": "0x54001F8eDD9D0Af031EBd9A593cbE6D3d70cc15e",
			"source": "ExchangerWithFeeRecAlternatives",
			"link": "https://etherscan.io/address/0x54001F8eDD9D0Af031EBd9A593cbE6D3d70cc15e",
			"timestamp": "2022-03-15T14:31:31.201Z",
			"txn": "",
			"network": "mainnet"
		},
		"ExchangeCircuitBreaker": {
			"name": "ExchangeCircuitBreaker",
			"address": "0x70e47200F4af8c7576dDaA09015d42920437C5FE",
			"source": "ExchangeCircuitBreaker",
			"link": "https://etherscan.io/address/0x70e47200F4af8c7576dDaA09015d42920437C5FE",
			"timestamp": "2022-03-15T14:31:32.221Z",
			"txn": "",
			"network": "mainnet"
		},
		"VirtualSynthMastercopy": {
			"name": "VirtualSynthMastercopy",
			"address": "0x77ee7848Fa3CDEC4Bb9abF4f4477FC0629241857",
			"source": "VirtualSynthMastercopy",
			"link": "https://etherscan.io/address/0x77ee7848Fa3CDEC4Bb9abF4f4477FC0629241857",
			"timestamp": "2022-03-15T14:31:34.347Z",
			"txn": "",
			"network": "mainnet"
		},
		"ExchangeState": {
			"name": "ExchangeState",
			"address": "0xa8eA313A2519fC9a2228771C6BaF5c6949Ae4C13",
			"source": "ExchangeState",
			"link": "https://etherscan.io/address/0xa8eA313A2519fC9a2228771C6BaF5c6949Ae4C13",
			"timestamp": "2022-03-15T14:31:36.035Z",
			"txn": "",
			"network": "mainnet"
		},
		"Issuer": {
			"name": "Issuer",
			"address": "0x187525F45a315c539E65e65d33b02710De237339",
			"source": "Issuer",
			"link": "https://etherscan.io/address/0x187525F45a315c539E65e65d33b02710De237339",
			"timestamp": "2022-03-15T14:31:37.370Z",
			"txn": "",
			"network": "mainnet"
		},
		"TradingRewards": {
			"name": "TradingRewards",
			"address": "0x08773Cd36FfcB727e6018db8D9c9115749CDB39D",
			"source": "TradingRewards",
			"link": "https://etherscan.io/address/0x08773Cd36FfcB727e6018db8D9c9115749CDB39D",
			"timestamp": "2022-03-15T14:31:39.470Z",
			"txn": "",
			"network": "mainnet"
		},
		"SupplySchedule": {
			"name": "SupplySchedule",
			"address": "0x7e814FeDee6CAB81CF41FBE33E418c65A947E999",
			"source": "SupplySchedule",
			"link": "https://etherscan.io/address/0x7e814FeDee6CAB81CF41FBE33E418c65A947E999",
			"timestamp": "2022-03-15T14:31:45.800Z",
			"txn": "",
			"network": "mainnet"
		},
		"EscrowChecker": {
			"name": "EscrowChecker",
			"address": "0x4830758F0fA316Bf762973c7b8fd1B0516f2b917",
			"source": "EscrowChecker",
			"link": "https://etherscan.io/address/0x4830758F0fA316Bf762973c7b8fd1B0516f2b917",
			"timestamp": "2022-03-15T14:31:46.507Z",
			"txn": "",
			"network": "mainnet"
		},
		"OikosBridgeToBase": {
			"name": "OikosBridgeToBase",
			"address": "0x8DC7049163D7d91BfE3cFda63Cf737bcf5460227",
			"source": "OikosBridgeToBase",
			"link": "https://etherscan.io/address/0x8DC7049163D7d91BfE3cFda63Cf737bcf5460227",
			"timestamp": "2022-03-15T14:31:48.303Z",
			"txn": "",
			"network": "mainnet"
		},
		"OikosBridgeToOptimism": {
			"name": "OikosBridgeToOptimism",
			"address": "0x6EDd6BE52CDa544C82b67DF7D0567Eb8019fACd8",
			"source": "OikosBridgeToOptimism",
			"link": "https://etherscan.io/address/0x6EDd6BE52CDa544C82b67DF7D0567Eb8019fACd8",
			"timestamp": "2022-03-15T14:31:49.583Z",
			"txn": "",
			"network": "mainnet"
		},
		"OikosBridgeEscrow": {
			"name": "OikosBridgeEscrow",
			"address": "0x252Ef3dB8F66fD8eb8d4BEBCd442b62C41BC6f4a",
			"source": "OikosBridgeEscrow",
			"link": "https://etherscan.io/address/0x252Ef3dB8F66fD8eb8d4BEBCd442b62C41BC6f4a",
			"timestamp": "2022-03-15T14:31:50.243Z",
			"txn": "",
			"network": "mainnet"
		},
		"OwnerRelayOnEthereum": {
			"name": "OwnerRelayOnEthereum",
			"address": "0xc361429e4aEbb2725165E1F78025415cB70b4656",
			"source": "OwnerRelayOnEthereum",
			"link": "https://etherscan.io/address/0xc361429e4aEbb2725165E1F78025415cB70b4656",
			"timestamp": "2022-03-15T14:31:51.716Z",
			"txn": "",
			"network": "mainnet"
		},
		"OwnerRelayOnOptimism": {
			"name": "OwnerRelayOnOptimism",
			"address": "0x024aF13eBebB39d0424dBb9e8df80797DFbc350d",
			"source": "OwnerRelayOnOptimism",
			"link": "https://etherscan.io/address/0x024aF13eBebB39d0424dBb9e8df80797DFbc350d",
			"timestamp": "2022-03-15T14:31:53.146Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthRedeemer": {
			"name": "SynthRedeemer",
			"address": "0x3dF690f9A14a959BF21502703f8d9DC86F44cb79",
			"source": "SynthRedeemer",
			"link": "https://etherscan.io/address/0x3dF690f9A14a959BF21502703f8d9DC86F44cb79",
			"timestamp": "2022-03-15T14:31:54.344Z",
			"txn": "",
			"network": "mainnet"
		},
		"WrapperFactory": {
			"name": "WrapperFactory",
			"address": "0x03B123f7C22E71491282914c0b569feB7FBF6d9A",
			"source": "WrapperFactory",
			"link": "https://etherscan.io/address/0x03B123f7C22E71491282914c0b569feB7FBF6d9A",
			"timestamp": "2022-03-15T14:31:55.430Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStateoUSD": {
			"name": "TokenStateoUSD",
			"address": "0x4d57Aaf74B011db810e5A5e4f665BbFD4eeBb00f",
			"source": "TokenState",
			"link": "https://etherscan.io/address/0x4d57Aaf74B011db810e5A5e4f665BbFD4eeBb00f",
			"timestamp": "2022-03-15T14:31:56.884Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyoUSD": {
			"name": "ProxyoUSD",
			"address": "0x275A6A0e2A62908e8aA2CA61F3C87811a93cA960",
			"source": "Proxy",
			"link": "https://etherscan.io/address/0x275A6A0e2A62908e8aA2CA61F3C87811a93cA960",
			"timestamp": "2022-03-15T14:31:58.889Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyERC20oUSD": {
			"name": "ProxyERC20oUSD",
			"address": "0xF7e941f6ff5c046D52b12DBc12B2d3d1c4f8d856",
			"source": "ProxyERC20",
			"link": "https://etherscan.io/address/0xF7e941f6ff5c046D52b12DBc12B2d3d1c4f8d856",
			"timestamp": "2022-03-15T14:31:59.737Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthoUSD": {
			"name": "SynthoUSD",
			"address": "0x03079a1a9F3f955FE92714eb6e60FAe59F7219be",
			"source": "MultiCollateralSynth",
			"link": "https://etherscan.io/address/0x03079a1a9F3f955FE92714eb6e60FAe59F7219be",
			"timestamp": "2022-03-15T14:32:02.730Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStateoETH": {
			"name": "TokenStateoETH",
			"address": "0xB50B7CA5967e418666e3995e208Be9C21b327d1e",
			"source": "TokenState",
			"link": "https://etherscan.io/address/0xB50B7CA5967e418666e3995e208Be9C21b327d1e",
			"timestamp": "2022-03-15T14:32:05.583Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyoETH": {
			"name": "ProxyoETH",
			"address": "0x490A4d3dc7e0dB11b7BCeA458D0EA120B69A7869",
			"source": "ProxyERC20",
			"link": "https://etherscan.io/address/0x490A4d3dc7e0dB11b7BCeA458D0EA120B69A7869",
			"timestamp": "2022-03-15T14:32:06.694Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthoETH": {
			"name": "SynthoETH",
			"address": "0x6b0353B21E4230C9DA53b579aD5ff23538b7F557",
			"source": "MultiCollateralSynth",
			"link": "https://etherscan.io/address/0x6b0353B21E4230C9DA53b579aD5ff23538b7F557",
			"timestamp": "2022-03-15T14:32:09.792Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStateoBTC": {
			"name": "TokenStateoBTC",
			"address": "0x117e5c3f9F8305A1E07C5d6bdaC320BbAB0F5152",
			"source": "TokenState",
			"link": "https://etherscan.io/address/0x117e5c3f9F8305A1E07C5d6bdaC320BbAB0F5152",
			"timestamp": "2022-03-15T14:32:10.883Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyoBTC": {
			"name": "ProxyoBTC",
			"address": "0x67F3911C389e0731a1c6ADcb517202636C1d8a25",
			"source": "ProxyERC20",
			"link": "https://etherscan.io/address/0x67F3911C389e0731a1c6ADcb517202636C1d8a25",
			"timestamp": "2022-03-15T14:32:12.111Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthoBTC": {
			"name": "SynthoBTC",
			"address": "0x0e38FF464067484E3A189aa4914E2257fDEA2420",
			"source": "MultiCollateralSynth",
			"link": "https://etherscan.io/address/0x0e38FF464067484E3A189aa4914E2257fDEA2420",
			"timestamp": "2022-03-15T14:32:16.284Z",
			"txn": "",
			"network": "mainnet"
		},
		"Depot": {
			"name": "Depot",
			"address": "0x606255AEc2b599Fab79df2bfA3503256d19854Bd",
			"source": "Depot",
			"link": "https://etherscan.io/address/0x606255AEc2b599Fab79df2bfA3503256d19854Bd",
			"timestamp": "2022-03-15T14:32:19.731Z",
			"txn": "",
			"network": "mainnet"
		},
		"EtherWrapper": {
			"name": "EtherWrapper",
			"address": "0x9d4feF4a779Fe22E843354E26765C3c6d3110B40",
			"source": "EtherWrapper",
			"link": "https://etherscan.io/address/0x9d4feF4a779Fe22E843354E26765C3c6d3110B40",
			"timestamp": "2022-03-15T14:32:22.212Z",
			"txn": "",
			"network": "mainnet"
		},
		"NativeEtherWrapper": {
			"name": "NativeEtherWrapper",
			"address": "0xC4Abde0e48567D664cbEEcf1fa31D58a8b0cf9b3",
			"source": "NativeEtherWrapper",
			"link": "https://etherscan.io/address/0xC4Abde0e48567D664cbEEcf1fa31D58a8b0cf9b3",
			"timestamp": "2022-03-15T14:32:23.859Z",
			"txn": "",
			"network": "mainnet"
		},
		"CollateralUtil": {
			"name": "CollateralUtil",
			"address": "0x9164c721d62fc4afC4213c995f56bB057d8c1585",
			"source": "CollateralUtil",
			"link": "https://etherscan.io/address/0x9164c721d62fc4afC4213c995f56bB057d8c1585",
			"timestamp": "2022-03-15T14:32:25.620Z",
			"txn": "",
			"network": "mainnet"
		},
		"CollateralManagerState": {
			"name": "CollateralManagerState",
			"address": "0xC244d30e89Aa3496430Ff5912827aCE800e0B21a",
			"source": "CollateralManagerState",
			"link": "https://etherscan.io/address/0xC244d30e89Aa3496430Ff5912827aCE800e0B21a",
			"timestamp": "2022-03-15T14:32:28.169Z",
			"txn": "",
			"network": "mainnet"
		},
		"CollateralManager": {
			"name": "CollateralManager",
			"address": "0x2D680DfDe0172BF21E7F110836F08Cd3FB7897E0",
			"source": "CollateralManager",
			"link": "https://etherscan.io/address/0x2D680DfDe0172BF21E7F110836F08Cd3FB7897E0",
			"timestamp": "2022-03-15T14:32:40.520Z",
			"txn": "",
			"network": "mainnet"
		},
		"CollateralEth": {
			"name": "CollateralEth",
			"address": "0x930fF3C0e3Ee8c4fB5034E425531708D57470652",
			"source": "CollateralEth",
			"link": "https://etherscan.io/address/0x930fF3C0e3Ee8c4fB5034E425531708D57470652",
			"timestamp": "2022-03-15T14:32:44.059Z",
			"txn": "",
			"network": "mainnet"
		},
		"CollateralErc20": {
			"name": "CollateralErc20",
			"address": "0x690471a26eDF3931354f59219a414DF88BC1208e",
			"source": "CollateralErc20",
			"link": "https://etherscan.io/address/0x690471a26eDF3931354f59219a414DF88BC1208e",
			"timestamp": "2022-03-15T14:32:47.595Z",
			"txn": "",
			"network": "mainnet"
		},
		"CollateralShort": {
			"name": "CollateralShort",
			"address": "0x3e90A98719a4D13A1c3266b8078dbcFD4a8747Ac",
			"source": "CollateralShort",
			"link": "https://etherscan.io/address/0x3e90A98719a4D13A1c3266b8078dbcFD4a8747Ac",
			"timestamp": "2022-03-15T14:32:51.119Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketManager": {
			"name": "FuturesMarketManager",
			"address": "0xdc4ea2C3473bd9BE5ee0660271fc948c1615e862",
			"source": "EmptyFuturesMarketManager",
			"link": "https://etherscan.io/address/0xdc4ea2C3473bd9BE5ee0660271fc948c1615e862",
			"timestamp": "2022-03-15T14:32:51.619Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthUtil": {
			"name": "SynthUtil",
			"address": "0x987429ebbDd2152462a9638f98A3220c3337336D",
			"source": "SynthUtil",
			"link": "https://etherscan.io/address/0x987429ebbDd2152462a9638f98A3220c3337336D",
			"timestamp": "2022-03-15T14:32:52.516Z",
			"txn": "",
			"network": "mainnet"
		},
		"DappMaintenance": {
			"name": "DappMaintenance",
			"address": "0xD7dEd269841aA440fcEfE6d9d5E86efcD06f33eE",
			"source": "DappMaintenance",
			"link": "https://etherscan.io/address/0xD7dEd269841aA440fcEfE6d9d5E86efcD06f33eE",
			"timestamp": "2022-03-15T14:32:54.195Z",
			"txn": "",
			"network": "mainnet"
		}
	},
	"sources": {
		"SafeDecimalMath": {
			"bytecode": "61012d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060655760003560e01c8063313ce56714606a578063864029e7146086578063907af6c014609e5780639d8e21771460a4578063d5e5e6e61460aa578063def4419d1460b0575b600080fd5b607060b6565b6040805160ff9092168252519081900360200190f35b608c60bb565b60408051918252519081900360200190f35b608c60cb565b608c60d7565b608c60e3565b607060f3565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156fea265627a7a7231582022f84dae346d4ff605afa4d13f4160c927b1dda170bf475e159de9ced3f0bd5e64736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "PRECISE_UNIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "UNIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "highPrecisionDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "preciseUnit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "unit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x52bbc1aacf343481dae70dadbcda19b3057727a65c7d55b48536a0cb31aca7d0",
				"urls": [
					"bzz-raw://be8813f41c66bf877a73675afdaed6409a87c117a4315ad93e268dc58ff662e5",
					"dweb:/ipfs/QmWLvzfxCcwWKexXzPSuc4rGqczehvjk3LDuSWCAZcYwbm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SafeDecimalMath.sol": "SafeDecimalMath"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SafeDecimalMath.sol": {
						"keccak256": "0x52bbc1aacf343481dae70dadbcda19b3057727a65c7d55b48536a0cb31aca7d0",
						"urls": [
							"bzz-raw://be8813f41c66bf877a73675afdaed6409a87c117a4315ad93e268dc58ff662e5",
							"dweb:/ipfs/QmWLvzfxCcwWKexXzPSuc4rGqczehvjk3LDuSWCAZcYwbm"
						]
					}
				},
				"version": 1
			}
		},
		"Math": {
			"bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820cfe2b91b0e281eae73a298337acf3ed02f1938db5fcf635dfa17563835f1e93d64736f6c63430005100032",
			"abi": [],
			"source": {
				"keccak256": "0xd1b29d6664fb0d3d1135539c20fb039ea4618cbbd7268724e8d5195f67b4a35b",
				"urls": [
					"bzz-raw://538efc76acf721bc7fe0cb78d5f64e62fd1430bcacd8d9ce31de4e42bf879bc5",
					"dweb:/ipfs/QmTtU9AYPAt2LXWqd5cuLG9UAgAPZQv8FcK4NZhvfS6MDB"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Math.sol": "Math"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Math.sol": {
						"keccak256": "0xd1b29d6664fb0d3d1135539c20fb039ea4618cbbd7268724e8d5195f67b4a35b",
						"urls": [
							"bzz-raw://538efc76acf721bc7fe0cb78d5f64e62fd1430bcacd8d9ce31de4e42bf879bc5",
							"dweb:/ipfs/QmTtU9AYPAt2LXWqd5cuLG9UAgAPZQv8FcK4NZhvfS6MDB"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettingsLib": {
			"bytecode": "612106610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106103315760003560e01c806394286a1e116101c2578063c58c9ae41161010e578063f02d9a5b116100ac578063fb1b4c7e11610086578063fb1b4c7e14610a58578063fbfd964614610a60578063fd194a3514610350578063fe250a5514610aa757610331565b8063f02d9a5b14610a09578063f1076b2514610a48578063f344da6714610a5057610331565b8063d9158b03116100e8578063d9158b0314610983578063da91c7b814610782578063e6abf7cc146109c2578063e78e6bb914610a0157610331565b8063c58c9ae41461097b578063d4aebcef14610350578063d62ae3991461089457610331565b8063add0989d1161017b578063b3ebdca411610155578063b3ebdca4146108ac578063c264b8f3146106e2578063c35b995c146108eb578063c404a0de1461092e57610331565b8063add0989d14610894578063af8bc660146108a4578063b2ea7054146106e257610331565b806394286a1e1461088c57806398be8e3f146108945780639f91787d1461088c578063a4ce5b711461089c578063a6c4611014610350578063aad237391461089457610331565b806363daca09116102815780637ce2cc7f1161023a5780638134ddb7116102145780638134ddb714610808578063834f26de146103505780638ab5a4a2146106e257806392dabaf21461084d57610331565b80637ce2cc7f1461077a5780637e1ba6a4146107825780637eb29414146107c957610331565b806363daca09146106a3578063657c6dc7146106e25780636d4851f1146106ea57806372c6c3411461072957806375d0c0dc146107315780637c1d99d61461073957610331565b806321d0b6ce116102ee57806353c0bf1c116102c857806353c0bf1c146105c2578063580a975c1461060f5780635d3045ab146106175780635f7ad8711461065c57610331565b806321d0b6ce1461053e57806333ddab6814610583578063446ca4fd1461053e57610331565b8063085f95cd146103365780630e7bf1c51461035057806310ada7201461039157806311d78c0c146103d057806319305b3c1461041b5780631a5bb1f71461045a575b600080fd5b61033e610ae6565b60408051918252519081900360200190f35b81801561035c57600080fd5b5061038f6004803603606081101561037357600080fd5b506001600160a01b038135169060208101359060400135610af2565b005b81801561039d57600080fd5b5061033e600480360360608110156103b457600080fd5b506001600160a01b038135169060208101359060400135610b75565b8180156103dc57600080fd5b5061038f600480360360a08110156103f357600080fd5b506001600160a01b038135169060208101359060408101359060608101359060800135610cdb565b81801561042757600080fd5b5061038f6004803603606081101561043e57600080fd5b506001600160a01b038135169060208101359060400135610e92565b81801561046657600080fd5b5061038f6004803603608081101561047d57600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104ad57600080fd5b8201836020820111156104bf57600080fd5b803590602001918460208302840111640100000000831117156104e157600080fd5b9193909290916020810190356401000000008111156104ff57600080fd5b82018360208201111561051157600080fd5b8035906020019184602083028401116401000000008311171561053357600080fd5b509092509050610ed8565b81801561054a57600080fd5b5061038f6004803603608081101561056157600080fd5b506001600160a01b038135169060208101359060408101359060600135611083565b81801561058f57600080fd5b5061038f600480360360608110156105a657600080fd5b506001600160a01b03813516906020810135906040013561112b565b8180156105ce57600080fd5b5061038f600480360360a08110156105e557600080fd5b506001600160a01b03813581169160208101359160408201351690606081013590608001356111ad565b61033e61136f565b81801561062357600080fd5b5061038f6004803603608081101561063a57600080fd5b506001600160a01b038135169060208101359060408101359060600135611376565b81801561066857600080fd5b5061038f6004803603608081101561067f57600080fd5b506001600160a01b03813581169160208101359160408201359160600135166113fe565b8180156106af57600080fd5b5061038f600480360360608110156106c657600080fd5b506001600160a01b0381351690602081013590604001356114e6565b61033e611596565b8180156106f657600080fd5b5061038f6004803603606081101561070d57600080fd5b506001600160a01b0381351690602081013590604001356115a2565b61033e6115e9565b61033e6115fe565b81801561074557600080fd5b5061038f6004803603606081101561075c57600080fd5b506001600160a01b0381351690602081013590604001351515611613565b61033e61167a565b81801561078e57600080fd5b5061038f600480360360808110156107a557600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611681565b8180156107d557600080fd5b5061038f600480360360608110156107ec57600080fd5b506001600160a01b03813516906020810135906040013561171e565b81801561081457600080fd5b5061038f6004803603608081101561082b57600080fd5b506001600160a01b038135169060208101359060408101359060600135611765565b81801561085957600080fd5b5061038f6004803603606081101561087057600080fd5b506001600160a01b0381351690602081013590604001356117c2565b61033e61181f565b61033e611824565b61033e61182b565b61033e611837565b8180156108b857600080fd5b5061038f600480360360608110156108cf57600080fd5b506001600160a01b03813516906020810135906040013561183c565b8180156108f757600080fd5b5061038f6004803603606081101561090e57600080fd5b506001600160a01b038135811691602081013591604090910135166118ec565b81801561093a57600080fd5b5061038f600480360360a081101561095157600080fd5b506001600160a01b03813581169160208101359160408201351690606081013590608001356119b0565b61033e611ab6565b81801561098f57600080fd5b5061038f600480360360608110156109a657600080fd5b506001600160a01b038135169060208101359060400135611abd565b8180156109ce57600080fd5b5061038f600480360360608110156109e557600080fd5b506001600160a01b038135169060208101359060400135611b15565b61033e611bc4565b818015610a1557600080fd5b5061038f60048036036060811015610a2c57600080fd5b506001600160a01b038135169060208101359060400135611bcf565b61033e611c36565b61033e611c3d565b61033e611c44565b818015610a6c57600080fd5b5061038f60048036036080811015610a8357600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611c50565b818015610ab357600080fd5b5061038f60048036036060811015610aca57600080fd5b506001600160a01b038135169060208101359060400135611d05565b6703782dace9d9000081565b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018490526044810183905290516001600160a01b03851691631d5b277f91606480830192600092919082900301818387803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b50505050505050565b60006032821115610bc2576040805162461bcd60e51b81526020600482015260126024820152710a8d0e4cae6d0ded8c840e8dede40d0d2ced60731b604482015290519081900360640190fd5b610c536064610c4773__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0e57600080fd5b505af4158015610c22573d6000803e3d6000fd5b505050506040513d6020811015610c3857600080fd5b5051859063ffffffff611d6216565b9063ffffffff611dc416565b9050836001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b85846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610cbc57600080fd5b505af1158015610cd0573d6000803e3d6000fd5b505050509392505050565b610d73610d5e8373__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2657600080fd5b505af4158015610d3a573d6000803e3d6000fd5b505050506040513d6020811015610d5057600080fd5b50519063ffffffff611e2e16565b670de0b6b3a76400009063ffffffff611e8816565b831115610db15760405162461bcd60e51b8152600401808060200182810382526038815260200180611f136038913960400191505060405180910390fd5b6000610dcb82671bc16d674ec8000063ffffffff611ea616565b905080841015610e0c5760405162461bcd60e51b81526004018080602001828103825260288152602001806120486028913960400191505060405180910390fd5b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018790526044810186905290516001600160a01b03881691631d5b277f91606480830192600092919082900301818387803b158015610e7257600080fd5b505af1158015610e86573d6000803e3d6000fd5b50505050505050505050565b6001600160c01b03811115610af25760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6c6028913960400191505060405180910390fd5b828114610f2c576040805162461bcd60e51b815260206004820152601860248201527f4172726179206c656e6774687320646f6e74206d617463680000000000000000604482015290519081900360640190fd5b60005b83811015610b6c5767016345785d8a0000838383818110610f4c57fe5b905060200201351115610fa6576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b866001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b88888886818110610fd457fe5b9050602002013560405160200180838152602001828152602001925050506040516020818303038152906040528051906020012086868681811061101457fe5b905060200201356040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b505060019092019150610f2f9050565b6040805160208082018690528183018590528251808303840181526060830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b6064830152608482015260a4810183905290516001600160a01b03861691631d5b277f9160c480830192600092919082900301818387803b15801561110d57600080fd5b505af1158015611121573d6000803e3d6000fd5b5050505050505050565b603c81101561116b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611fef6026913960400191505060405180910390fd5b62015180811115610af25760405162461bcd60e51b81526004018080602001828103825260278152602001806120706027913960400191505060405180910390fd5b670de0b6b3a764000082131561120a576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff198212156112525760405162461bcd60e51b8152600401808060200182810382526021815260200180611f4b6021913960400191505060405180910390fd5b60008212156112b357808260000313156112b3576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724275726e46656552617465000000000000604482015290519081900360640190fd5b6040805160208082018790526bffffffffffffffffffffffff19606087901b168284015282516034818403018152605483018085528151919092012063d71a9b0160e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810184905290516001600160a01b0387169163d71a9b019160b880830192600092919082900301818387803b15801561135057600080fd5b505af1158015611364573d6000803e3d6000fd5b505050505050505050565b62093a8081565b801561108357603c8110156113bc5760405162461bcd60e51b815260040180806020018281038252603a815260200180611fb5603a913960400191505060405180910390fd5b620151808111156110835760405162461bcd60e51b815260040180806020018281038252603b815260200180612097603b913960400191505060405180910390fd5b6001600160a01b038116611459576040805162461bcd60e51b815260206004820152601e60248201527f41746f6d6963206571756976616c656e74206973203020616464726573730000604482015290519081900360640190fd5b60408051602080820186905281830185905282518083038401815260608301808552815191909201206309b9412f60e31b9091526d53797374656d53657474696e677360901b606483015260848201526001600160a01b0383811660a4830152915191861691634dca09789160c48082019260009290919082900301818387803b15801561110d57600080fd5b6201518081101561153e576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203c204d494e5f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b624f1a00811115610af2576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203e204d41585f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b670de0b6b3a764000081565b670de0b6b3a7640000811115610af25760405162461bcd60e51b81526004018080602001828103825260338152602001806120156033913960400191505060405180910390fd5b6d53797374656d53657474696e677360901b81565b6d53797374656d53657474696e677360901b90565b60408051630fca29bf60e21b81526d53797374656d53657474696e677360901b600482015260248101849052821515604482015290516001600160a01b03851691633f28a6fc91606480830192600092919082900301818387803b158015610b5857600080fd5b622dc6c081565b6040805160208082018690526bffffffffffffffffffffffff19606086901b1682840152825160348184030181526054830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810183905290516001600160a01b03861691631d5b277f9160b880830192600092919082900301818387803b15801561110d57600080fd5b6703782dace9d90000811115610af25760405162461bcd60e51b8152600401808060200182810382526021815260200180611ed16021913960400191505060405180910390fd5b67016345785d8a0000811115611083576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b670de0b6b3a7640000811115610af2576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b603c81565b6201518081565b671bc16d674ec8000081565b603281565b62278d00811115611894576040805162461bcd60e51b815260206004820152601960248201527f4d757374206265206c657373207468616e203330206461797300000000000000604482015290519081900360640190fd5b62015180811015610af2576040805162461bcd60e51b815260206004820152601a60248201527f4d7573742062652067726561746572207468616e203120646179000000000000604482015290519081900360640190fd5b6001600160a01b038116611947576040805162461bcd60e51b815260206004820152601b60248201527f56616c69642061646472657373206d75737420626520676976656e0000000000604482015290519081900360640190fd5b604080516309b9412f60e31b81526d53797374656d53657474696e677360901b6004820152602481018490526001600160a01b038381166044830152915191851691634dca09789160648082019260009290919082900301818387803b158015610b5857600080fd5b670de0b6b3a7640000821315611a0d576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff19821215611a555760405162461bcd60e51b8152600401808060200182810382526021815260200180611ef26021913960400191505060405180910390fd5b60008212156112b357808260000313156112b3576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724d696e7446656552617465000000000000604482015290519081900360640190fd5b627a120081565b62093a80811115610af2576040805162461bcd60e51b815260206004820181905260248201527f7374616b652074696d6520657863656564206d6178696d756d2031207765656b604482015290519081900360640190fd5b80611b67576040805162461bcd60e51b815260206004820152601b60248201527f4d61782064796e616d6963206665652063616e6e6f7420626520300000000000604482015290519081900360640190fd5b67016345785d8a0000811115610af2576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b6001600160c01b0381565b622dc6c08110158015611be55750627a12008111155b610af2576040805162461bcd60e51b815260206004820152601d60248201527f4f7574206f662072616e67652078446f6d61696e206761734c696d6974000000604482015290519081900360640190fd5b62278d0081565b624f1a0081565b67016345785d8a000081565b73__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9457600080fd5b505af4158015611ca8573d6000803e3d6000fd5b505050506040513d6020811015611cbe57600080fd5b5051610e1002811115611681576040805162461bcd60e51b815260206004820152600a60248201526926b0bc1018903437bab960b11b604482015290519081900360640190fd5b670de0b6b3a7640000811115610af2576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b600082611d7157506000611dbe565b82820282848281611d7e57fe5b0414611dbb5760405162461bcd60e51b8152600401808060200182810382526021815260200180611f946021913960400191505060405180910390fd5b90505b92915050565b6000808211611e1a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611e2557fe5b04949350505050565b600082820183811015611dbb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611dbb82610c4785670de0b6b3a764000063ffffffff611d6216565b6000670de0b6b3a7640000611ec1848463ffffffff611d6216565b81611ec857fe5b04939250505056fe70656e616c7479203e204d41585f4c49515549444154494f4e5f50454e414c545972617465203c202d4d41585f575241505045525f4255524e5f4645455f524154456c69717569646174696f6e526174696f203e204d41585f4c49515549444154494f4e5f524154494f202f202831202b2070656e616c74792972617465203c202d4d41585f575241505045525f4d494e545f4645455f5241544541746f6d6963206d617820766f6c756d6520657863656564206d6178696d756d2075696e74313932536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7741746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720756e646572206d696e696d756d2031206d696e41746f6d696320747761702077696e646f7720756e646572206d696e696d756d2031206d696e4e65772069737375616e636520726174696f2063616e6e6f7420657863656564204d41585f49535355414e43455f524154494f6c69717569646174696f6e526174696f203c204d494e5f4c49515549444154494f4e5f524154494f41746f6d696320747761702077696e646f7720657863656564206d6178696d756d20312064617941746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720657863656564206d6178696d756d203120646179a265627a7a723158202ae244a6a86d397e6d90352e6bb84a7266d20291bfe8df161c0ca0409b8100d564736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ATOMIC_TWAP_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ATOMIC_VOLATILITY_CONSIDERATION_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ATOMIC_VOLUME_PER_BLOCK",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_CROSS_DOMAIN_GAS_LIMIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_EXCHANGE_FEE_RATE",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_FEE_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ISSUANCE_RATIO",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_DELAY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_PENALTY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_RATIO",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_MINIMUM_STAKE_TIME",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_TARGET_THRESHOLD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_WRAPPER_BURN_FEE_RATE",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_WRAPPER_MINT_FEE_RATE",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_ATOMIC_TWAP_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_ATOMIC_VOLATILITY_CONSIDERATION_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_CROSS_DOMAIN_GAS_LIMIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_FEE_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_LIQUIDATION_DELAY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "RATIO_FROM_TARGET_BUFFER",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SETTINGS_CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "contractName",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xee826c93d18406fe3a635471c6a4caa80c910f03014821d040224431f6ba3fd2",
				"urls": [
					"bzz-raw://9a8b5ba72af3402099c9dc55fc9439754c5a2b622b1dd34396ae0fa5a95b8fca",
					"dweb:/ipfs/Qmbi7qkiusd6VRKxwzhhcbv8NJ9r8trAEjsPBjGrNNXPSw"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemSettingsLib.sol": "SystemSettingsLib"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemSettingsLib.sol": {
						"keccak256": "0xee826c93d18406fe3a635471c6a4caa80c910f03014821d040224431f6ba3fd2",
						"urls": [
							"bzz-raw://9a8b5ba72af3402099c9dc55fc9439754c5a2b622b1dd34396ae0fa5a95b8fca",
							"dweb:/ipfs/Qmbi7qkiusd6VRKxwzhhcbv8NJ9r8trAEjsPBjGrNNXPSw"
						]
					}
				},
				"version": 1
			}
		},
		"AddressResolver": {
			"bytecode": "608060405234801561001057600080fd5b50604051610ab9380380610ab98339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506109bf806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063766f781511610071578063766f78151461015157806379ba5097146101bf5780638da5cb5b146101c75780639f42102f146101cf578063ab0b8f77146102a1578063dacb2d011461035f576100a9565b80631627540c146100ae578063187f7935146100d657806321f8a7211461010f578063514560611461012c57806353a47bb714610149575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b03166103d4565b005b6100f3600480360360208110156100ec57600080fd5b5035610430565b604080516001600160a01b039092168252519081900360200190f35b6100f36004803603602081101561012557600080fd5b503561044b565b6100f36004803603602081101561014257600080fd5b5035610466565b6100f361056e565b6100d46004803603602081101561016757600080fd5b810190602081018135600160201b81111561018157600080fd5b82018360208201111561019357600080fd5b803590602001918460208302840111600160201b831117156101b457600080fd5b50909250905061057d565b6100d4610607565b6100f36106c3565b61028d600480360360408110156101e557600080fd5b810190602081018135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460208302840111600160201b8311171561023257600080fd5b919390929091602081019035600160201b81111561024f57600080fd5b82018360208201111561026157600080fd5b803590602001918460208302840111600160201b8311171561028257600080fd5b5090925090506106d2565b604080519115158252519081900360200190f35b6100d4600480360360408110156102b757600080fd5b810190602081018135600160201b8111156102d157600080fd5b8201836020820111156102e357600080fd5b803590602001918460208302840111600160201b8311171561030457600080fd5b919390929091602081019035600160201b81111561032157600080fd5b82018360208201111561033357600080fd5b803590602001918460208302840111600160201b8311171561035457600080fd5b50909250905061075b565b6100f36004803603604081101561037557600080fd5b81359190810190604081016020820135600160201b81111561039657600080fd5b8201836020820111156103a857600080fd5b803590602001918460018302840111600160201b831117156103c957600080fd5b509092509050610867565b6103dc6108db565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002602052600090815260409020546001600160a01b031681565b6000908152600260205260409020546001600160a01b031690565b6524b9b9bab2b960d11b600090815260026020527f0651498423135bdecab48e2d306f14d560a72d49179b71410fd95b5d25ce349a546001600160a01b0316806104f7576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015290519081900360640190fd5b806001600160a01b03166332608039846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561053b57600080fd5b505afa15801561054f573d6000803e3d6000fd5b505050506040513d602081101561056557600080fd5b50519392505050565b6001546001600160a01b031681565b60005b818110156106025782828281811061059457fe5b905060200201356001600160a01b03166001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105de57600080fd5b505af11580156105f2573d6000803e3d6000fd5b5050600190920191506105809050565b505050565b6001546001600160a01b031633146106505760405162461bcd60e51b81526004018080602001828103825260358152602001806109276035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000805b8481101561074d578383828181106106ea57fe5b905060200201356001600160a01b03166001600160a01b03166002600088888581811061071357fe5b60209081029290920135835250810191909152604001600020546001600160a01b031614610745576000915050610753565b6001016106d6565b50600190505b949350505050565b6107636108db565b8281146107b7576040805162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015290519081900360640190fd5b60005b838110156108605760008585838181106107d057fe5b90506020020135905060008484848181106107e757fe5b600085815260026020908152604091829020805493820295909501356001600160a01b03166001600160a01b03199093168317909455805186815293840182905280519194507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa9193829003019150a150506001016107ba565b5050505050565b6000838152600260205260408120546001600160a01b03168383826108d05760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152604051601f909101601f19169092018290039550909350505050fd5b509095945050505050565b6000546001600160a01b031633146109245760405162461bcd60e51b815260040180806020018281038252602f81526020018061095c602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158207fc5e748048a731a8242b42f80f0bd94219fd7e245cd6ee7fb4387e96dc9a2de64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "AddressImported",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "names",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "areAddressesImported",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						}
					],
					"name": "getAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "key",
							"type": "bytes32"
						}
					],
					"name": "getSynth",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "names",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "importAddresses",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract MixinResolver[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "rebuildCaches",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "repository",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"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"
				}
			],
			"source": {
				"keccak256": "0x321e1682689b313a4457956f90c397f2eadaba25a28d2bc058cbd7ed3818def8",
				"urls": [
					"bzz-raw://c15308ef89b95bd816a1cf488530d96bc5fa8834f528882e468f8c8d48a29e15",
					"dweb:/ipfs/QmaBg67KtkUKor5yVbCZkvfhxwbqCBZCh9ZmBcBF7GgmUU"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"AddressResolver.sol": "AddressResolver"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"AddressResolver.sol": {
						"keccak256": "0x321e1682689b313a4457956f90c397f2eadaba25a28d2bc058cbd7ed3818def8",
						"urls": [
							"bzz-raw://c15308ef89b95bd816a1cf488530d96bc5fa8834f528882e468f8c8d48a29e15",
							"dweb:/ipfs/QmaBg67KtkUKor5yVbCZkvfhxwbqCBZCh9ZmBcBF7GgmUU"
						]
					}
				},
				"version": 1
			}
		},
		"ReadProxy": {
			"bytecode": "608060405234801561001057600080fd5b506040516104953803806104958339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505061039b806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631627540c1461008657806353a47bb7146100ae578063776d1a01146100d257806379ba5097146100f85780638da5cb5b14610100578063d4b8399214610108575b36600080376000803660006002545afa3d6000803e80610081573d6000fd5b3d6000f35b6100ac6004803603602081101561009c57600080fd5b50356001600160a01b0316610110565b005b6100b661016c565b604080516001600160a01b039092168252519081900360200190f35b6100ac600480360360208110156100e857600080fd5b50356001600160a01b031661017b565b6100ac6101dd565b6100b6610299565b6100b66102a8565b6101186102b7565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6001546001600160a01b031681565b6101836102b7565b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e916020908290030190a150565b6001546001600160a01b031633146102265760405162461bcd60e51b81526004018080602001828103825260358152602001806103036035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146103005760405162461bcd60e51b815260040180806020018281038252602f815260200180610338602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820ec33b07eb64066b2e5328105d4784d2ab1a60cad0e45a4adc759a7642e53677d64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event"
				},
				{
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xfa3574af9cfe181f5b69f41b9f1328ad7f3a65307e3e94766167d1665a1d5d4f",
				"urls": [
					"bzz-raw://57e87bcbcb689e125d24c9eb5e7da042278b01f56230a6871d4feeb37980a9bf",
					"dweb:/ipfs/QmNZg7UgJ9tL4Rjb3fMF2dab4ped2BpMfhm1A7yBSSSy2t"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ReadProxy.sol": "ReadProxy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ReadProxy.sol": {
						"keccak256": "0xfa3574af9cfe181f5b69f41b9f1328ad7f3a65307e3e94766167d1665a1d5d4f",
						"urls": [
							"bzz-raw://57e87bcbcb689e125d24c9eb5e7da042278b01f56230a6871d4feeb37980a9bf",
							"dweb:/ipfs/QmNZg7UgJ9tL4Rjb3fMF2dab4ped2BpMfhm1A7yBSSSy2t"
						]
					}
				},
				"version": 1
			}
		},
		"SingleNetworkAggregatorIssuedSynths": {
			"bytecode": "608060405234801561001057600080fd5b506040516107803803806107808339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b03929092169190911790555061066e806101126000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc146101f5578063b633620c14610212578063ec5c889d1461022f578063feaf968c14610237576100cf565b80638da5cb5b146101685780639a6fc8f514610170578063b00a84c9146101d8576100cf565b806304f3bcec146100d45780631627540c146100f8578063313ce5671461012057806353a47bb71461013e578063668a0f021461014657806379ba509714610160575b600080fd5b6100dc61023f565b604080516001600160a01b039092168252519081900360200190f35b61011e6004803603602081101561010e57600080fd5b50356001600160a01b031661024e565b005b6101286102aa565b6040805160ff9092168252519081900360200190f35b6100dc6102af565b61014e6102be565b60408051918252519081900360200190f35b61011e6102c3565b6100dc61037f565b6101996004803603602081101561018657600080fd5b503569ffffffffffffffffffff1661038e565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61011e600480360360208110156101ee57600080fd5b50356104ec565b61014e6004803603602081101561020b57600080fd5b503561052f565b61014e6004803603602081101561022857600080fd5b5035610545565b61014e61055b565b610199610561565b6002546001600160a01b031681565b61025661058a565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b600190565b6001546001600160a01b0316331461030c5760405162461bcd60e51b81526004018080602001828103825260358152602001806105d66035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561041957600080fd5b505afa15801561042d573d6000803e3d6000fd5b505050506040513d602081101561044357600080fd5b505160408051637b1001b760e01b8152631bd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b15801561049b57600080fd5b505afa1580156104af573d6000803e3d6000fd5b505050506040513d60208110156104c557600080fd5b50516003549091504290156104d957506003545b6001989197509550859450879350915050565b6104f461058a565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b600061053a8261038e565b509195945050505050565b60006105508261038e565b509095945050505050565b60035481565b60008060008060006105796105746102be565b61038e565b945094509450945094509091929394565b6000546001600160a01b031633146105d35760405162461bcd60e51b815260040180806020018281038252602f81526020018061060b602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582019f84758515f6c1d28620be12ed8d3754e61a8aacf9acad70f39a2970752e9dc64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "SetOverrideTimestamp",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getAnswer",
					"outputs": [
						{
							"internalType": "int256",
							"name": "answer",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"name": "getRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "overrideTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "setOverrideTimestamp",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc5acb2ca9ea330d012ea9362569647190a2bb53c110e0ae5f98129038c0a7720",
				"urls": [
					"bzz-raw://7a94cd0d215945c0a1a7f0aa16c87e50c6e1bed3ae6142035399ab633a897904",
					"dweb:/ipfs/QmQ3YUegzRTYhpcMBdwCBRboFyvf7AHphGfWDL5Au9VZMg"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SingleNetworkAggregatorIssuedSynths.sol": "SingleNetworkAggregatorIssuedSynths"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SingleNetworkAggregatorIssuedSynths.sol": {
						"keccak256": "0xc5acb2ca9ea330d012ea9362569647190a2bb53c110e0ae5f98129038c0a7720",
						"urls": [
							"bzz-raw://7a94cd0d215945c0a1a7f0aa16c87e50c6e1bed3ae6142035399ab633a897904",
							"dweb:/ipfs/QmQ3YUegzRTYhpcMBdwCBRboFyvf7AHphGfWDL5Au9VZMg"
						]
					}
				},
				"version": 1
			}
		},
		"SingleNetworkAggregatorDebtRatio": {
			"bytecode": "608060405234801561001057600080fd5b50604051610a32380380610a328339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b039290921691909117905550610920806101126000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc146101f5578063b633620c14610212578063ec5c889d1461022f578063feaf968c14610237576100cf565b80638da5cb5b146101685780639a6fc8f514610170578063b00a84c9146101d8576100cf565b806304f3bcec146100d45780631627540c146100f8578063313ce5671461012057806353a47bb71461013e578063668a0f021461014657806379ba509714610160575b600080fd5b6100dc61023f565b604080516001600160a01b039092168252519081900360200190f35b61011e6004803603602081101561010e57600080fd5b50356001600160a01b031661024e565b005b6101286102aa565b6040805160ff9092168252519081900360200190f35b6100dc6102af565b61014e6102be565b60408051918252519081900360200190f35b61011e6102c3565b6100dc61037f565b6101996004803603602081101561018657600080fd5b503569ffffffffffffffffffff1661038e565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61011e600480360360208110156101ee57600080fd5b503561063f565b61014e6004803603602081101561020b57600080fd5b5035610682565b61014e6004803603602081101561022857600080fd5b5035610698565b61014e6106ae565b6101996106b4565b6002546001600160a01b031681565b6102566106dd565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b600190565b6001546001600160a01b0316331461030c5760405162461bcd60e51b81526004018080602001828103825260358152602001806108676035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561041957600080fd5b505afa15801561042d573d6000803e3d6000fd5b505050506040513d602081101561044357600080fd5b505160408051637b1001b760e01b8152631bd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b15801561049b57600080fd5b505afa1580156104af573d6000803e3d6000fd5b505050506040513d60208110156104c557600080fd5b50516002546040805163dacb2d0160e01b81526d4f696b6f7344656274536861726560901b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b606482015290519293506000926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561055357600080fd5b505afa158015610567573d6000803e3d6000fd5b505050506040513d602081101561057d57600080fd5b5051604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b1580156105c157600080fd5b505afa1580156105d5573d6000803e3d6000fd5b505050506040513d60208110156105eb57600080fd5b5051905060008115610615576106108261060485610728565b9063ffffffff61074416565b610618565b60005b60035490915042901561062a57506003545b60019a91995097508796508995509350505050565b6106476106dd565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b600061068d8261038e565b509195945050505050565b60006106a38261038e565b509095945050505050565b60035481565b60008060008060006106cc6106c76102be565b61038e565b945094509450945094509091929394565b6000546001600160a01b031633146107265760405162461bcd60e51b815260040180806020018281038252602f81526020018061089c602f913960400191505060405180910390fd5b565b600061073e82633b9aca0063ffffffff61076016565b92915050565b60006107598383670de0b6b3a76400006107b9565b9392505050565b60008261076f5750600061073e565b8282028284828161077c57fe5b04146107595760405162461bcd60e51b81526004018080602001828103825260218152602001806108cb6021913960400191505060405180910390fd5b6000806107df846107d387600a870263ffffffff61076016565b9063ffffffff6107fc16565b90506005600a8206106107f057600a015b600a9004949350505050565b6000808211610852576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161085d57fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820eb29b81b85dc92ad5b83d61aaf2e438fdeab297b6b4f2bc0603a71604178dcef64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "SetOverrideTimestamp",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getAnswer",
					"outputs": [
						{
							"internalType": "int256",
							"name": "answer",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"name": "getRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "overrideTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "setOverrideTimestamp",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x61db289fc560ab193736f0ff29d717da666419492310988c4c5ce09352940f8b",
				"urls": [
					"bzz-raw://46c219d87d86ff3a0474c46c8baf7bb2157acaa1205a9a467690c6c7032997ad",
					"dweb:/ipfs/QmcwggyyGv2zz4Df9Qz65ZD9tS7YgH691m2gg7gB5YWPh9"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SingleNetworkAggregatorDebtRatio.sol": "SingleNetworkAggregatorDebtRatio"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SingleNetworkAggregatorDebtRatio.sol": {
						"keccak256": "0x61db289fc560ab193736f0ff29d717da666419492310988c4c5ce09352940f8b",
						"urls": [
							"bzz-raw://46c219d87d86ff3a0474c46c8baf7bb2157acaa1205a9a467690c6c7032997ad",
							"dweb:/ipfs/QmcwggyyGv2zz4Df9Qz65ZD9tS7YgH691m2gg7gB5YWPh9"
						]
					}
				},
				"version": 1
			}
		},
		"FlexibleStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516127833803806127838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561271e806100656000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c2578063f7833c5d146109f9578063f9c39d2f14610a1c578063fdfc4c1314610ae1576101c3565b8063c89eb562146108b7578063d658d2e91461097c578063d71a9b0114610999576101c3565b8063ab15985d116100d3578063ab15985d146106e5578063b67fa7ed146107aa578063c13a2b0c1461081f578063c4f610ed14610894576101c3565b80638ca0adaf1461062a5780638f6b95a31461069f5780639ee5955a146106c2576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105345780635bda91e2146105665780636a59e495146105915780638408a5e5146105b5576101c3565b806335ab2708146104215780633bd6ad89146104445780633f28a6fc14610509576101c3565b80631625e3ef116101a25780631625e3ef1461037d57806318f662ed146103a05780631d5b277f146103c357806323257c2b146103ec576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b04565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610bf4565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610d60565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610369578181015183820152602001610351565b505050509050019250505060405180910390f35b6101f16004803603604081101561039357600080fd5b5080359060200135610e07565b6101f1600480360360408110156103b657600080fd5b5080359060200135610f7b565b6101f1600480360360608110156103d957600080fd5b50803590602081013590604001356110e4565b61040f6004803603604081101561040257600080fd5b50803590602001356111cd565b60408051918252519081900360200190f35b6101f16004803603604081101561043757600080fd5b50803590602001356111f4565b6101f16004803603606081101561045a57600080fd5b81359190810190604081016020820135600160201b81111561047b57600080fd5b82018360208201111561048d57600080fd5b803590602001918460208302840111600160201b831117156104ae57600080fd5b919390929091602081019035600160201b8111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460208302840111600160201b831117156104fe57600080fd5b50909250905061135d565b6101f16004803603606081101561051f57600080fd5b508035906020810135906040013515156114c8565b6101f16004803603606081101561054a57600080fd5b50803590602081013590604001356001600160a01b03166115b1565b6101f16004803603606081101561057c57600080fd5b5080359060208101359060400135151561169a565b61059961184c565b604080516001600160a01b039092168252519081900360200190f35b61032d600480360360408110156105cb57600080fd5b81359190810190604081016020820135600160201b8111156105ec57600080fd5b8201836020820111156105fe57600080fd5b803590602001918460208302840111600160201b8311171561061f57600080fd5b50909250905061185b565b61032d6004803603604081101561064057600080fd5b81359190810190604081016020820135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b5090925090506118f7565b6101f1600480360360408110156106b557600080fd5b50803590602001356119b3565b610599600480360360408110156106d857600080fd5b5080359060200135611b32565b6101f1600480360360608110156106fb57600080fd5b81359190810190604081016020820135600160201b81111561071c57600080fd5b82018360208201111561072e57600080fd5b803590602001918460208302840111600160201b8311171561074f57600080fd5b919390929091602081019035600160201b81111561076c57600080fd5b82018360208201111561077e57600080fd5b803590602001918460208302840111600160201b8311171561079f57600080fd5b509092509050611b62565b61032d600480360360408110156107c057600080fd5b81359190810190604081016020820135600160201b8111156107e157600080fd5b8201836020820111156107f357600080fd5b803590602001918460208302840111600160201b8311171561081457600080fd5b509092509050611cc4565b61032d6004803603604081101561083557600080fd5b81359190810190604081016020820135600160201b81111561085657600080fd5b82018360208201111561086857600080fd5b803590602001918460208302840111600160201b8311171561088957600080fd5b509092509050611d60565b61040f600480360360408110156108aa57600080fd5b5080359060200135611e0e565b6101f1600480360360608110156108cd57600080fd5b81359190810190604081016020820135600160201b8111156108ee57600080fd5b82018360208201111561090057600080fd5b803590602001918460208302840111600160201b8311171561092157600080fd5b919390929091602081019035600160201b81111561093e57600080fd5b82018360208201111561095057600080fd5b803590602001918460208302840111600160201b8311171561097157600080fd5b509092509050611e35565b61040f6004803603602081101561099257600080fd5b5035611f97565b6101f1600480360360608110156109af57600080fd5b5080359060208101359060400135611fa9565b6109e5600480360360408110156109d857600080fd5b5080359060200135612092565b604080519115158252519081900360200190f35b61040f60048036036040811015610a0f57600080fd5b50803590602001356120bc565b6101f160048036036060811015610a3257600080fd5b81359190810190604081016020820135600160201b811115610a5357600080fd5b820183602082011115610a6557600080fd5b803590602001918460208302840111600160201b83111715610a8657600080fd5b919390929091602081019035600160201b811115610aa357600080fd5b820183602082011115610ab557600080fd5b803590602001918460208302840111600160201b83111715610ad657600080fd5b5090925090506120e3565b6101f160048036036040811015610af757600080fd5b5080359060200135612247565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b505190506001600160a01b0381163314610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed8585856123b0565b5050505050565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610c5d57600080fd5b505afa158015610c71573d6000803e3d6000fd5b505050506040513d6020811015610c8757600080fd5b505190506001600160a01b0381163314610cd25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314610d14576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657610d4e88888884818110610d2f57fe5b90506020020135878785818110610d4257fe5b90506020020135612421565b600101610d17565b5050505050505050565b60608083839050604051908082528060200260200182016040528015610d90578160200160208202803883390190505b506000868152600160209081526040808320548352600390915281209192505b84811015610dfc57816000878784818110610dc757fe5b90506020020135815260200190815260200160002054838281518110610de957fe5b6020908102919091010152600101610db0565b509095945050505050565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610e7057600080fd5b505afa158015610e84573d6000803e3d6000fd5b505050506040513d6020811015610e9a57600080fd5b505190506001600160a01b0381163314610ee55760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526005825280832086845282529182902054825187815291820186905260ff168015158284015291517f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c9181900360600190a15050506000918252600160209081526040808420548452600582528084209284529190529020805460ff19169055565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b505190506001600160a01b03811633146110595760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526002825280832086845282529182902054825187815291820186905281830181905291517f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d46629181900360600190a1505050600091825260016020908152604080842054845260028252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d602081101561117757600080fd5b505190506001600160a01b03811633146111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612421565b60009182526001602090815260408084205484526002825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d602081101561128757600080fd5b505190506001600160a01b03811633146112d25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526006825280832086845282529182902054825187815291820186905281830181905291517f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd939181900360600190a1505050600091825260016020908152604080842054845260068252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d60208110156113f057600080fd5b505190506001600160a01b038116331461143b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b84831461147d576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d56576114c08888888481811061149857fe5b905060200201358787858181106114ab57fe5b905060200201356001600160a01b0316612492565b600101611480565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561153157600080fd5b505afa158015611545573d6000803e3d6000fd5b505050506040513d602081101561155b57600080fd5b505190506001600160a01b03811633146115a65760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561251b565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561161a57600080fd5b505afa15801561162e573d6000803e3d6000fd5b505050506040513d602081101561164457600080fd5b505190506001600160a01b038116331461168f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612492565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b505190506001600160a01b03811633146117785760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000858152600160205260409020546117d8576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206d69677261746520656d70747920636f6e7472616374000000604482015290519081900360640190fd5b600085815260016020526040808220548683529120558215611804576000858152600160205260408120555b60408051868152602081018690528415158183015290517fa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c9181900360600190a15050505050565b6000546001600160a01b031681565b6060808383905060405190808252806020026020018201604052801561188b578160200160208202803883390190505b506000868152600160209081526040808320548352600690915281209192505b84811015610dfc578160008787848181106118c257fe5b905060200201358152602001908152602001600020548382815181106118e457fe5b60209081029190910101526001016118ab565b60608083839050604051908082528060200260200182016040528015611927578160200160208202803883390190505b506000868152600160209081526040808320548352600490915281209192505b84811015610dfc5781600087878481811061195e57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b031683828151811061199357fe5b6001600160a01b0390921660209283029190910190910152600101611947565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b505190506001600160a01b0381163314611a915760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000848152600160209081526040808320548352600482528083208684528252918290205482518781529182018690526001600160a01b031681830181905291517fec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf669181900360600190a1505050600091825260016020908152604080842054845260048252808420928452919052902080546001600160a01b0319169055565b6000918252600160209081526040808420548452600482528084209284529190529020546001600160a01b031690565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611bcb57600080fd5b505afa158015611bdf573d6000803e3d6000fd5b505050506040513d6020811015611bf557600080fd5b505190506001600160a01b0381163314611c405760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611c82576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611cbc88888884818110611c9d57fe5b90506020020135878785818110611cb057fe5b9050602002013561259a565b600101611c85565b60608083839050604051908082528060200260200182016040528015611cf4578160200160208202803883390190505b506000868152600160209081526040808320548352600290915281209192505b84811015610dfc57816000878784818110611d2b57fe5b90506020020135815260200190815260200160002054838281518110611d4d57fe5b6020908102919091010152600101611d14565b60608083839050604051908082528060200260200182016040528015611d90578160200160208202803883390190505b506000868152600160209081526040808320548352600590915281209192505b84811015610dfc57816000878784818110611dc757fe5b90506020020135815260200190815260200160002060009054906101000a900460ff16838281518110611df657fe5b91151560209283029190910190910152600101611db0565b60009182526001602090815260408084205484526003825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d6020811015611ec857600080fd5b505190506001600160a01b0381163314611f135760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611f55576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611f8f88888884818110611f7057fe5b90506020020135878785818110611f8357fe5b905060200201356123b0565b600101611f58565b60016020526000908152604090205481565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505190506001600160a01b03811633146120875760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561259a565b60009182526001602090815260408084205484526005825280842092845291905290205460ff1690565b60009182526001602090815260408084205484526006825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561214c57600080fd5b505afa158015612160573d6000803e3d6000fd5b505050506040513d602081101561217657600080fd5b505190506001600160a01b03811633146121c15760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314612203576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d565761223f8888888481811061221e57fe5b9050602002013587878581811061223157fe5b90506020020135151561251b565b600101612206565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d60208110156122da57600080fd5b505190506001600160a01b03811633146123255760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526003825280832086845282529182902054825187815291820186905281830181905291517f78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae9181900360600190a1505050600091825260016020908152604080842054845260038252808420928452919052812055565b80600660006123be8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a952809181900360600190a1505050565b806002600061242f8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c99181900360600190a1505050565b80600460006124a08661260b565b815260208082019290925260409081016000908120868252835281902080546001600160a01b0319166001600160a01b0394851617905580518681529182018590529183168183015290517f524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad639365916060908290030190a1505050565b80600560006125298661260b565b8152602080820192909252604090810160009081208682528352819020805460ff19169315159390931790925581518581529081018490528215158183015290517f9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b916060908290030190a1505050565b80600360006125a88661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c9181900360600190a1505050565b6000818152600160205260408120548061266d5750604080513360601b60208083019190915260348201859052436054808401919091528351808403909101815260749092018352815191810191909120600085815260019092529190208190555b9291505056fe43616e6e6f742066696e6420636f6e747261637420696e2041646472657373205265736f6c76657243616e206f6e6c7920626520696e766f6b65642062792074686520636f6e6669677572656420636f6e7472616374496e707574206c656e67746873206d757374206d617463680000000000000000a265627a7a723158203a713f15cdf6cdcb9ef10004b322dc43222f52877e28fb1f176e147c274ef67764736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "fromContractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toContractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "removeAccessFromPreviousContract",
							"type": "bool"
						}
					],
					"name": "KeyMigrated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "ValueDeletedAddress",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "ValueDeletedBool",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "ValueDeletedBytes32",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "ValueDeletedInt",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "ValueDeletedUInt",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "ValueSetAddress",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "ValueSetBool",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "ValueSetBytes32",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "ValueSetInt",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "ValueSetUInt",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBoolValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getAddressValues",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBoolValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getBoolValues",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "",
							"type": "bool[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getBytes32Values",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getIntValues",
					"outputs": [
						{
							"internalType": "int256[]",
							"name": "",
							"type": "int256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getUIntValues",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "hashes",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "fromContractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "toContractName",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "removeAccessFromPreviousContract",
							"type": "bool"
						}
					],
					"name": "migrateContractKey",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverProxy",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "values",
							"type": "address[]"
						}
					],
					"name": "setAddressValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBoolValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "bool[]",
							"name": "values",
							"type": "bool[]"
						}
					],
					"name": "setBoolValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "values",
							"type": "bytes32[]"
						}
					],
					"name": "setBytes32Values",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "int256[]",
							"name": "values",
							"type": "int256[]"
						}
					],
					"name": "setIntValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "values",
							"type": "uint256[]"
						}
					],
					"name": "setUIntValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x20675b2ebaf72a8b961383fc41cbb7ce4a9a058f3b8cd8d9d8a6cb55f27aa11b",
				"urls": [
					"bzz-raw://276e1a37c95c0d99905ea01f9985668ca6f77e0da6af941b371cac07b8867601",
					"dweb:/ipfs/QmdSuKxj5FS8ppZSDgWieDSi6isyjZPRx5qUFXQZosaXop"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FlexibleStorage.sol": "FlexibleStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FlexibleStorage.sol": {
						"keccak256": "0x20675b2ebaf72a8b961383fc41cbb7ce4a9a058f3b8cd8d9d8a6cb55f27aa11b",
						"urls": [
							"bzz-raw://276e1a37c95c0d99905ea01f9985668ca6f77e0da6af941b371cac07b8867601",
							"dweb:/ipfs/QmdSuKxj5FS8ppZSDgWieDSi6isyjZPRx5qUFXQZosaXop"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettings": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162004cf038038062004cf0833981810160405260408110156200003757600080fd5b5080516020909101518080836001600160a01b0381166200009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15080600260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200016657600080fd5b505af41580156200017b573d6000803e3d6000fd5b505050506040513d60208110156200019257600080fd5b50516d53797374656d53657474696e677360901b14620001f9576040805162461bcd60e51b815260206004820152601d60248201527f7265616420616e64207772697465206b657973206e6f7420657175616c000000604482015290519081900360640190fd5b5050614ae5806200020b6000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c8063741853601161024c578063a777155611610146578063d8ee8208116100c3578063e7894da111610087578063e7894da114610c1d578063e942204614610c3a578063f081da8514610c57578063f216310714610c7a578063f867e76714610c975761045f565b8063d8ee820814610b9e578063d954bc0214610bbb578063dad0ab0f14610be7578063dc8f4a1b14610bef578063e0e6393d14610c155761045f565b8063bcf7eeac1161010a578063bcf7eeac14610b19578063c193f0d814610b21578063c52f35fe14610b29578063c7b481bd14610b55578063cc754a4c14610b815761045f565b8063a777155614610aa3578063af5355d814610ac0578063b16e450f14610ac8578063b410a03414610af4578063b7ab13f214610afc5761045f565b806389257117116101d4578063967706e911610198578063967706e914610a2d57806397a4aca014610a4a5780639d4e186d14610a67578063a0cf745114610a93578063a4bca13114610a9b5761045f565b806389257117146109a0578063899ffef4146109a85780638da5cb5b14610a00578063922fef0814610a08578063946ce8cd14610a105761045f565b806379cb657a1161021b57806379cb657a1461090c5780637bf82305146109295780637d708a461461094f5780637f3b293c1461096c5780638326470c146109745761045f565b806374185360146108bc57806375aca321146108c4578063767da3dc146108e157806379ba5097146109045761045f565b806328a1170d1161035d578063510242bc116102e5578063614d08f8116102a9578063614d08f81461084c5780636190dd7a14610854578063635a3872146108715780636a2b91511461088e5780637066871f146108965761045f565b8063510242bc146107dc57806353a47bb7146107e45780635d14928f146107ec5780635d467d6a146108095780635e0117d61461082f5761045f565b8063372a395a1161032c578063372a395a14610773578063393d334f1461077b5780634328a925146107985780634641ab66146107b55780634c36b837146107d45761045f565b806328a1170d1461065257806329a022ba146107145780632af64bd31461073a5780632cce0e54146107565761045f565b80631627540c116103eb57806322425fa4116103af57806322425fa41461060057806323f5589a14610608578063242df9e11461061057806325539dd2146106185780632806a743146106355761045f565b80631627540c146105725780631775765f146105985780631e6e2190146105a0578063214bf9e5146105bd57806321d9eba6146105e35761045f565b806309e514a41161043257806309e514a4146104f65780630ee4951b1461051c5780630f27b78814610524578063105570201461052c57806313d825b21461054f5761045f565b8063038e47fe1461046457806304c49f2c1461049657806304f3bcec146104b5578063054be0b7146104d9575b600080fd5b6104846004803603602081101561047a57600080fd5b503560ff16610c9f565b60408051918252519081900360200190f35b6104b3600480360360208110156104ac57600080fd5b5035610cb2565b005b6104bd610d8d565b604080516001600160a01b039092168252519081900360200190f35b6104b3600480360360208110156104ef57600080fd5b5035610d9c565b6104846004803603602081101561050c57600080fd5b50356001600160a01b0316610e73565b610484610e7e565b610484610e8e565b6104b36004803603604081101561054257600080fd5b5080359060200135610e98565b6104b36004803603604081101561056557600080fd5b5080359060200135610f8e565b6104b36004803603602081101561058857600080fd5b50356001600160a01b031661107c565b6104846110d8565b6104b3600480360360208110156105b657600080fd5b50356110e2565b610484600480360360208110156105d357600080fd5b50356001600160a01b03166111c9565b6104b3600480360360208110156105f957600080fd5b50356111d4565b610484611300565b61048461130a565b610484611314565b6104846004803603602081101561062e57600080fd5b503561131e565b6104b36004803603602081101561064b57600080fd5b5035611329565b6104b36004803603604081101561066857600080fd5b81019060208101813564010000000081111561068357600080fd5b82018360208201111561069557600080fd5b803590602001918460208302840111640100000000831117156106b757600080fd5b9193909290916020810190356401000000008111156106d557600080fd5b8201836020820111156106e757600080fd5b8035906020019184602083028401116401000000008311171561070957600080fd5b509092509050611405565b6104846004803603602081101561072a57600080fd5b50356001600160a01b0316611593565b61074261159e565b604080519115158252519081900360200190f35b6104b36004803603602081101561076c57600080fd5b50356116a8565b61048461179a565b6104b36004803603602081101561079157600080fd5b50356117a4565b6104b3600480360360208110156107ae57600080fd5b5035611883565b6104b3600480360360208110156107cb57600080fd5b503515156119b7565b6104bd611a99565b610484611aa3565b6104bd611ab3565b6104b36004803603602081101561080257600080fd5b5035611ac2565b6104846004803603602081101561081f57600080fd5b50356001600160a01b0316611ba3565b6104b36004803603602081101561084557600080fd5b5035611bae565b610484611c88565b6104b36004803603602081101561086a57600080fd5b5035611cff565b6104b36004803603602081101561088757600080fd5b5035611dde565b610484611eb9565b610484600480360360208110156108ac57600080fd5b50356001600160a01b0316611ec3565b6104b3611ece565b6104b3600480360360208110156108da57600080fd5b5035612096565b6104b3600480360360408110156108f757600080fd5b5080359060200135612177565b6104b3612261565b6104b36004803603602081101561092257600080fd5b503561231d565b6104b36004803603602081101561093f57600080fd5b50356001600160a01b03166123f6565b6104b36004803603602081101561096557600080fd5b50356124df565b6104846125b9565b6104b36004803603604081101561098a57600080fd5b506001600160a01b0381351690602001356125cc565b6104846126ad565b6109b06126b7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156109ec5781810151838201526020016109d4565b505050509050019250505060405180910390f35b6104bd612708565b610484612717565b6104b360048036036020811015610a2657600080fd5b5035612721565b61048460048036036020811015610a4357600080fd5b503561282c565b61048460048036036020811015610a6057600080fd5b5035612837565b6104b360048036036040811015610a7d57600080fd5b506001600160a01b038135169060200135612842565b61048461296c565b610484612976565b61048460048036036020811015610ab957600080fd5b5035612980565b61048461298b565b6104b360048036036040811015610ade57600080fd5b506001600160a01b038135169060200135612995565b610484612a87565b61048460048036036020811015610b1257600080fd5b5035612a91565b610484612a9c565b610742612aa6565b6104b360048036036040811015610b3f57600080fd5b50803590602001356001600160a01b0316612ab0565b6104b360048036036040811015610b6b57600080fd5b506001600160a01b038135169060200135612bae565b6104b360048036036020811015610b9757600080fd5b5035612c90565b6104b360048036036020811015610bb457600080fd5b5035612d6c565b6104b360048036036040811015610bd157600080fd5b506001600160a01b038135169060200135612e49565b610484612f73565b6104b360048036036040811015610c0557600080fd5b5060ff8135169060200135612f86565b610484613082565b6104b360048036036020811015610c3357600080fd5b503561308c565b6104b360048036036020811015610c5057600080fd5b503561316d565b6104b360048036036040811015610c6d57600080fd5b5080359060200135613247565b6104bd60048036036020811015610c9057600080fd5b5035613338565b610484613343565b6000610caa82613356565b90505b919050565b610cba6133f3565b610cc261343e565b604080516363daca0960e01b81526001600160a01b03929092166004830152703332b2a832b934b7b2223ab930ba34b7b760791b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916363daca09916064808301926000929190829003018186803b158015610d3e57600080fd5b505af4158015610d52573d6000803e3d6000fd5b50506040805184815290517f791bd58dd9719b5eb5ccdd6ec4d5c459b0ab8efcf59b723cf477693c0889eacd9350908190036020019150a150565b6002546001600160a01b031681565b610da46133f3565b610dac61343e565b60408051636d4851f160e01b81526001600160a01b039290921660048301526c69737375616e6365526174696f60981b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636d4851f1916064808301926000929190829003018186803b158015610e2457600080fd5b505af4158015610e38573d6000803e3d6000fd5b50506040805184815290517f63b22e09cc3a33e847c063e35f887bd4ea96bc8c0f93f1f8c311e4fa6d8854529350908190036020019150a150565b6000610caa8261345b565b6000610e88613514565b90505b90565b6000610e8861359d565b610ea06133f3565b610ea861343e565b60408051635d3045ab60e01b81526001600160a01b039290921660048301527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635d3045ab916084808301926000929190829003018186803b158015610f3757600080fd5b505af4158015610f4b573d6000803e3d6000fd5b5050604080518581526020810185905281517f98698e41d9ebb66410ec490ae1224f1b8d1766696d7217fa96e067de3ef5332a9450908190039091019150a15050565b610f966133f3565b610f9e61343e565b60408051638134ddb760e01b81526001600160a01b039290921660048301527461746f6d696345786368616e67654665655261746560581b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91638134ddb7916084808301926000929190829003018186803b15801561102557600080fd5b505af4158015611039573d6000803e3d6000fd5b5050604080518581526020810185905281517f84023d924a8ccb4a028f052967ed7e1e642279c24150e018962f0779021fce4c9450908190039091019150a15050565b6110846133f3565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000610e8861361a565b6110ea6133f3565b6110f261343e565b60408051630e7bf1c560e01b81526001600160a01b039290921660048301527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91630e7bf1c5916064808301926000929190829003018186803b15801561117a57600080fd5b505af415801561118e573d6000803e3d6000fd5b50506040805184815290517f6e65c7d32a9129ebc4e4e6d755e2a9668753c046f4b128ac8aeb4f3e5446a1e59350908190036020019150a150565b6000610caa82613690565b6111dc6133f3565b80611226576040805162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b604482015290519081900360640190fd5b61122e61343e565b6001600160a01b0316631d5b277f600080516020614a918339815191527f65786368616e676544796e616d69634665655468726573686f6c640000000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156112b157600080fd5b505af11580156112c5573d6000803e3d6000fd5b50506040805184815290517f0a1c77eb56927959639f898ae5258d25789fe6c36d7958d2c3daf3f1471d42d99350908190036020019150a150565b6000610e88613749565b6000610e886137c0565b6000610e88613838565b6000610caa826138ae565b6113316133f3565b61133961343e565b60408051631faca50560e21b81526001600160a01b03929092166004830152716c69717569646174696f6e50656e616c747960701b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637eb29414916064808301926000929190829003018186803b1580156113b657600080fd5b505af41580156113ca573d6000803e3d6000fd5b50506040805184815290517fbfb22c07314f4682bba789860ceb851eb8cea2d867920332b2a42cf56be5b2e99350908190036020019150a150565b61140d6133f3565b61141561343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__631a5bb1f790916e65786368616e67654665655261746560881b878787876040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b0316815260200186815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509850505050505050505060006040518083038186803b15801561150157600080fd5b505af4158015611515573d6000803e3d6000fd5b506000925050505b8381101561158c577fbbdab54f0da6d720d21f53e4d6f5bbe83e5a2f74c1354175140ea74f8e90c77e85858381811061155257fe5b9050602002013584848481811061156557fe5b604080519485526020918202939093013590840152508051918290030190a160010161151d565b5050505050565b6000610caa82613957565b600060606115aa6126b7565b905060005b815181101561169f5760008282815181106115c657fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561162e57600080fd5b505afa158015611642573d6000803e3d6000fd5b505050506040513d602081101561165857600080fd5b50516001600160a01b031614158061168557506000818152600360205260409020546001600160a01b0316155b156116965760009350505050610e8b565b506001016115af565b50600191505090565b6116b06133f3565b60006116ba61343e565b6040805162856d3960e51b81526001600160a01b039290921660048301526e1d185c99d95d151a1c995cda1bdb19608a1b6024830152604482018490525173__$6a024fd1d0d065824004f6878746fc5d0d$__916310ada720916064808301926020929190829003018186803b15801561173357600080fd5b505af4158015611747573d6000803e3d6000fd5b505050506040513d602081101561175d57600080fd5b50516040805182815290519192507fb2b3a840c101d8e7f0cf8d80d3868976968714347038fe89b36c5031f94dab12919081900360200190a15050565b6000610e88613a12565b6117ac6133f3565b6117b461343e565b604080516339aafdf360e21b81526001600160a01b039290921660048301527465786368616e67654d617844796e616d696346656560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163e6abf7cc916064808301926000929190829003018186803b15801561183457600080fd5b505af4158015611848573d6000803e3d6000fd5b50506040805184815290517fd7764866d2b524c8fa50c82668b78d32bf7b46a87e37b891de9dd40853de464f9350908190036020019150a150565b61188b6133f3565b806118dd576040805162461bcd60e51b815260206004820152601860248201527f5765696768742064656361792063616e6e6f7420626520300000000000000000604482015290519081900360640190fd5b6118e561343e565b6001600160a01b0316631d5b277f600080516020614a918339815191527f65786368616e676544796e616d69634665655765696768744465636179000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561196857600080fd5b505af115801561197c573d6000803e3d6000fd5b50506040805184815290517fd80e77b0d087a975f2a783eb806eb9a1e93dab1bf148651d3e70c6e85d740eba9350908190036020019150a150565b6119bf6133f3565b6119c761343e565b60408051633e0ecceb60e11b81526001600160a01b03929092166004830152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b602483015282151560448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637c1d99d6916064808301926000929190829003018186803b158015611a4857600080fd5b505af4158015611a5c573d6000803e3d6000fd5b505060408051841515815290517fe11c1893b6f97decd3ac13637137734a4b75d159e899e5a8abb48470ab0bc4fd9350908190036020019150a150565b6000610e88613a95565b6000611aad613b11565b51905090565b6001546001600160a01b031681565b611aca6133f3565b611ad261343e565b6040805163064c16cf60e21b81526001600160a01b039290921660048301527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916319305b3c916064808301926000929190829003018186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b50506040805184815290517ff96e059cb3386bb65fd1d80017c7ce524f813b012d7dc97a1252f9cd4f4c99f39350908190036020019150a150565b6000610caa82613dfb565b611bb66133f3565b611bbe61343e565b60408051632cfaf72960e21b81526001600160a01b039290921660048301526f6c69717569646174696f6e44656c617960801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163b3ebdca4916064808301926000929190829003018186803b158015611c3957600080fd5b505af4158015611c4d573d6000803e3d6000fd5b50506040805184815290517f9917e32433edcb65f8982c1b2c26c3469468308456f93cf34b98c1b0459c53989350908190036020019150a150565b600073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cce57600080fd5b505af4158015611ce2573d6000803e3d6000fd5b505050506040513d6020811015611cf857600080fd5b5051905090565b611d076133f3565b611d0f61343e565b6040805163d4aebcef60e01b81526001600160a01b039290921660048301527464656274536e617073686f745374616c6554696d6560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d4aebcef916064808301926000929190829003018186803b158015611d8f57600080fd5b505af4158015611da3573d6000803e3d6000fd5b50506040805184815290517f9795be9f1478ed09e9e47e67318b8aa7a0c0213170403191099bf7dd435fb4d79350908190036020019150a150565b611de66133f3565b611dee61343e565b604080516341a7936f60e11b81526001600160a01b039290921660048301527077616974696e67506572696f645365637360781b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163834f26de916064808301926000929190829003018186803b158015611e6a57600080fd5b505af4158015611e7e573d6000803e3d6000fd5b50506040805184815290517fc32c92cac11e29883e0fb2d9e38230cc510e3bda48abc270b780de60bb8465f89350908190036020019150a150565b6000610e88613eb3565b6000610caa82613f29565b6060611ed86126b7565b905060005b8151811015612092576000828281518110611ef457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015611faa578181015183820152602001611f92565b50505050905090810190601f168015611fd75780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d602081101561201f57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101611edd565b5050565b61209e6133f3565b6120a661343e565b6040805163fe250a5560e01b81526001600160a01b03929092166004830152766574686572577261707065724d696e744665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fe250a55916064808301926000929190829003018186803b15801561212857600080fd5b505af415801561213c573d6000803e3d6000fd5b50506040805184815290517f19ef86e0422ac5c02afdc7b9f91f468ccc5e9b785bf7c158e01357e8503a819b9350908190036020019150a150565b61217f6133f3565b61218761343e565b604080516310e85b6760e11b81526001600160a01b039290921660048301527030ba37b6b4b1a83934b1b2a13ab33332b960791b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916321d0b6ce916084808301926000929190829003018186803b15801561220a57600080fd5b505af415801561221e573d6000803e3d6000fd5b5050604080518581526020810185905281517f222824a1a314ba34555e60e4757e25a2d17b32d89f53bcfcac36a996e99c29d29450908190039091019150a15050565b6001546001600160a01b031633146122aa5760405162461bcd60e51b8152600401808060200182810382526035815260200180614a2d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6123256133f3565b61232d61343e565b6040805163fd194a3560e01b81526001600160a01b039290921660048301526e1c985d1954dd185b1954195c9a5bd9608a1b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fd194a35916064808301926000929190829003018186803b1580156123a757600080fd5b505af41580156123bb573d6000803e3d6000fd5b50506040805184815290517f16529d8c407b08938da67de7fa4319199baffce4f5d1971f812cc770b0237e669350908190036020019150a150565b6123fe6133f3565b61240661343e565b604080516330d6e65760e21b81526001600160a01b0392831660048201527561676772656761746f725761726e696e67466c61677360501b602482015291831660448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163c35b995c916064808301926000929190829003018186803b15801561248757600080fd5b505af415801561249b573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f0f4cbdee769ea02d5757b91905563555cc648fe42fc3ef201e28d97d2bbde9659350908190036020019150a150565b6124e76133f3565b6124ef61343e565b6040805163067bb56d60e31b81526001600160a01b039290921660048301526f61746f6d69635477617057696e646f7760801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916333ddab68916064808301926000929190829003018186803b15801561256a57600080fd5b505af415801561257e573d6000803e3d6000fd5b50506040805184815290517f61ee2076e20b46130ce31de66f08321493e96f79de0837fb0296b7feca92285b9350908190036020019150a150565b60006125c3613b11565b60400151905090565b6125d46133f3565b6125dc61343e565b60408051631b5238f760e31b81526001600160a01b0392831660048201526e636f6c6c617073654665655261746560881b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163da91c7b8916084808301926000929190829003018186803b15801561265d57600080fd5b505af4158015612671573d6000803e3d6000fd5b50506040805184815290517f7e9498fa8cb2442ec5a6f05b47f4adaafaf286d03a3fa580cc0f3592b60b32359350908190036020019150a15050565b6000610e88613fe4565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106126f957fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000610e8861405b565b6127296133f3565b61273161343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6311d78c0c90916f6c69717569646174696f6e526174696f60801b846127736137c0565b61277b6140d8565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b031681526020018581526020018481526020018381526020018281526020019550505050505060006040518083038186803b1580156127dd57600080fd5b505af41580156127f1573d6000803e3d6000fd5b50506040805184815290517f5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a9350908190036020019150a150565b6000610caa8261414b565b6000610caa826141ee565b61284a6133f3565b61285261343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63c404a0de909171777261707065724275726e4665655261746560701b858561289888613957565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b15801561290c57600080fd5b505af4158015612920573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517f65647551bef307c3b3c3cc08ff4dd60cf02eb1e9e9d20604c5603b90a453e4979450908190039091019150a15050565b6000610e8861429a565b6000610e88614310565b6000610caa8261438d565b6000610e8861443e565b61299d6133f3565b6129a561343e565b60408051631f86e9a960e21b81526001600160a01b0392831660048201526f777261707065724d6178546f6b656e7360801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637e1ba6a4916084808301926000929190829003018186803b158015612a2757600080fd5b505af4158015612a3b573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517fc466f93337e5645290e02cdbed66a95340e81d809b710d8f6de2280de3e27b2f9450908190039091019150a15050565b6000610e886140d8565b6000610caa826144b9565b6000610e8861455e565b6000610e886145d6565b612ab86133f3565b612ac061343e565b60408051635f7ad87160e01b81526001600160a01b0392831660048201527f61746f6d69634571756976616c656e74466f7244657850726963696e6700000060248201526044810185905291831660648301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635f7ad871916084808301926000929190829003018186803b158015612b4f57600080fd5b505af4158015612b63573d6000803e3d6000fd5b5050604080518581526001600160a01b038516602082015281517fc7cff0a6f47777500050f9a29aac5206e15b25b782d1834a176f3b3b134d4f3a9450908190039091019150a15050565b612bb66133f3565b612bbe61343e565b60408051637dfecb2360e11b81526001600160a01b0392831660048201526f696e746572616374696f6e44656c617960801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fbfd9646916084808301926000929190829003018186803b158015612c4057600080fd5b505af4158015612c54573d6000803e3d6000fd5b50506040805184815290517f4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c23619350908190036020019150a15050565b612c986133f3565b612ca061343e565b60408051630a6c461160e41b81526001600160a01b03929092166004830152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163a6c46110916064808301926000929190829003018186803b158015612d1d57600080fd5b505af4158015612d31573d6000803e3d6000fd5b50506040805184815290517f8086de8bfec0a6cd9a9213caef7ee137a59e4d8da145de163dc3f244dacddc689350908190036020019150a150565b612d746133f3565b612d7c61343e565b6001600160a01b0316631d5b277f600080516020614a918339815191527765786368616e676544796e616d6963466565526f756e647360401b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015612dfa57600080fd5b505af1158015612e0e573d6000803e3d6000fd5b50506040805184815290517f098d0190950f074545dd4e10dda16c804bd054facc9ed1ec4181e076ab09bd479350908190036020019150a150565b612e516133f3565b612e5961343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6353c0bf1c909171777261707065724d696e744665655261746560701b8585612e9f88613f29565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b158015612f1357600080fd5b505af4158015612f27573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517ffe7e17467e216f68f8d4a3aea0ab082631afc874fb216e93c38e52a2ddb7ec659450908190039091019150a15050565b6000612f7d613b11565b60200151905090565b612f8e6133f3565b612f9661343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63f02d9a5b9091612fc485614651565b846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001838152602001828152602001935050505060006040518083038186803b15801561301957600080fd5b505af415801561302d573d6000803e3d6000fd5b505050507fbf62a396f632016f0e0cffedb18ee9be41a161c79cee3b64736b0c97a924554a82826040518083600581111561306457fe5b60ff1681526020018281526020019250505060405180910390a15050565b6000610e886147fa565b6130946133f3565b61309c61343e565b6040805163496d5d7960e11b81526001600160a01b03929092166004830152766574686572577261707065724275726e4665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916392dabaf2916064808301926000929190829003018186803b15801561311e57600080fd5b505af4158015613132573d6000803e3d6000fd5b50506040805184815290517f1c97c2e8b44aa487062d3e92ce52ac814b35191f4799fd2d5a3f36c67f1d9d4a9350908190036020019150a150565b6131756133f3565b61317d61343e565b6040805163d9158b0360e01b81526001600160a01b039290921660048301526f6d696e696d756d5374616b6554696d6560801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d9158b03916064808301926000929190829003018186803b1580156131f857600080fd5b505af415801561320c573d6000803e3d6000fd5b50506040805184815290517f2b0fa66d155c9598699cb6569577f27b95729bbf580268eed39db6bc4e8144779350908190036020019150a150565b61324f6133f3565b61325761343e565b6040805163446ca4fd60e01b81526001600160a01b0392909216600483015277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163446ca4fd916084808301926000929190829003018186803b1580156132e157600080fd5b505af41580156132f5573d6000803e3d6000fd5b5050604080518581526020810185905281517f460476cc6f40e86f19053ba74c9baf4c2cef96452bb2722a454d66db953a7b3d9450908190039091019150a15050565b6000610caa8261486f565b600061334d613b11565b60600151905090565b600061336061343e565b6001600160a01b03166323257c2b600080516020614a9183398151915261338685614651565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b505afa1580156133d5573d6000803e3d6000fd5b505050506040513d60208110156133eb57600080fd5b505192915050565b6000546001600160a01b0316331461343c5760405162461bcd60e51b815260040180806020018281038252602f815260200180614a62602f913960400191505060405180910390fd5b565b6000610e886e466c657869626c6553746f7261676560881b614920565b600061346561343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f696e746572616374696f6e44656c617960801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061351e61343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b505afa158015611ce2573d6000803e3d6000fd5b60006135a761343e565b6001600160a01b03166323257c2b600080516020614a91833981519152766574686572577261707065724d696e744665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061362461343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061369a61343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f777261707065724d6178546f6b656e7360801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061375361343e565b6001600160a01b03166323257c2b600080516020614a91833981519152703332b2a832b934b7b2223ab930ba34b7b760791b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006137ca61343e565b6001600160a01b03166323257c2b600080516020614a91833981519152716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061384261343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006138b861343e565b6001600160a01b03166323257c2b600080516020614a918339815191527461746f6d696345786368616e67654665655261746560581b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061396161343e565b6001600160a01b031663c4f610ed600080516020614a9183398151915271777261707065724d696e744665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b6000613a1c61343e565b6001600160a01b03166323257c2b600080516020614a918339815191527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b6000613a9f61343e565b6001600160a01b0316639ee5955a600080516020614a918339815191527561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b613b19614a04565b60408051600480825260a08201909252606091602082016080803883390190505090507f65786368616e676544796e616d69634665655468726573686f6c64000000000081600081518110613b6a57fe5b6020026020010181815250507f65786368616e676544796e616d6963466565576569676874446563617900000081600181518110613ba457fe5b6020026020010181815250507765786368616e676544796e616d6963466565526f756e647360401b81600281518110613bd957fe5b6020026020010181815250507465786368616e67654d617844796e616d696346656560581b81600381518110613c0b57fe5b6020026020010181815250506060613c2161343e565b6001600160a01b031663b67fa7ed600080516020614a91833981519152846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015613c94578181015183820152602001613c7c565b50505050905001935050505060006040518083038186803b158015613cb857600080fd5b505afa158015613ccc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613cf557600080fd5b8101908080516040519392919084640100000000821115613d1557600080fd5b908301906020820185811115613d2a57600080fd5b8251866020820283011164010000000082111715613d4757600080fd5b82525081516020918201928201910280838360005b83811015613d74578181015183820152602001613d5c565b505050509050016040525050509050604051806080016040528082600081518110613d9b57fe5b6020026020010151815260200182600181518110613db557fe5b6020026020010151815260200182600281518110613dcf57fe5b6020026020010151815260200182600381518110613de957fe5b60200260200101518152509250505090565b6000613e0561343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e636f6c6c617073654665655261746560881b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b6000613ebd61343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f61746f6d69635477617057696e646f7760801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b6000613f3361343e565b6001600160a01b031663c4f610ed600080516020614a9183398151915271777261707065724275726e4665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b6000613fee61343e565b6001600160a01b03166323257c2b600080516020614a918339815191527077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061406561343e565b6001600160a01b03166323257c2b600080516020614a91833981519152766574686572577261707065724275726e4665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006140e261343e565b6001600160a01b03166323257c2b600080516020614a918339815191526c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061415561343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b60006141f861343e565b6001600160a01b03166323257c2b600080516020614a9183398151915277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b60006142a461343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061431a61343e565b6001600160a01b03166323257c2b600080516020614a918339815191527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061439761343e565b6001600160a01b03166323257c2b600080516020614a918339815191527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061444861343e565b6001600160a01b03166323257c2b600080516020614a918339815191527464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006144c361343e565b6001600160a01b03166323257c2b600080516020614a918339815191527030ba37b6b4b1a83934b1b2a13ab33332b960791b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061456861343e565b6001600160a01b03166323257c2b600080516020614a91833981519152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006145e061343e565b6001600160a01b031663d994502d600080516020614a91833981519152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60008082600581111561466057fe5b141561468d57507f63726f7373446f6d61696e4465706f7369744761734c696d6974000000000000610cad565b600182600581111561469b57fe5b14156146c857507f63726f7373446f6d61696e457363726f774761734c696d697400000000000000610cad565b60028260058111156146d657fe5b141561470357507f63726f7373446f6d61696e5265776172644761734c696d697400000000000000610cad565b600382600581111561471157fe5b141561473e57507f63726f7373446f6d61696e5769746864726177616c4761734c696d6974000000610cad565b600582600581111561474c57fe5b141561477957507f63726f7373446f6d61696e52656c61794761734c696d69740000000000000000610cad565b600482600581111561478757fe5b14156147b457507f63726f7373446f6d61696e436c6f73654761734c696d69740000000000000000610cad565b6040805162461bcd60e51b8152602060048201526016602482015275556e6b6e6f776e20676173206c696d6974207479706560501b604482015290519081900360640190fd5b600061480461343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e1d185c99d95d151a1c995cda1bdb19608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061487961343e565b6001600160a01b0316639ee5955a600080516020614a918339815191527f61746f6d69634571756976616c656e74466f7244657850726963696e67000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816149fd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156149c25781810151838201526020016149aa565b50505050905090810190601f1680156149ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e53797374656d53657474696e6773000000000000000000000000000000000000a265627a7a72315820426f909a32e8eec3214a4bb84a8ab735532347b1b81c66a1037e351ac99628f664736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "flags",
							"type": "address"
						}
					],
					"name": "AggregatorWarningFlagsUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "equivalent",
							"type": "address"
						}
					],
					"name": "AtomicEquivalentForDexPricingUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newExchangeFeeRate",
							"type": "uint256"
						}
					],
					"name": "AtomicExchangeFeeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newMaxVolume",
							"type": "uint256"
						}
					],
					"name": "AtomicMaxVolumePerBlockUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newBuffer",
							"type": "uint256"
						}
					],
					"name": "AtomicPriceBufferUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newWindow",
							"type": "uint256"
						}
					],
					"name": "AtomicTwapWindowUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newVolatilityConsiderationWindow",
							"type": "uint256"
						}
					],
					"name": "AtomicVolatilityConsiderationWindowUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newVolatilityUpdateThreshold",
							"type": "uint256"
						}
					],
					"name": "AtomicVolatilityUpdateThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collapseFeeRate",
							"type": "uint256"
						}
					],
					"name": "CollapseFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "gasLimitType",
							"type": "uint8"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newLimit",
							"type": "uint256"
						}
					],
					"name": "CrossDomainMessageGasLimitChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtSnapshotStaleTime",
							"type": "uint256"
						}
					],
					"name": "DebtSnapshotStaleTimeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "EtherWrapperBurnFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxETH",
							"type": "uint256"
						}
					],
					"name": "EtherWrapperMaxETHUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "EtherWrapperMintFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "dynamicFeeRounds",
							"type": "uint256"
						}
					],
					"name": "ExchangeDynamicFeeRoundsUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "dynamicFeeThreshold",
							"type": "uint256"
						}
					],
					"name": "ExchangeDynamicFeeThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "dynamicFeeWeightDecay",
							"type": "uint256"
						}
					],
					"name": "ExchangeDynamicFeeWeightDecayUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newExchangeFeeRate",
							"type": "uint256"
						}
					],
					"name": "ExchangeFeeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxDynamicFee",
							"type": "uint256"
						}
					],
					"name": "ExchangeMaxDynamicFeeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newFeePeriodDuration",
							"type": "uint256"
						}
					],
					"name": "FeePeriodDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "interactionDelay",
							"type": "uint256"
						}
					],
					"name": "InteractionDelayUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRatio",
							"type": "uint256"
						}
					],
					"name": "IssuanceRatioUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDelay",
							"type": "uint256"
						}
					],
					"name": "LiquidationDelayUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newPenalty",
							"type": "uint256"
						}
					],
					"name": "LiquidationPenaltyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRatio",
							"type": "uint256"
						}
					],
					"name": "LiquidationRatioUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minimumStakeTime",
							"type": "uint256"
						}
					],
					"name": "MinimumStakeTimeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "threshold",
							"type": "uint256"
						}
					],
					"name": "PriceDeviationThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rateStalePeriod",
							"type": "uint256"
						}
					],
					"name": "RateStalePeriodUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newTargetThreshold",
							"type": "uint256"
						}
					],
					"name": "TargetThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "enabled",
							"type": "bool"
						}
					],
					"name": "TradingRewardsEnabled",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "waitingPeriodSecs",
							"type": "uint256"
						}
					],
					"name": "WaitingPeriodSecsUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "rate",
							"type": "int256"
						}
					],
					"name": "WrapperBurnFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxTokenAmount",
							"type": "uint256"
						}
					],
					"name": "WrapperMaxTokenAmountUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "rate",
							"type": "int256"
						}
					],
					"name": "WrapperMintFeeRateUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "aggregatorWarningFlags",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicEquivalentForDexPricing",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicExchangeFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "atomicMaxVolumePerBlock",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicPriceBuffer",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "atomicTwapWindow",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicVolatilityConsiderationWindow",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicVolatilityUpdateThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "collapseFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "gasLimitType",
							"type": "uint8"
						}
					],
					"name": "crossDomainMessageGasLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtSnapshotStaleTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "etherWrapperBurnFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "etherWrapperMaxETH",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "etherWrapperMintFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeDynamicFeeRounds",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeDynamicFeeThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeDynamicFeeWeightDecay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchangeFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeMaxDynamicFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePeriodDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "interactionDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumStakeTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rateStalePeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_flags",
							"type": "address"
						}
					],
					"name": "setAggregatorWarningFlags",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_equivalent",
							"type": "address"
						}
					],
					"name": "setAtomicEquivalentForDexPricing",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_exchangeFeeRate",
							"type": "uint256"
						}
					],
					"name": "setAtomicExchangeFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxVolume",
							"type": "uint256"
						}
					],
					"name": "setAtomicMaxVolumePerBlock",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_buffer",
							"type": "uint256"
						}
					],
					"name": "setAtomicPriceBuffer",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_window",
							"type": "uint256"
						}
					],
					"name": "setAtomicTwapWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_window",
							"type": "uint256"
						}
					],
					"name": "setAtomicVolatilityConsiderationWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_threshold",
							"type": "uint256"
						}
					],
					"name": "setAtomicVolatilityUpdateThreshold",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_collateral",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_collapseFeeRate",
							"type": "uint256"
						}
					],
					"name": "setCollapseFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "_gasLimitType",
							"type": "uint8"
						},
						{
							"internalType": "uint256",
							"name": "_crossDomainMessageGasLimit",
							"type": "uint256"
						}
					],
					"name": "setCrossDomainMessageGasLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "setDebtSnapshotStaleTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_rate",
							"type": "uint256"
						}
					],
					"name": "setEtherWrapperBurnFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxETH",
							"type": "uint256"
						}
					],
					"name": "setEtherWrapperMaxETH",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_rate",
							"type": "uint256"
						}
					],
					"name": "setEtherWrapperMintFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rounds",
							"type": "uint256"
						}
					],
					"name": "setExchangeDynamicFeeRounds",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "threshold",
							"type": "uint256"
						}
					],
					"name": "setExchangeDynamicFeeThreshold",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "weightDecay",
							"type": "uint256"
						}
					],
					"name": "setExchangeDynamicFeeWeightDecay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "exchangeFeeRates",
							"type": "uint256[]"
						}
					],
					"name": "setExchangeFeeRateForSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "maxFee",
							"type": "uint256"
						}
					],
					"name": "setExchangeMaxDynamicFee",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_feePeriodDuration",
							"type": "uint256"
						}
					],
					"name": "setFeePeriodDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_collateral",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_interactionDelay",
							"type": "uint256"
						}
					],
					"name": "setInteractionDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "setIssuanceRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "setLiquidationDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "penalty",
							"type": "uint256"
						}
					],
					"name": "setLiquidationPenalty",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_liquidationRatio",
							"type": "uint256"
						}
					],
					"name": "setLiquidationRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "setMinimumStakeTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_priceDeviationThresholdFactor",
							"type": "uint256"
						}
					],
					"name": "setPriceDeviationThresholdFactor",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "period",
							"type": "uint256"
						}
					],
					"name": "setRateStalePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "percent",
							"type": "uint256"
						}
					],
					"name": "setTargetThreshold",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_tradingRewardsEnabled",
							"type": "bool"
						}
					],
					"name": "setTradingRewardsEnabled",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_waitingPeriodSecs",
							"type": "uint256"
						}
					],
					"name": "setWaitingPeriodSecs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_wrapper",
							"type": "address"
						},
						{
							"internalType": "int256",
							"name": "_rate",
							"type": "int256"
						}
					],
					"name": "setWrapperBurnFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_wrapper",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_maxTokenAmount",
							"type": "uint256"
						}
					],
					"name": "setWrapperMaxTokenAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_wrapper",
							"type": "address"
						},
						{
							"internalType": "int256",
							"name": "_rate",
							"type": "int256"
						}
					],
					"name": "setWrapperMintFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "targetThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tradingRewardsEnabled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "waitingPeriodSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						}
					],
					"name": "wrapperBurnFeeRate",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						}
					],
					"name": "wrapperMaxTokenAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						}
					],
					"name": "wrapperMintFeeRate",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x3799279b0f8d0934ed8ab31d95e52f1bf2304af436316157690e6e5262633b07",
				"urls": [
					"bzz-raw://87981e640ef5f25799dc13a05413b2be0fc147bd97cd193b89385432cee162d8",
					"dweb:/ipfs/QmW4MWqzXLiAAfJbb8wQmEALr9Yp6Tpjk27xDyMv7TZaPi"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemSettings.sol": "SystemSettings"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemSettings.sol": {
						"keccak256": "0x3799279b0f8d0934ed8ab31d95e52f1bf2304af436316157690e6e5262633b07",
						"urls": [
							"bzz-raw://87981e640ef5f25799dc13a05413b2be0fc147bd97cd193b89385432cee162d8",
							"dweb:/ipfs/QmW4MWqzXLiAAfJbb8wQmEALr9Yp6Tpjk27xDyMv7TZaPi"
						]
					}
				},
				"version": 1
			}
		},
		"SystemStatus": {
			"bytecode": "608060405234801561001057600080fd5b506040516127eb3803806127eb8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506126f1806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c806367a280b2116101d3578063abc0bb6e11610104578063e665edf0116100a2578063f405f65a1161007c578063f405f65a14610d4e578063f44d1e0b14610d56578063f4c80f5e14610d5e578063f8b4b08414610d7b57610378565b8063e665edf014610cbb578063e91e691814610d29578063f161620714610d4657610378565b8063c0eee443116100de578063c0eee44314610c0b578063da5917ae14610c13578063de1b885114610c30578063e470df5814610c9e57610378565b8063abc0bb6e14610b5d578063b431c0ea14610b80578063b9a4986914610b9d57610378565b80637fe9b23d1161017157806394c79f741161014b57806394c79f7414610b0c5780639f8a95ba14610b29578063a0aad31c14610b4d578063a55ce9c514610b5557610378565b80637fe9b23d14610a79578063856aae6c14610ae75780638da5cb5b14610b0457610378565b80637118d431116101ad5780637118d43114610a445780637243bc2c14610a4c57806379ba509714610a695780637c31254114610a7157610378565b806367a280b2146108c757806369eaced2146108cf5780636ef5d8411461093d57610378565b80632dd8afdb116102ad5780634abdb44d1161024b57806355585bce1161022557806355585bce1461087757806356c3da451461087f5780636132eba4146108875780636309a10c146108aa57610378565b80634abdb44d146106ed578063517d60c6146106f557806353a47bb71461085357610378565b8063396e258e11610287578063396e258e1461065457806342a28e211461067157806348bf19711461068e5780634a661850146106ca57610378565b80632dd8afdb146106285780632e8d0b9e14610630578063346cde511461064c57610378565b80631ce00ba21161031a57806322264567116102f457806322264567146105725780632366245e146105955780632a647ab71461059d5780632be470901461060b57610378565b80631ce00ba21461049a5780631f4b3401146104bd57806320f2bf001461052b57610378565b80631588e817116103565780631588e817146103a95780631627540c146103c6578063180113bc146103ec5780631cba727c1461042c57610378565b8063086dabd11461037d57806312bde51414610387578063157c51d3146103a1575b600080fd5b610385610d83565b005b61038f610d8d565b60408051918252519081900360200190f35b610385610d9a565b610385600480360360208110156103bf57600080fd5b5035610e04565b610385600480360360208110156103dc57600080fd5b50356001600160a01b0316610e6f565b6104096004803603602081101561040257600080fd5b5035610ecb565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b6103856004803603604081101561044257600080fd5b810190602081018135600160201b81111561045c57600080fd5b82018360208201111561046e57600080fd5b803590602001918460208302840111600160201b8311171561048f57600080fd5b919350915035610ef0565b610385600480360360408110156104b057600080fd5b5080359060200135610f33565b610385600480360360208110156104d357600080fd5b810190602081018135600160201b8111156104ed57600080fd5b8201836020820111156104ff57600080fd5b803590602001918460208302840111600160201b8311171561052057600080fd5b509092509050610f6b565b6105576004803603604081101561054157600080fd5b50803590602001356001600160a01b0316610fa7565b60408051921515835290151560208301528051918290030190f35b6103856004803603604081101561058857600080fd5b5080359060200135610fd0565b610409611016565b610385600480360360408110156105b357600080fd5b810190602081018135600160201b8111156105cd57600080fd5b8201836020820111156105df57600080fd5b803590602001918460208302840111600160201b8311171561060057600080fd5b91935091503561102f565b6103856004803603602081101561062157600080fd5b503561106d565b6104096110d7565b6106386110f0565b604080519115158252519081900360200190f35b61040961111a565b6103856004803603602081101561066a57600080fd5b5035611133565b6103856004803603602081101561068757600080fd5b503561119e565b610385600480360360808110156106a457600080fd5b508035906001600160a01b036020820135169060408101351515906060013515156111b2565b610385600480360360408110156106e057600080fd5b50803590602001356111cc565b61038f611212565b6103856004803603608081101561070b57600080fd5b810190602081018135600160201b81111561072557600080fd5b82018360208201111561073757600080fd5b803590602001918460208302840111600160201b8311171561075857600080fd5b919390929091602081019035600160201b81111561077557600080fd5b82018360208201111561078757600080fd5b803590602001918460208302840111600160201b831117156107a857600080fd5b919390929091602081019035600160201b8111156107c557600080fd5b8201836020820111156107d757600080fd5b803590602001918460208302840111600160201b831117156107f857600080fd5b919390929091602081019035600160201b81111561081557600080fd5b82018360208201111561082757600080fd5b803590602001918460208302840111600160201b8311171561084857600080fd5b509092509050611221565b61085b611312565b604080516001600160a01b039092168252519081900360200190f35b610385611321565b61038f61138c565b6103856004803603604081101561089d57600080fd5b508035906020013561139a565b610385600480360360208110156108c057600080fd5b50356113a2565b6103856113e7565b610385600480360360208110156108e557600080fd5b810190602081018135600160201b8111156108ff57600080fd5b82018360208201111561091157600080fd5b803590602001918460208302840111600160201b8311171561093257600080fd5b509092509050611453565b6109ab6004803603602081101561095357600080fd5b810190602081018135600160201b81111561096d57600080fd5b82018360208201111561097f57600080fd5b803590602001918460208302840111600160201b831117156109a057600080fd5b50909250905061148f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156109ef5781810151838201526020016109d7565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a2e578181015183820152602001610a16565b5050505090500194505050505060405180910390f35b6103856115b8565b61040960048036036020811015610a6257600080fd5b50356115c8565b6103856115ed565b6103856116a9565b61038560048036036040811015610a8f57600080fd5b810190602081018135600160201b811115610aa957600080fd5b820183602082011115610abb57600080fd5b803590602001918460208302840111600160201b83111715610adc57600080fd5b9193509150356116b9565b61038560048036036020811015610afd57600080fd5b50356116f7565b61085b611718565b61038560048036036020811015610b2257600080fd5b5035611727565b610b3161176c565b604080516001600160f81b039092168252519081900360200190f35b610385611771565b61038f611789565b61038560048036036040811015610b7357600080fd5b508035906020013561179d565b61063860048036036020811015610b9657600080fd5b50356117e3565b6109ab60048036036020811015610bb357600080fd5b810190602081018135600160201b811115610bcd57600080fd5b820183602082011115610bdf57600080fd5b803590602001918460208302840111600160201b83111715610c0057600080fd5b50909250905061180b565b61063861192c565b61038560048036036020811015610c2957600080fd5b5035611935565b61038560048036036020811015610c4657600080fd5b810190602081018135600160201b811115610c6057600080fd5b820183602082011115610c7257600080fd5b803590602001918460208302840111600160201b83111715610c9357600080fd5b509092509050611946565b61038560048036036020811015610cb457600080fd5b5035611982565b6109ab60048036036020811015610cd157600080fd5b810190602081018135600160201b811115610ceb57600080fd5b820183602082011115610cfd57600080fd5b803590602001918460208302840111600160201b83111715610d1e57600080fd5b5090925090506119f7565b61040960048036036020811015610d3f57600080fd5b5035611b18565b61038f611b3d565b610385611b4c565b61038f611bb8565b61038560048036036020811015610d7457600080fd5b5035611bc4565b610409611c09565b610d8b611c22565b565b6553797374656d60d01b81565b610dac6553797374656d60d01b611d01565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610e186745786368616e676560c01b611d5e565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610e77611db6565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60096020526000908152604090205460ff81169061010090046001600160f81b031682565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611dff915050565b505050565b610f3b611c22565b610f43611ead565b610f4c82611eef565b610f5581611eef565b610f5e82611f3d565b610f6781611f3d565b5050565b610f67828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611f8b92505050565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061100057fe5b602002602001018181525050610f2e8183612033565b60045460ff81169061010090046001600160f81b031682565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612033915050565b611080664675747572657360c81b611d5e565b600680546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fbb77bf6af5bb933d0fb912130167ce25b6debb9c728f232ee4e7c181f16c8e0c9181900360200190a150565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015611115575060035461010090046001600160f81b03166001145b905090565b60065460ff81169061010090046001600160f81b031682565b6111476749737375616e636560c01b611d5e565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b6111a6611c22565b6111af81611f3d565b50565b6111ba611db6565b6111c6848484846120db565b50505050565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106111fc57fe5b602002602001018181525050610f2e8183611dff565b6749737375616e636560c01b81565b611229611db6565b868514801561123757508483145b801561124257508281145b611293576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b87811015611307576112ff8989838181106112ad57fe5b905060200201358888848181106112c057fe5b905060200201356001600160a01b03168787858181106112dc57fe5b9050602002013515158686868181106112f157fe5b9050602002013515156120db565b600101611296565b505050505050505050565b6001546001600160a01b031681565b611334664675747572657360c81b611d01565b6006805460ff191690819055604080516101009092046001600160f81b03168252517fcbdc17547b5be7fb4a78666d4253509496561d5b1088a019865bd70d7e248fa6916020908290030190a16006805460ff169055565b664675747572657360c81b81565b610f55611c22565b6040805160018082528183019092526060916020808301908038833901905050905081816000815181106113d257fe5b602002602001018181525050610f6781612221565b6113fb6749737375616e636560c01b611d01565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610f6782828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061222192505050565b606080838390506040519080825280602002602001820160405280156114bf578160200160208202803883390190505b506040805185815260208087028201019091529092508380156114ec578160200160208202803883390190505b50905060005b838110156115b0576009600086868481811061150a57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061153c57fe5b911515602092830291909101909101526009600086868481811061155c57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061159d57fe5b60209081029190910101526001016114f2565b509250929050565b6115c0611c22565b610d8b611ead565b60086020526000908152604090205460ff81169061010090046001600160f81b031682565b6001546001600160a01b031633146116365760405162461bcd60e51b81526004018080602001828103825260358152602001806124f76035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6116b1611c22565b610d8b6122cf565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612311915050565b6116ff611c22565b611707611ead565b61170f6123b7565b6111af816123f9565b6000546001600160a01b031681565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811061175757fe5b602002602001018181525050610f6781612450565b600181565b611779611c22565b611781611ead565b610d8b6123b7565b6c53796e746845786368616e676560981b81565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106117cd57fe5b602002602001018181525050610f2e8183612311565b60035460009060ff1680611805575060008281526008602052604090205460ff165b92915050565b6060808383905060405190808252806020026020018201604052801561183b578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611868578160200160208202803883390190505b50905060005b838110156115b0576008600086868481811061188657fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff168382815181106118b857fe5b91151560209283029190910190910152600860008686848181106118d857fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061191957fe5b602090810291909101015260010161186e565b60035460ff1690565b61193d611c22565b6111af81611eef565b610f6782828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061245092505050565b6119946553797374656d60d01b611d5e565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b60608083839050604051908082528060200260200182016040528015611a27578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611a54578160200160208202803883390190505b50905060005b838110156115b05760076000868684818110611a7257fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff16838281518110611aa457fe5b9115156020928302919091019091015260076000868684818110611ac457fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b0316828281518110611b0557fe5b6020908102919091010152600101611a5a565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6745786368616e676560c01b81565b611b606745786368616e676560c01b611d01565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b640a6f2dce8d60db1b81565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110611bf457fe5b602002602001018181525050610f6781611f8b565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b0316600114611c5e5760405180606001604052806028815260200161256660289139611c78565b6040518060600160405280603a815260200161252c603a91395b906111af5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cc6578181015183820152602001611cae565b50505050905090810190601f168015611cf35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff166111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806126746021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff166111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806126746021913960400191505060405180910390fd5b6000546001600160a01b03163314610d8b5760405162461bcd60e51b815260040180806020018281038252602f81526020018061261a602f913960400191505060405180910390fd5b611e186c53796e746845786368616e676560981b611d5e565b60005b8251811015610f2e576000838281518110611e3257fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcea0da706e9f2a6a1cb56cdab42ac548791339f1710deadf814f15fc0a6a7114928290030190a150600101611e1b565b60055460ff1615610d8b5760405162461bcd60e51b815260040180806020018281038252602b815260200180612649602b913960400191505060405180910390fd5b60008181526007602052604090205460ff16156111af5760405162461bcd60e51b815260040180806020018281038252602e8152602001806125b9602e913960400191505060405180910390fd5b60008181526008602052604090205460ff16156111af5760405162461bcd60e51b81526004018080602001828103825260288152602001806126956028913960400191505060405180910390fd5b611f9e664675747572657360c81b611d01565b60005b8151811015610f67576000828281518110611fb857fe5b6020908102919091018101516000818152600983526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f250fcb5d34afaf9bc18ec9ca0bf709e0f2ecb8ae4d4a3a616c0bf54b2ddf53e6928290030190a1600090815260096020526040812055600101611fa1565b612046664675747572657360c81b611d5e565b60005b8251811015610f2e57600083828151811061206057fe5b60209081029190910181015160008181526009835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcaa561b71353382b62092c429c14613b5db8f9c5f3a27cb51df16e51f350f8ca928290030190a150600101612049565b6553797374656d60d01b8414806120fc57506749737375616e636560c01b84145b8061211157506745786368616e676560c01b84145b806121255750664675747572657360c81b84145b8061213f57506c53796e746845786368616e676560981b84145b806121515750640a6f2dce8d60db1b84145b6121a2576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b61223a6c53796e746845786368616e676560981b611d01565b60005b8151811015610f6757600082828151811061225457fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f91037f810fbf9c3c6d5573650d27de6b5e8d2187698822700d4524102472bc08928290030190a160009081526007602052604081205560010161223d565b60045460ff1615610d8b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061258e602b913960400191505060405180910390fd5b612322640a6f2dce8d60db1b611d5e565b60005b8251811015610f2e57600083828151811061233c57fe5b60209081029190910181015160008181526008835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541928290030190a150600101612325565b60065460ff1615610d8b5760405162461bcd60e51b81526004018080602001828103825260338152602001806125e76033913960400191505060405180910390fd5b60008181526009602052604090205460ff16156111af576040805162461bcd60e51b815260206004820152601060248201526f13585c9ad95d081cdd5cdc195b99195960821b604482015290519081900360640190fd5b612461640a6f2dce8d60db1b611d01565b60005b8151811015610f6757600082828151811061247b57fe5b6020908102919091018101516000818152600883526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220928290030190a160009081526008602052604081205560010161246456fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f696b6f732069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e642062794f696b6f732069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656449737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f6869626974656446757475726573206d61726b657473206172652073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645265737472696374656420746f2061636365737320636f6e74726f6c206c69737453796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a7231582039df5e73b7d37a91f23bdfab136a3bbc345163776283e5c9e112c18c127d792c64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "section",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"name": "AccessControlUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "ExchangeResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "ExchangeSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesMarketResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesMarketSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "IssuanceResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "IssuanceSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthExchangeResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthExchangeSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SystemResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SystemSuspended",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_EXCHANGE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_FUTURES",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_ISSUANCE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_SYNTH",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_SYNTH_EXCHANGE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_SYSTEM",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SUSPENSION_REASON_UPGRADE",
					"outputs": [
						{
							"internalType": "uint248",
							"name": "",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "accessControl",
					"outputs": [
						{
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "futuresMarketSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "futuresSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						}
					],
					"name": "getFuturesMarketSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "suspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synths",
							"type": "bytes32[]"
						}
					],
					"name": "getSynthExchangeSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "exchangeSuspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synths",
							"type": "bytes32[]"
						}
					],
					"name": "getSynthSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "suspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isSystemUpgrading",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireExchangeActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireExchangeBetweenSynthsAllowed",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireFuturesActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "requireFuturesMarketActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireIssuanceActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireSynthActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireSynthExchangeActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireSynthsActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireSystemActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeFutures",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "resumeFuturesMarket",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumeFuturesMarkets",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeIssuance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "resumeSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "resumeSynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumeSynthsExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeSystem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendFutures",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendFuturesMarket",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendFuturesMarkets",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendIssuance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynthsExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSystem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthExchangeSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "synthSuspended",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "systemSuspended",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "systemSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "section",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"name": "updateAccessControl",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "sections",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "bool[]",
							"name": "canSuspends",
							"type": "bool[]"
						},
						{
							"internalType": "bool[]",
							"name": "canResumes",
							"type": "bool[]"
						}
					],
					"name": "updateAccessControls",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xe535b3dd2bcbb31f9dfddd3bcb436fb24ae36b791d9d691f7379f9e298b8e820",
				"urls": [
					"bzz-raw://340ed30b58f99ef24b9b707273d027291413f4011823a85f6d478c67019cae16",
					"dweb:/ipfs/QmdwpqB4E5gfG1CUPp2TRzRtFQDiY9BRJLeTED4YVmzhGW"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemStatus.sol": "SystemStatus"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemStatus.sol": {
						"keccak256": "0xe535b3dd2bcbb31f9dfddd3bcb436fb24ae36b791d9d691f7379f9e298b8e820",
						"urls": [
							"bzz-raw://340ed30b58f99ef24b9b707273d027291413f4011823a85f6d478c67019cae16",
							"dweb:/ipfs/QmdwpqB4E5gfG1CUPp2TRzRtFQDiY9BRJLeTED4YVmzhGW"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeRatesWithDexPricing": {
			"bytecode": "608060405234801561001057600080fd5b5060405162003765380380620037658339818101604052604081101561003557600080fd5b50805160209091015181818080836001600160a01b03811661009e576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050505050613638806200012d6000396000f3fe608060405234801561001057600080fd5b506004361061027e5760003560e01c80636ce66c801161015c5780639eab4a37116100ce578063c8e5bbd511610087578063c8e5bbd51461087d578063ce8480ea1461094a578063d89ee86114610967578063ed76245014610a25578063f216310714610ae7578063fdadbc7e14610b045761027e565b80639eab4a371461077d578063a777155614610785578063ac82f608146107a2578063b295ad34146107bf578063b7ab13f2146107f2578063c2c8a6761461080f5761027e565b80637a018a1e116101205780637a018a1e146106ed5780638295016a1461070a5780638661cc7b14610733578063899ffef4146107505780638da5cb5b1461075857806397a4aca0146107605761027e565b80636ce66c80146106475780637103353e1461069a57806374185360146106b757806374eded39146106bf57806379ba5097146106e55761027e565b80632af64bd3116101f55780634c36b837116101b95780634c36b837146105e15780634f72def6146105e957806353a47bb714610606578063614d08f81461060e578063654a60ac146106165780636a2b91511461063f5761027e565b80632af64bd31461053d5780632bed9e0c1461054557806338aa1b99146105625780633f0e084f1461057f5780634308a94f146105ab5761027e565b80630c71cd23116102475780630c71cd23146104535780630ee4951b14610489578063109e46a2146104a35780631627540c146104d25780632528f0fe146104fa5780632678df96146105175761027e565b80629919c01461028357806304f3bcec146102b4578063055286e0146102d857806305a046e5146103275780630a7d36d1146103e5575b600080fd5b6102a06004803603602081101561029957600080fd5b5035610b27565b604080519115158252519081900360200190f35b6102bc610b42565b604080516001600160a01b039092168252519081900360200190f35b610301600480360360608110156102ee57600080fd5b5080359060208101359060400135610b51565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6103956004803603602081101561033d57600080fd5b810190602081018135600160201b81111561035757600080fd5b82018360208201111561036957600080fd5b803590602001918460208302840111600160201b8311171561038a57600080fd5b509092509050610d2a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d15781810151838201526020016103b9565b505050509050019250505060405180910390f35b6102a0600480360360208110156103fb57600080fd5b810190602081018135600160201b81111561041557600080fd5b82018360208201111561042757600080fd5b803590602001918460208302840111600160201b8311171561044857600080fd5b509092509050610dac565b6104706004803603602081101561046957600080fd5b5035610e5f565b6040805192835290151560208301528051918290030190f35b610491610ee4565b60408051918252519081900360200190f35b610491600480360360808110156104b957600080fd5b5080359060208101359060408101359060600135610ef4565b6104f8600480360360208110156104e857600080fd5b50356001600160a01b0316610f37565b005b6102a06004803603602081101561051057600080fd5b5035610f93565b6103956004803603602081101561052d57600080fd5b50356001600160a01b0316610fb3565b6102a0611067565b6104f86004803603602081101561055b57600080fd5b5035611171565b6102a06004803603602081101561057857600080fd5b503561126d565b6104f86004803603604081101561059557600080fd5b50803590602001356001600160a01b031661127b565b6105c8600480360360208110156105c157600080fd5b50356114c1565b6040805192835260208301919091528051918290030190f35b6102bc6114f9565b610491600480360360208110156105ff57600080fd5b5035611503565b6102bc611521565b610491611530565b6104916004803603606081101561062c57600080fd5b5080359060208101359060400135611554565b61049161156c565b61067c600480360360a081101561065d57600080fd5b5080359060208101359060408101359060608101359060800135611576565b60408051938452602084019290925282820152519081900360600190f35b6102bc600480360360208110156106b057600080fd5b50356115db565b6104f86115f6565b6104f8600480360360208110156106d557600080fd5b50356001600160a01b03166117be565b6104f86118a3565b6104916004803603602081101561070357600080fd5b503561195f565b61067c6004803603606081101561072057600080fd5b508035906020810135906040013561196a565b6102a06004803603602081101561074957600080fd5b503561198a565b610395611a73565b6102bc611ac4565b6104916004803603602081101561077657600080fd5b5035611ad3565b6102bc611ade565b6104916004803603602081101561079b57600080fd5b5035611b89565b610491600480360360208110156107b857600080fd5b5035611b94565b6107dc600480360360208110156107d557600080fd5b5035611baf565b6040805160ff9092168252519081900360200190f35b6104916004803603602081101561080857600080fd5b5035611bc4565b6103956004803603602081101561082557600080fd5b810190602081018135600160201b81111561083f57600080fd5b82018360208201111561085157600080fd5b803590602001918460208302840111600160201b8311171561087257600080fd5b509092509050611bcf565b6108eb6004803603602081101561089357600080fd5b810190602081018135600160201b8111156108ad57600080fd5b8201836020820111156108bf57600080fd5b803590602001918460208302840111600160201b831117156108e057600080fd5b509092509050611c47565b604051808060200183151515158152602001828103825284818151815260200191508051906020019060200280838360005b8381101561093557818101518382015260200161091d565b50505050905001935050505060405180910390f35b6104916004803603602081101561096057600080fd5b5035611d8e565b6102a06004803603604081101561097d57600080fd5b810190602081018135600160201b81111561099757600080fd5b8201836020820111156109a957600080fd5b803590602001918460208302840111600160201b831117156109ca57600080fd5b919390929091602081019035600160201b8111156109e757600080fd5b8201836020820111156109f957600080fd5b803590602001918460208302840111600160201b83111715610a1a57600080fd5b509092509050611d99565b610a4e60048036036060811015610a3b57600080fd5b5080359060208101359060400135611ea0565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a92578181015183820152602001610a7a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610ad1578181015183820152602001610ab9565b5050505090500194505050505060405180910390f35b6102bc60048036036020811015610afd57600080fd5b5035611f7e565b6105c860048036036040811015610b1a57600080fd5b5080359060200135611f89565b6000610b3a82610b35611fa2565b61201a565b90505b919050565b6002546001600160a01b031681565b6000806000806000610b628861204c565b90506001600160a01b038116610bbf576040805162461bcd60e51b815260206004820152601c60248201527f4e6f2061746f6d6963206571756976616c656e7420666f722073726300000000604482015290519081900360640190fd5b6000610bca8761204c565b90506001600160a01b038116610c27576040805162461bcd60e51b815260206004820152601d60248201527f4e6f2061746f6d6963206571756976616c656e7420666f722064657374000000604482015290519081900360640190fd5b610c32898989612132565b919650945092506000610c448a612184565b90506000610c5189612184565b90506000818311610c625781610c64565b825b90506000610cf8610ceb8373__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb357600080fd5b505af4158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b50519063ffffffff61222c16565b8a9063ffffffff61228916565b90506000610d0787878f6122b3565b9050808210610d165780610d18565b815b9a505050505050505093509350935093565b60608083839050604051908082528060200260200182016040528015610d5a578160200160208202803883390190505b50905060005b83811015610da257610d83858583818110610d7757fe5b90506020020135612600565b828281518110610d8f57fe5b6020908102919091010152600101610d60565b5090505b92915050565b600080610db7611fa2565b90506060610df785858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061261c92505050565b905060005b84811015610e5357818181518110610e1057fe5b602002602001015180610e3a5750610e3a868683818110610e2d57fe5b905060200201358461201a565b15610e4b5760019350505050610da6565b600101610dfc565b50600095945050505050565b600080610e6a6134c8565b610e738461285f565b9050631bd554d160e21b841415610e9957516001600160d81b0316915060009050610edf565b8051610eb7610ea6611fa2565b836020015164ffffffffff16612a6d565b80610ece5750610ece85610ec9612a88565b612b07565b6001600160d81b0390911693509150505b915091565b6000610eee611fa2565b90505b90565b600083815b610f068783600101612be5565b915050801580610f17575083850181115b15610f2457509050610f2f565b600190910190610ef9565b949350505050565b610f3f612dc4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000610fa182610b35611fa2565b80610b3a5750610b3a82610ec9612a88565b600654604080518281526020808402820101909152606091600091908015610fe5578160200160208202803883390190505b50915060005b6006548110156110605760006006828154811061100457fe5b600091825260208083209091015480835260049091526040909120549091506001600160a01b039081169086161415611057578084848060010195508151811061104a57fe5b6020026020010181815250505b50600101610feb565b5050919050565b60006060611073611a73565b905060005b815181101561116857600082828151811061108f57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156110f757600080fd5b505afa15801561110b573d6000803e3d6000fd5b505050506040513d602081101561112157600080fd5b50516001600160a01b031614158061114e57506000818152600360205260409020546001600160a01b0316155b1561115f5760009350505050610ef1565b50600101611078565b50600191505090565b611179612dc4565b6000818152600460205260409020546001600160a01b0316806111e3576040805162461bcd60e51b815260206004820152601c60248201527f4e6f2061676772656761746f722065786973747320666f72206b657900000000604482015290519081900360640190fd5b600082815260046020908152604080832080546001600160a01b031916905560059091528120805460ff1916905561121c836006612e0f565b9050801561126857604080518481526001600160a01b038416602082015281517fec70e890fc7db7de4059b114c9093a1f41283d18ffcfbcac45566feea4d4f777929181900390910190a15b505050565b6000610b3a82610ec9612a88565b611283612dc4565b60008190506000816001600160a01b031663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b1580156112c357600080fd5b505afa1580156112d7573d6000803e3d6000fd5b505050506040513d60208110156112ed57600080fd5b50511015611342576040805162461bcd60e51b815260206004820152601b60248201527f476976656e2041676772656761746f7220697320696e76616c69640000000000604482015290519081900360640190fd5b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561137d57600080fd5b505afa158015611391573d6000803e3d6000fd5b505050506040513d60208110156113a757600080fd5b50519050601260ff821611156113ee5760405162461bcd60e51b81526004018080602001828103825260328152602001806135d26032913960400191505060405180910390fd5b6000848152600460205260409020546001600160a01b031661144057600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018490555b600084815260046020908152604080832080546001600160a01b0319166001600160a01b0387169081179091556005835292819020805460ff191660ff861617905580518781529182019290925281517f0bcae573430f69c5361e5d76534d3f61d2d803958778680cd74be9dc6299bc63929181900390910190a150505050565b6000806114cc6134c8565b6114d58461285f565b80516020909101516001600160d81b03909116935064ffffffffff16915050915091565b6000610eee612a88565b6006818154811061151057fe5b600091825260209091200154905081565b6001546001600160a01b031681565b7f45786368616e676552617465735769746844657850726963696e67000000000081565b6000611561848484612132565b509095945050505050565b6000610eee612eb3565b60008060006115858886612be5565b5091508786141561159a5750859150806115d0565b6115a48685612be5565b50905080156115d0576115cd816115c1898563ffffffff612f2c16565b9063ffffffff612f4116565b92505b955095509592505050565b6004602052600090815260409020546001600160a01b031681565b6060611600611a73565b905060005b81518110156117ba57600082828151811061161c57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b838110156116d25781810151838201526020016116ba565b50505050905090810190601f1680156116ff5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561171d57600080fd5b505afa158015611731573d6000803e3d6000fd5b505050506040513d602081101561174757600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101611605565b5050565b6117c6612dc4565b6117ce612f56565b604080516309b9412f60e31b81526c45786368616e6765526174657360981b6004820152713232bc283934b1b2a0b3b3b932b3b0ba37b960711b60248201526001600160a01b03848116604483015291519290911691634dca09789160648082019260009290919082900301818387803b15801561184b57600080fd5b505af115801561185f573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f8a51d16f378c74938a4b9290afe425bbfba62f05aa9d27bff5e892f62696f7609350908190036020019150a150565b6001546001600160a01b031633146118ec5760405162461bcd60e51b815260040180806020018281038252603581526020018061351d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610b3a82612f73565b600080600061197a868686612132565b9250925092505b93509350939050565b600081631bd554d160e21b14156119a357506000610b3d565b60006119ae83613018565b905060006119bb846130cc565b90508115806119c8575080155b156119d857600092505050610b3d565b60006119ea428463ffffffff61222c16565b905060006119f786612f73565b90505b8215611a6757600080611a0d8884612be5565b9150915080600014158015611a2157508381105b15611a355760009650505050505050610b3d565b811580611a40575080155b15611a4c575050611a67565b82611a58575050611a67565b505060001992830192016119fa565b50600195945050505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611ab557fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000610b3a826130cc565b6000611ae8612f56565b6001600160a01b0316639ee5955a6c45786368616e6765526174657360981b713232bc283934b1b2a0b3b3b932b3b0ba37b960711b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b505afa158015611b6c573d6000803e3d6000fd5b505050506040513d6020811015611b8257600080fd5b5051905090565b6000610b3a82613018565b6000611b9f8261285f565b516001600160d81b031692915050565b60056020526000908152604090205460ff1681565b6000610b3a82612184565b60608083839050604051908082528060200260200182016040528015611bff578160200160208202803883390190505b50905060005b83811015610da257611c28858583818110611c1c57fe5b90506020020135611b94565b828281518110611c3457fe5b6020908102919091010152600101611c05565b6060600083839050604051908082528060200260200182016040528015611c78578160200160208202803883390190505b5091506000611c85611fa2565b90506060611cc586868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061261c92505050565b905060005b85811015611d8457611cda6134c8565b611cf5888884818110611ce957fe5b9050602002013561285f565b905080600001516001600160d81b0316868381518110611d1157fe5b60200260200101818152505084158015611d445750631bd554d160e21b888884818110611d3a57fe5b9050602002013514155b15611d7b57828281518110611d5557fe5b602002602001015180611d785750611d7884826020015164ffffffffff16612a6d565b94505b50600101611cca565b5050509250929050565b6000610b3a82612600565b6000818414611dd95760405162461bcd60e51b81526004018080602001828103825260308152602001806135a26030913960400191505060405180910390fd5b6000611de3611fa2565b90506060611e2387878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061261c92505050565b905060005b86811015611e9257818181518110611e3c57fe5b602002602001015180611e795750611e79888883818110611e5957fe5b90506020020135878784818110611e6c57fe5b9050602002013585613180565b15611e8a5760019350505050610f2f565b600101611e28565b506000979650505050505050565b60608083604051908082528060200260200182016040528015611ecd578160200160208202803883390190505b50915083604051908082528060200260200182016040528015611efa578160200160208202803883390190505b50905060008311611f1357611f0e85612f73565b611f15565b825b925060005b84811015611f7457611f2c8685612be5565b848381518110611f3857fe5b60200260200101848481518110611f4b57fe5b60209081029190910101919091525283611f655750611f76565b60001990930192600101611f1a565b505b935093915050565b6000610b3a8261204c565b600080611f968484612be5565b915091505b9250929050565b6000611fac612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b6000631bd554d160e21b83141561203357506000610da6565b6120458261204085612600565b612a6d565b9392505050565b6000612056612f56565b6001600160a01b0316639ee5955a6d53797374656d53657474696e677360901b7f61746f6d69634571756976616c656e74466f7244657850726963696e67000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b505afa158015612114573d6000803e3d6000fd5b505050506040513d602081101561212a57600080fd5b505192915050565b600080600061214086611b94565b915083861415612154575083915080611981565b61215d84611b94565b9050801561198157612179816115c1878563ffffffff612f2c16565b925093509350939050565b600061218e612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7030ba37b6b4b1a83934b1b2a13ab33332b960791b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b600082821115612283576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000670de0b6b3a76400006122a4848463ffffffff6131bb16565b816122ab57fe5b049392505050565b6000806123b973__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156122fd57600080fd5b505af4158015612311573d6000803e3d6000fd5b505050506040513d602081101561232757600080fd5b50516040805163313ce56760e01b815290516123ad916001600160a01b038a169163313ce56791600480820192602092909190829003018186803b15801561236e57600080fd5b505afa158015612382573d6000803e3d6000fd5b505050506040513d602081101561239857600080fd5b5051869060ff16600a0a63ffffffff6131bb16565b9063ffffffff61321416565b905060006123c5612eb3565b905080612419576040805162461bcd60e51b815260206004820181905260248201527f556e696e697469616c697a65642061746f6d696320747761702077696e646f77604482015290519081900360640190fd5b6000612423611ade565b60408051637c66194960e01b81526001600160a01b038a811660048301526024820187905289811660448301526064820186905291519290911691637c66194991608480820192602092909190829003018186803b15801561248457600080fd5b505afa158015612498573d6000803e3d6000fd5b505050506040513d60208110156124ae57600080fd5b50519050806124fb576040805162461bcd60e51b815260206004820152601460248201527306465782070726963652072657475726e656420360641b604482015290519081900360640190fd5b6125f5866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561253757600080fd5b505afa15801561254b573d6000803e3d6000fd5b505050506040513d602081101561256157600080fd5b505160408051630241ebdb60e61b8152905160ff909216600a0a916123ad9173__$e9b11e9f4c77d4fa45acd0743461a141a9$__9163907af6c091600480820192602092909190829003018186803b1580156125bc57600080fd5b505af41580156125d0573d6000803e3d6000fd5b505050506040513d60208110156125e657600080fd5b5051849063ffffffff6131bb16565b979650505050505050565b600061260b8261285f565b6020015164ffffffffff1692915050565b60606000612628612a88565b90506001600160a01b0381161561282a5760608351604051908082528060200260200182016040528015612666578160200160208202803883390190505b50905060005b84518110156126db576004600086838151811061268557fe5b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b03168282815181106126bb57fe5b6001600160a01b039092166020928302919091019091015260010161266c565b50604051631f5c8f2b60e21b81526020600482018181528351602484015283516001600160a01b03861693637d723cac93869392839260440191808601910280838360005b83811015612738578181015183820152602001612720565b505050509050019250505060006040518083038186803b15801561275b57600080fd5b505afa15801561276f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561279857600080fd5b8101908080516040519392919084600160201b8211156127b757600080fd5b9083019060208201858111156127cc57600080fd5b82518660208202830111600160201b821117156127e857600080fd5b82525081516020918201928201910280838360005b838110156128155781810151838201526020016127fd565b50505050905001604052505050925050612859565b8251604051908082528060200260200182016040528015612855578160200160208202803883390190505b5091505b50919050565b6128676134c8565b631bd554d160e21b82141561290b57604051806040016040528073__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c557600080fd5b505af41580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b50516001600160d81b0316815260006020909101529050610b3d565b6000828152600460205260409020546001600160a01b031680156128595760408051600481526024810182526020810180516001600160e01b0316633fabe5a360e21b1781529151815191926000926060926001600160a01b0387169286928291908083835b602083106129905780518252601f199092019160209182019101612971565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146129f0576040519150601f19603f3d011682016040523d82523d6000602084013e6129f5565b606091505b50915091508115612a64576000808280602001905160a0811015612a1857600080fd5b50602081015160609091015160408051808201909152919350915080612a3e8a8561327e565b6001600160d81b031681526020018264ffffffffff168152509650505050505050610b3d565b50505050919050565b600042612a80838563ffffffff61332716565b109392505050565b6000612a92612f56565b6001600160a01b0316639ee5955a6d53797374656d53657474696e677360901b7561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b6000631bd554d160e21b831415612b2057506000610da6565b6000838152600460205260409020546001600160a01b0316801580612b4c57506001600160a01b038316155b15612b5b576000915050610da6565b826001600160a01b031663357e47fe826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612bb157600080fd5b505afa158015612bc5573d6000803e3d6000fd5b505050506040513d6020811015612bdb57600080fd5b5051949350505050565b600080631bd554d160e21b841415612c725773__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3b57600080fd5b505af4158015612c4f573d6000803e3d6000fd5b505050506040513d6020811015612c6557600080fd5b5051915060009050611f9b565b6000848152600460205260409020546001600160a01b03168015612dbc5760408051602480820187905282518083039091018152604490910182526020810180516001600160e01b0316639a6fc8f560e01b1781529151815191926000926060926001600160a01b0387169286928291908083835b60208310612d065780518252601f199092019160209182019101612ce7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612d66576040519150601f19603f3d011682016040523d82523d6000602084013e612d6b565b606091505b50915091508115612db8576000808280602001905160a0811015612d8e57600080fd5b5060208101516060909101519092509050612da98a8361327e565b97509550611f9b945050505050565b5050505b509250929050565b6000546001600160a01b03163314612e0d5760405162461bcd60e51b815260040180806020018281038252602f815260200180613552602f913960400191505060405180910390fd5b565b6000805b8254811015612ea95783838281548110612e2957fe5b90600052602060002001541415612ea157828181548110612e4657fe5b6000918252602082200155825483906000198101908110612e6357fe5b9060005260206000200154838281548110612e7a57fe5b6000918252602090912001558254612e968460001983016134df565b506001915050610da6565b600101612e13565b5060009392505050565b6000612ebd612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f61746f6d69635477617057696e646f7760801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b60006120458383670de0b6b3a7640000613381565b60006120458383670de0b6b3a76400006133be565b6000610eee6e466c657869626c6553746f7261676560881b6133e4565b6000631bd554d160e21b821415612f8c57506000610b3d565b6000828152600460205260409020546001600160a01b0316801561285957806001600160a01b031663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b158015612fe357600080fd5b505afa158015612ff7573d6000803e3d6000fd5b505050506040513d602081101561300d57600080fd5b50519150610b3d9050565b6000613022612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b60006130d6612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d6963566f6c5570646174655468726573686f6c640000000000000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b6000631bd554d160e21b84141561319957506000612045565b60006131a58585612be5565b9150506131b28382612a6d565b95945050505050565b6000826131ca57506000610da6565b828202828482816131d757fe5b04146120455760405162461bcd60e51b81526004018080602001828103825260218152602001806135816021913960400191505060405180910390fd5b600080821161326a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161327557fe5b04949350505050565b6000808212156132d5576040805162461bcd60e51b815260206004820152601b60248201527f4e656761746976652072617465206e6f7420737570706f727465640000000000604482015290519081900360640190fd5b60008381526005602052604090205460ff16156128595760008381526005602052604081205461330a9060129060ff1661222c565b600a0a905061331f838263ffffffff6131bb16565b915050610da6565b600082820183811015612045576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600a8304613398868663ffffffff6131bb16565b8161339f57fe5b0490506005600a825b06106133b257600a015b600a9004949350505050565b6000806133d8846123ad87600a870263ffffffff6131bb16565b90506005600a826133a8565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816134c15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561348657818101518382015260200161346e565b50505050905090810190601f1680156134b35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b604080518082019091526000808252602082015290565b81548183558181111561126857600083815260209020611268918101908301610ef191905b808211156135185760008155600101613504565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726f756e64496473206d757374206265207468652073616d65206c656e6774682061732063757272656e63794b65797341676772656761746f7220646563696d616c732073686f756c64206265206c6f776572206f7220657175616c20746f203138a265627a7a723158201805fecc08246f0472cc123b5caba2061bc2916517f3ecf0ff8e9175170b641b64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "AggregatorAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "AggregatorRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newDexPriceAggregator",
							"type": "address"
						}
					],
					"name": "DexPriceAggregatorUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "aggregatorAddress",
							"type": "address"
						}
					],
					"name": "addAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "aggregatorKeys",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "aggregatorWarningFlags",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "aggregators",
					"outputs": [
						{
							"internalType": "contract AggregatorV2V3Interface",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "anyRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "roundIds",
							"type": "uint256[]"
						}
					],
					"name": "anyRateIsInvalidAtRound",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicEquivalentForDexPricing",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicPriceBuffer",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "atomicTwapWindow",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicVolatilityConsiderationWindow",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicVolatilityUpdateThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "currenciesUsingAggregator",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencies",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "currencyKeyDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "dexPriceAggregator",
					"outputs": [
						{
							"internalType": "contract IDexPriceAggregator",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "effectiveAtomicValueAndRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "systemValue",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "systemSourceRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "systemDestinationRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "effectiveValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "effectiveValueAndRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "sourceRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "destinationRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "effectiveValueAndRatesAtRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "sourceRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "destinationRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getCurrentRoundId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "startingRoundId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startingTimestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timediff",
							"type": "uint256"
						}
					],
					"name": "getLastRoundIdBeforeElapsedSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "lastRateUpdateTimes",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "lastRateUpdateTimesForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateAndInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "roundId",
							"type": "uint256"
						}
					],
					"name": "rateAndTimestampAtRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateAndUpdatedTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateForCurrency",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsFlagged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsStale",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rateStalePeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "ratesAndInvalidForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "rates",
							"type": "uint256[]"
						},
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "numRounds",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundId",
							"type": "uint256"
						}
					],
					"name": "ratesAndUpdatedTimeForCurrencyLastNRounds",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "rates",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "times",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "ratesForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IDexPriceAggregator",
							"name": "_dexPriceAggregator",
							"type": "address"
						}
					],
					"name": "setDexPriceAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "synthTooVolatileForAtomicExchange",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x329fc8a502695953edb21bfb29f97c78a477df2f675e967af6d2a5ebffdddc51",
				"urls": [
					"bzz-raw://22bee04d2416243398d0c0424cbc527f224a674d16ceb6b0c9e4f2f276db363b",
					"dweb:/ipfs/QmcQQgmQxVLxfhLsPetZuiQo3ysf8zeDvkh2tjUDoas6ua"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeRatesWithDexPricing.sol": "ExchangeRatesWithDexPricing"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeRatesWithDexPricing.sol": {
						"keccak256": "0x329fc8a502695953edb21bfb29f97c78a477df2f675e967af6d2a5ebffdddc51",
						"urls": [
							"bzz-raw://22bee04d2416243398d0c0424cbc527f224a674d16ceb6b0c9e4f2f276db363b",
							"dweb:/ipfs/QmcQQgmQxVLxfhLsPetZuiQo3ysf8zeDvkh2tjUDoas6ua"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516112e23803806112e28339818101604052606081101561003357600080fd5b5080516020820151604090920151909190826001600160a01b0381166100a0576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055506111ad806101356000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636b3905c4116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e31461045d578063da7bd3e914610465578063ee1d036c14610491578063fe46a480146104bd57610173565b80639b217f90146103fd578063ae2e933b14610429578063b5ddb9c71461043157610173565b80636b3905c41461037357806370a082311461039957806371e780f3146103bf57806379ba5097146103c75780638da5cb5b146103cf57806397f46527146103d757610173565b80632f5bb661116101305780632f5bb6611461026e578063326a3cfb146102cf578063449d0eb1146102f5578063458efde31461033157806345e5441f1461033957806353a47bb71461036b57610173565b80630c7c95ad146101785780631627540c1461019c57806319db2228146101c457806319e740c0146101ea578063204b676a14610222578063227d517a14610248575b600080fd5b6101806104e3565b604080516001600160a01b039092168252519081900360200190f35b6101c2600480360360208110156101b257600080fd5b50356001600160a01b03166104f2565b005b6101c2600480360360208110156101da57600080fd5b50356001600160a01b031661054e565b6102106004803603602081101561020057600080fd5b50356001600160a01b03166105aa565b60408051918252519081900360200190f35b6102106004803603602081101561023857600080fd5b50356001600160a01b03166105ec565b6102106004803603602081101561025e57600080fd5b50356001600160a01b0316610607565b6102946004803603602081101561028457600080fd5b50356001600160a01b0316610619565b6040518082600260200280838360005b838110156102bc5781810151838201526020016102a4565b5050505090500191505060405180910390f35b610210600480360360208110156102e557600080fd5b50356001600160a01b031661066a565b61031b6004803603602081101561030b57600080fd5b50356001600160a01b031661067c565b60405181518152808261410080838360206102a4565b6101c2610702565b6102106004803603606081101561034f57600080fd5b506001600160a01b0381351690602081013590604001356108eb565b610180610927565b6102106004803603602081101561038957600080fd5b50356001600160a01b0316610936565b610210600480360360208110156103af57600080fd5b50356001600160a01b031661094f565b61021061096a565b6101c2610970565b610180610a2c565b610210600480360360208110156103ed57600080fd5b50356001600160a01b0316610a3b565b6102106004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a4d565b610180610a68565b6101c26004803603604081101561044757600080fd5b506001600160a01b038135169060200135610a77565b610210610ad0565b6102946004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610ad6565b610210600480360360408110156104a757600080fd5b506001600160a01b038135169060200135610b45565b6101c2600480360360208110156104d357600080fd5b50356001600160a01b0316610b58565b6002546001600160a01b031681565b6104fa610bb4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610556610bb4565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb62959181900360200190a150565b6000806105b6836105ec565b905060005b818110156105e3576105cd8482610a4d565b156105db5791506105e79050565b6001016105bb565b5090505b919050565b6001600160a01b031660009081526004602052604090205490565b60066020526000908152604090205481565b610621610f98565b600061062c836105aa565b9050610637836105ec565b81141561065957505060408051808201909152600080825260208201526105e7565b6106638382610ad6565b9392505050565b60056020526000908152604090205481565b610684610fb6565b61068c610fb6565b6000610697846105ec565b905060005b818110156106f9576106ac610f98565b6106b68683610ad6565b8051909150846002840261020881106106cb57fe5b60200201528060016020020151848360020260010161020881106106eb57fe5b60200201525060010161069c565b50909392505050565b600061070d336105ec565b90506000805b828110156107b25760006107273383610a4d565b90504281111561073757506107b2565b60006107433384610b45565b905080156107a85760408051808201825260008082526020808301829052338252600490529190912080548590811061077857fe5b9060005260206000209060020201906002610794929190610fd6565b506107a5848263ffffffff610bff16565b93505b5050600101610713565b5080156108e7576007546107cc908263ffffffff610c5916565b600755336000908152600560205260409020546107ef908263ffffffff610c5916565b3360009081526005602090815260408083209390935560069052205461081b908263ffffffff610bff16565b33600081815260066020908152604080832094909455600254845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561088057600080fd5b505af1158015610894573d6000803e3d6000fd5b505050506040513d60208110156108aa57600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b6004602052826000526040600020828154811061090457fe5b9060005260206000209060020201816002811061091d57fe5b0154925083915050565b6001546001600160a01b031681565b600061094182610619565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b60075481565b6001546001600160a01b031633146109b95760405162461bcd60e51b81526004018080602001828103825260358152602001806110656035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000610a4682610619565b6001610944565b6000610a598383610ad6565b60005b60200201519392505050565b6003546001600160a01b031681565b6003546001600160a01b0316331480610ac15760405162461bcd60e51b81526004018080602001828103825260328152602001806111476032913960400191505060405180910390fd5b610acb8383610cb6565b505050565b61010481565b610ade610f98565b6001600160a01b0383166000908152600460205260409020805483908110610b0257fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610b25575050505050905092915050565b6000610b518383610ad6565b6001610a5c565b610b60610bb4565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fcb046e61ab451d5fec11d3dfc4c550475bd0abd8df74a421c34be433f197c4df9181900360200190a150565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040180806020018281038252602f815260200180611118602f913960400191505060405180910390fd5b565b600082820183811015610663576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115610cb0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b80610d08576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600754610d1b908263ffffffff610bff16565b600755600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d6020811015610d9357600080fd5b50516007541115610dd55760405162461bcd60e51b81526004018080602001828103825260478152602001806110d16047913960600191505060405180910390fd5b6001600160a01b038216600090815260046020526040902054610104811115610e45576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b6301dfe200420181610e71576001600160a01b0384166000908152600560205260409020839055610efe565b80610e7f8560018503610a4d565b10610ebb5760405162461bcd60e51b815260040180806020018281038252603781526020018061109a6037913960400191505060405180910390fd5b6001600160a01b038416600090815260056020526040902054610ee4908463ffffffff610bff16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925284825281830187905280546001810180835591855292909320610f4d9260029081029091019190611019565b5050604080514281526020810185905281516001600160a01b038716927fedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c928290030190a250505050565b60405180604001604052806002906020820280388339509192915050565b604051806141000160405280610208906020820280388339509192915050565b8260028101928215611009579160200282015b82811115611009578251829060ff16905591602001919060010190610fe9565b50611015929150611047565b5090565b8260028101928215611009579160200282015b8281111561100957825182559160200191906001019061102c565b61106191905b80821115611015576000815560010161104d565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c792074686520466565506f6f6c20636f6e7472616374732063616e20706572666f726d207468697320616374696f6ea265627a7a723158208ae489ff43cc726ad8e508a0ad2a54f1cd1e71492ac5b4ab8a687b75b64940da64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IOikos",
							"name": "_oikos",
							"type": "address"
						},
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newFeePool",
							"type": "address"
						}
					],
					"name": "FeePoolUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOikos",
							"type": "address"
						}
					],
					"name": "OikosUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "VestingEntryCreated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_VESTING_ENTRIES",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAccountSchedule",
					"outputs": [
						{
							"internalType": "uint256[520]",
							"name": "",
							"type": "uint256[520]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePool",
					"outputs": [
						{
							"internalType": "contract IFeePool",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingScheduleEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oikos",
					"outputs": [
						{
							"internalType": "contract IOikos",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"name": "setFeePool",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IOikos",
							"name": "_oikos",
							"type": "address"
						}
					],
					"name": "setOikos",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalEscrowedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalEscrowedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x421195a08ebc679d891e7c546cae75e9554aed8a67bb99c1128c87d89d228b56",
				"urls": [
					"bzz-raw://efbc657ea04f4c2b6f09dfaab9a13688a370f33797ace71da0129d168c9cacb9",
					"dweb:/ipfs/QmZeT38jT9PESsq9HMro2k2dPnfAUFWD8hX8BXiwkmN8k9"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardEscrow.sol": "RewardEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardEscrow.sol": {
						"keccak256": "0x421195a08ebc679d891e7c546cae75e9554aed8a67bb99c1128c87d89d228b56",
						"urls": [
							"bzz-raw://efbc657ea04f4c2b6f09dfaab9a13688a370f33797ace71da0129d168c9cacb9",
							"dweb:/ipfs/QmZeT38jT9PESsq9HMro2k2dPnfAUFWD8hX8BXiwkmN8k9"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrowV2": {
			"bytecode": "608060408190526303bfc400600c556224ea00600d5562093a80600e55630241ebdb60e61b815273__$58c62a0096148744468f14ce5088c1760d$__9063907af6c09060849060209060048186803b1580156200005b57600080fd5b505af415801562000070573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620000969190810190620001f1565b6103e802601155348015620000aa57600080fd5b5060405162003e9638038062003e96833981016040819052620000cd91620001b2565b8181806249d400836001600160a01b038116620001075760405162461bcd60e51b8152600401620000fe9062000297565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c916200015491849062000271565b60405180910390a1504201600255600380546001600160a01b0319166001600160a01b03929092169190911790555050600160075550620003009050565b80516200019f81620002db565b92915050565b80516200019f81620002f5565b60008060408385031215620001c657600080fd5b6000620001d4858562000192565b9250506020620001e78582860162000192565b9150509250929050565b6000602082840312156200020457600080fd5b6000620002128484620001a5565b949350505050565b6200022581620002c7565b82525050565b6200022581620002b2565b600062000245601983620002a9565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200028182856200021a565b6200029060208301846200022b565b9392505050565b602080825281016200019f8162000236565b90815260200190565b60006001600160a01b0382166200019f565b90565b60006200019f8260006200019f82620002b2565b620002e681620002b2565b8114620002f257600080fd5b50565b620002e681620002c4565b613b8680620003106000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c806370a082311161015c5780638da5cb5b116100ce578063b95375bd11610087578063b95375bd1461052e578063cd7b43dd14610541578063d621a16914610554578063e6b2cf6c14610567578063eac624891461056f578063f0b882ba1461058f5761027f565b80638da5cb5b146104dd578063910a326d146104e55780639ad6a7e5146104ed578063a0416ed3146104f5578063ae58254914610508578063b0fd59631461051b5761027f565b80637839b92f116101205780637839b92f146104665780637993e6991461047957806379ba50971461048c5780637cc1d7561461049457806380d46f58146104a7578063899ffef4146104c85761027f565b806370a082311461041057806371e780f31461042357806373307e401461042b578063741853601461043e578063773ab39f146104465761027f565b8063326a3cfb116101f557806346ba2d90116101b957806346ba2d90146103b257806353a47bb7146103ba5780635b85c200146103cf5780635eb8cf25146103e25780636154c343146103ea5780636dc05bd3146103fd5761027f565b8063326a3cfb1461035057806334c7fec91461036357806337088ffc146103765780634525aabc1461037e57806345626bd6146103915761027f565b8063178c565511610247578063178c5655146102f45780631bb47b44146102fc578063204b676a1461030f578063227d517a146103225780632af64bd31461033557806330104c5f1461033d5761027f565b8063018c6c551461028457806304f3bcec1461029957806305662986146102b75780630fcdefb7146102cc5780631627540c146102e1575b600080fd5b610297610292366004612c0f565b6105a2565b005b6102a16105ea565b6040516102ae91906137d8565b60405180910390f35b6102bf6105f9565b6040516102ae919061378e565b6102d461061a565b6040516102ae919061379c565b6102976102ef366004612913565b610620565b610297610673565b61029761030a366004612a45565b6106d0565b6102d461031d366004612913565b610721565b6102d4610330366004612913565b61073c565b6102bf61074e565b6102d461034b3660046129a4565b610865565b6102d461035e366004612913565b6108c4565b610297610371366004612bb0565b6108d6565b6102d461098c565b61029761038c366004612c0f565b610992565b6103a461039f3660046129a4565b6109cf565b6040516102ae929190613a2d565b6102d46109ff565b6103c2610a05565b6040516102ae9190613641565b6102976103dd366004612c0f565b610a14565b6102d4610a51565b6103a46103f83660046129a4565b610a57565b6102d461040b36600461294f565b610a91565b6102d461041e366004612913565b610b3e565b6102d4610b59565b6103c2610439366004612913565b610b5f565b610297610b7a565b610459610454366004612a45565b610cd0565b6040516102ae9190613735565b610297610474366004612913565b610e70565b610297610487366004612c0f565b61116e565b6102976111cd565b6102976104a2366004612913565b611269565b6104ba6104b536600461294f565b6113b9565b6040516102ae929190613987565b6104d0611642565b6040516102ae9190613724565b6103c2611708565b6102d4611717565b6102d461171d565b610297610503366004612a45565b611723565b6102d46105163660046129a4565b6117ee565b6102d4610529366004612913565b61181c565b61029761053c366004612af4565b61182e565b61029761054f3660046129de565b611a19565b610297610562366004612a92565b611a27565b6102d4611be8565b61058261057d366004612a45565b611bee565b6040516102ae919061377d565b61029761059d36600461294f565b611cda565b6105aa612016565b600d8190556040517fe829efae5d8a2f7163f46c23a8190bf14625c1e446561ca0f5cf279ab7c8015e906105df90839061379c565b60405180910390a150565b6003546001600160a01b031681565b600042610613600e54600f5461204290919063ffffffff16565b1190505b90565b600f5481565b610628612016565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906105df908390613641565b61067b612016565b42600f819055600e547fceade2b9bc02350b17075c94bb699508b89ed2752f501ea42024b1bb5fd3444591906106b890829063ffffffff61204216565b6040516106c69291906139a7565b60405180910390a1565b6106d8612067565b6001600160a01b0316336001600160a01b0316146107115760405162461bcd60e51b815260040161070890613947565b60405180910390fd5b61071c838383612081565b505050565b6001600160a01b031660009081526006602052604090205490565b60096020526000908152604090205481565b6000606061075a611642565b905060005b815181101561085c57600082828151811061077657fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b03908116939116916321f8a721916107c79186910161379c565b60206040518083038186803b1580156107df57600080fd5b505afa1580156107f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108179190810190612931565b6001600160a01b031614158061084257506000818152600460205260409020546001600160a01b0316155b156108535760009350505050610617565b5060010161075f565b50600191505090565b600061086f612784565b506001600160a01b0383166000908152600560209081526040808320858452825291829020825180840190935280546001600160401b0316835260010154908201526108ba81612299565b9150505b92915050565b60086020526000908152604090205481565b6000805b8281101561097b57336000908152600560205260408120818686858181106108fe57fe5b90506020020135815260200190815260200160002090508060010154600014610972576040805180820190915281546001600160401b031681526001820154602082015260009061094e90612299565b9050801561095e57600060018301555b61096e848263ffffffff61204216565b9350505b506001016108da565b50801561071c5761071c33826122ca565b600d5481565b61099a612016565b600c8190556040517f6b92bd20c4b2e6861047ba7209ddc78d538419aae187d0df46716b827b8997a4906105df90839061379c565b6005602090815260009283526040808420909152908252902080546001909101546001600160401b039091169082565b60025481565b6001546001600160a01b031681565b610a1c612016565b60118190556040517f7829b48ec37298e3e9b1cb2971e47abc072159681eaf558f8649a25d66ef8672906105df90839061379c565b600c5481565b6001600160a01b039190911660009081526005602090815260408083209383529290522080546001909101546001600160401b0390911691565b6000805b82811015610b3657610aa5612784565b6001600160a01b038616600090815260056020526040812090868685818110610aca57fe5b60209081029290920135835250818101929092526040908101600020815180830190925280546001600160401b0316825260010154918101829052915015610b2d576000610b1782612299565b9050610b29848263ffffffff61204216565b9350505b50600101610a95565b509392505050565b6001600160a01b031660009081526008602052604090205490565b600b5481565b600a602052600090815260409020546001600160a01b031681565b6060610b84611642565b905060005b8151811015610ccc576000828281518110610ba057fe5b602002602001015190506000600360009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610be29190613636565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610c0e9291906137b8565b60206040518083038186803b158015610c2657600080fd5b505afa158015610c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c5e9190810190612931565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610cba90849084906137aa565b60405180910390a15050600101610b89565b5050565b6060828201838111610d16576040805160008082526020820190925290610d0d565b610cfa61279b565b815260200190600190039081610cf25790505b50915050610e69565b6001600160a01b038516600090815260066020526040902054811115610d5157506001600160a01b0384166000908152600660205260409020545b604080518583038082526020808202830101909252606090828015610d9057816020015b610d7d61279b565b815260200190600190039081610d755790505b50905060005b82811015610e63576001600160a01b03881660009081526006602052604081208054838a01908110610dc457fe5b90600052602060002001549050610dd9612784565b506001600160a01b03891660009081526005602090815260408083208484528252918290208251808401845281546001600160401b03908116825260019092015481840190815284516060810186528251909316835251928201929092529182018390528451909190859085908110610e4e57fe5b60209081029190910101525050600101610d96565b50925050505b9392505050565b610e786123e5565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506001600160a01b038116600090815260106020526040902054610efd5760405162461bcd60e51b815260040161070890613887565b6001600160a01b038116600090815260086020526040902054610f325760405162461bcd60e51b815260040161070890613967565b6011546001600160a01b03821660009081526010602052604090205411610fbd57610f9f816040518060400160405280426001600160401b0316815260200160106000866001600160a01b03166001600160a01b03168152602001908152602001600020548152506123ff565b6001600160a01b03811660009081526010602052604081205561116b565b6000610fc761245d565b6001600160a01b031663204b676a836040518263ffffffff1660e01b8152600401610ff29190613641565b60206040518083038186803b15801561100a57600080fd5b505afa15801561101e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110429190810190612c2d565b905060015b81811161071c576110566127c5565b61105e61245d565b6001600160a01b031663da7bd3e9858486036040518363ffffffff1660e01b815260040161108d929190613709565b604080518083038186803b1580156110a457600080fd5b505afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110dc9190810190612b92565b8051602082015191925090428210156110f75750505061071c565b61111e866040518060400160405280856001600160401b03168152602001848152506123ff565b6001600160a01b038616600090815260106020526040902054611147908263ffffffff61247716565b6001600160a01b038716600090815260106020526040902055505050600101611047565b50565b611176612016565b600d548111156111985760405162461bcd60e51b815260040161070890613937565b600e8190556040517f723c43349da7aeae47190396f2e2fbe6bedb46b9e9705bc5b908d65bc7a1e0e6906105df90839061379c565b6001546001600160a01b031633146111f75760405162461bcd60e51b8152600401610708906137f7565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261123a926001600160a01b03918216929116906136e0565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b0381163314156112925760405162461bcd60e51b8152600401610708906138d7565b61129a6105f9565b6112b65760405162461bcd60e51b8152600401610708906138b7565b6112be61249f565b6001600160a01b031663d37c4d8b336040518263ffffffff1660e01b81526004016112e9919061367f565b60206040518083038186803b15801561130157600080fd5b505afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113399190810190612c2d565b156113565760405162461bcd60e51b815260040161070890613977565b336000818152600a60205260409081902080546001600160a01b0319166001600160a01b038516179055517fcf51776bb16e5780edcca2e64a9ba8a9c7d5d00a6699cbd7606e465361ba4852906113ae908490613641565b60405180910390a250565b600060606113c56124b3565b6001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b815260040161070890613807565b826114125760405162461bcd60e51b8152600401610708906138e7565b60408051848152602080860282010190915283801561144b57816020015b611438612784565b8152602001906001900390816114305790505b50905060005b83811015611552576001600160a01b03861660009081526005602052604081208187878581811061147e57fe5b9050602002013581526020019081526020016000209050600081600101541115611549576040805180820190915281546001600160401b031681526001820154602082015283518490849081106114d157fe5b60200260200101819052506114f381600101548561204290919063ffffffff16565b6001600160a01b038816600090815260056020526040812091955087878581811061151a57fe5b602090810292909201358352508101919091526040016000908120805467ffffffffffffffff19168155600101555b50600101611451565b5081156115f35761156385836124d6565b61156b612535565b6001600160a01b031663a9059cbb6115816124b3565b846040518363ffffffff1660e01b815260040161159f929190613709565b602060405180830381600087803b1580156115b957600080fd5b505af11580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115f19190810190612bf1565b505b846001600160a01b03167f929c8a2a06883affd05f43baf52398dbbfb6930730ce1bdb2cfe413cd44b107c858585426040516116329493929190613746565b60405180910390a2935093915050565b60608061164d612548565b6040805160038082526080820190925291925060609190602082018380388339019050509050744f696b6f73427269646765546f4f7074696d69736d60581b8160008151811061169957fe5b6020026020010181815250506b526577617264457363726f7760a01b816001815181106116c257fe5b6020026020010181815250506b53797374656d53746174757360a01b816002815181106116eb57fe5b60200260200101818152505061170182826125d6565b9250505090565b6000546001600160a01b031681565b600e5481565b60115481565b6001600160a01b0383166117495760405162461bcd60e51b815260040161070890613847565b611751612535565b6001600160a01b03166323b872dd3330856040518463ffffffff1660e01b81526004016117809392919061364f565b602060405180830381600087803b15801561179a57600080fd5b505af11580156117ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d29190810190612bf1565b6107115760405162461bcd60e51b8152600401610708906138c7565b6006602052816000526040600020818154811061180757fe5b90600052602060002001600091509150505481565b60106020526000908152604090205481565b600254421061184f5760405162461bcd60e51b815260040161070890613927565b611857612016565b8483146118765760405162461bcd60e51b815260040161070890613957565b8481146118955760405162461bcd60e51b815260040161070890613877565b60005b85811015611a105760008787838181106118ae57fe5b90506020020160206118c39190810190612913565b905060008686848181106118d357fe5b90506020020135905060008585858181106118ea57fe5b6001600160a01b038616600090815260106020908152604090912054910292909201359250501561192d5760405162461bcd60e51b815260040161070890613817565b600b54611940908363ffffffff61204216565b600b556001600160a01b03831660009081526008602052604090205461196c908363ffffffff61204216565b6001600160a01b0384166000908152600860209081526040808320939093556009905220546119a1908263ffffffff61204216565b6001600160a01b0384166000818152600960209081526040808320949094556010905282902084905590517fa2a5ac2d2500e30aea994fc4bc99ef5535241c79d428e43c3fe204862f2874d6906119fd908590859042906139b5565b60405180910390a2505050600101611898565b50505050505050565b611a21612692565b50505050565b6002544210611a485760405162461bcd60e51b815260040161070890613927565b611a50612016565b828114611a6f5760405162461bcd60e51b815260040161070890613917565b60005b83811015611be1576000858583818110611a8857fe5b9050602002016020611a9d9190810190612913565b90506000848484818110611aad57fe5b905060200201359050600060086000846001600160a01b03166001600160a01b031681526020019081526020016000205411611afb5760405162461bcd60e51b815260040161070890613967565b6001600160a01b038216600090815260106020526040902054611b305760405162461bcd60e51b815260040161070890613887565b611b57826040518060400160405280426001600160401b03168152602001848152506123ff565b6001600160a01b038216600090815260106020526040902054611b80908263ffffffff61247716565b6001600160a01b038316600081815260106020526040908190209290925590517f73cefcb01ff86c575a4fbf40317a93c37b7312e0b294e588ee24b312e4f97cc490611bcf90429085906139a7565b60405180910390a25050600101611a72565b5050505050565b60075481565b6001600160a01b03831660009081526006602052604090205460609083830190811115611c3057506001600160a01b0384166000908152600660205260409020545b838111611c4d576040805160008082526020820190925290610d0d565b604080518583038082526020808202830101909252606090828015611c7c578160200160208202803883390190505b50905060005b82811015610e63576001600160a01b03881660009081526006602052604090208054828901908110611cb057fe5b9060005260206000200154828281518110611cc757fe5b6020908102919091010152600101611c82565b611ce26105f9565b611cfe5760405162461bcd60e51b8152600401610708906138b7565b611d0661249f565b6001600160a01b031663d37c4d8b846040518263ffffffff1660e01b8152600401611d3191906136fb565b60206040518083038186803b158015611d4957600080fd5b505afa158015611d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d819190810190612c2d565b15611d9e5760405162461bcd60e51b815260040161070890613977565b6001600160a01b038381166000908152600a6020526040902054163314611dd75760405162461bcd60e51b815260040161070890613907565b6000805b82811015611f5657611deb612784565b6001600160a01b038616600090815260056020526040812090868685818110611e1057fe5b60209081029290920135835250818101929092526040908101600020815180830190925280546001600160401b0316825260010154918101829052915015611f4d573360009081526005602052604081208291878786818110611e6f57fe5b60209081029290920135835250818101929092526040016000208251815467ffffffffffffffff19166001600160401b0390911617815591810151600190920191909155810151611ec1908490612042565b336000908152600660205260409020909350858584818110611edf57fe5b8354600181018555600094855260208086209281029490940135910155506001600160a01b0388168252600590526040812090868685818110611f1e57fe5b602090810292909201358352508101919091526040016000908120805467ffffffffffffffff19168155600101555b50600101611ddb565b506001600160a01b038416600090815260086020526040902054611f80908263ffffffff61247716565b6001600160a01b038516600090815260086020526040808220929092553381522054611fb2908263ffffffff61204216565b33600081815260086020526040908190209290925590516001600160a01b038616917f48d567deaa7db90f8a443344e519ca8906521ffe118e1df43e89a3c257963f7c9161200891908590889088904290613699565b60405180910390a250505050565b6000546001600160a01b031633146120405760405162461bcd60e51b8152600401610708906138f7565b565b600082820183811015610e695760405162461bcd60e51b815260040161070890613827565b600061207c66119959541bdbdb60ca1b6126aa565b905090565b8161209e5760405162461bcd60e51b815260040161070890613897565b6000811180156120b05750600c548111155b6120cc5760405162461bcd60e51b815260040161070890613837565b600b546120df908363ffffffff61204216565b600b556120ea612535565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016121159190613641565b60206040518083038186803b15801561212d57600080fd5b505afa158015612141573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121659190810190612c2d565b600b5411156121865760405162461bcd60e51b8152600401610708906138a7565b6001600160a01b038316600090815260086020526040902054428201906121b3908463ffffffff61204216565b6001600160a01b03851660008181526008602090815260408083209490945560078054855180870187526001600160401b0388811682528185018b81528787526005865288872084885286528887209251835467ffffffffffffffff1916921691909117825551600191820155948452600683529483208054808601825590845291909220018390555461224691612042565b6007556040516001600160a01b038616907f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc09061228a9042908890889087906139d0565b60405180910390a25050505050565b60008082602001516000146108be5782516001600160401b03164210156122c1576000610e69565b50506020015190565b6122d482826124d6565b6001600160a01b0382166000908152600960205260409020546122fd908263ffffffff61204216565b6001600160a01b03831660009081526009602052604090205561231e612535565b6001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040161234b929190613709565b602060405180830381600087803b15801561236557600080fd5b505af1158015612379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061239d9190810190612bf1565b50816001600160a01b03167ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc642836040516123d99291906139a7565b60405180910390a25050565b600061207c6b53797374656d53746174757360a01b6126aa565b600061240b8383612707565b602083015183516040519293506001600160a01b038616927fa0ba170b0a148bd927eafc64518e6c9d92eba1ea1fdf703dd8cfee6d329012bb92612450928692613a05565b60405180910390a2505050565b600061207c6b526577617264457363726f7760a01b6126aa565b6000828211156124995760405162461bcd60e51b815260040161070890613857565b50900390565b600061207c6524b9b9bab2b960d11b6126aa565b600061207c744f696b6f73427269646765546f4f7074696d69736d60581b6126aa565b600b546124e9908263ffffffff61247716565b600b556001600160a01b038216600090815260086020526040902054612515908263ffffffff61247716565b6001600160a01b0390921660009081526008602052604090209190915550565b600061207c644f696b6f7360d81b6126aa565b60408051600380825260808201909252606091602082018380388339019050509050644f696b6f7360d81b8160008151811061258057fe5b60200260200101818152505066119959541bdbdb60ca1b816001815181106125a457fe5b6020026020010181815250506524b9b9bab2b960d11b816002815181106125c757fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015612606578160200160208202803883390190505b50905060005b83518110156126485783818151811061262157fe5b602002602001015182828151811061263557fe5b602090810291909101015260010161260c565b5060005b825181101561268b5782818151811061266157fe5b602002602001015182828651018151811061267857fe5b602090810291909101015260010161264c565b5092915050565b60405162461bcd60e51b815260040161070890613867565b60008181526004602090815260408083205490516001600160a01b0390911691821515916126da91869101613616565b6040516020818303038152906040529061268b5760405162461bcd60e51b815260040161070891906137e6565b600780546001600160a01b038416600081815260056020908152604080832085845282528083208751815467ffffffffffffffff19166001600160401b03909116178155878301516001918201559383526006825282208054808501825590835290822001839055925461277a91612042565b6007559392505050565b604080518082019091526000808252602082015290565b604051806060016040528060006001600160401b0316815260200160008152602001600081525090565b60405180604001604052806002906020820280388339509192915050565b80356108be81613b1d565b80516108be81613b1d565b60008083601f84011261280b57600080fd5b5081356001600160401b0381111561282257600080fd5b60208301915083602082028301111561283a57600080fd5b9250929050565b60008083601f84011261285357600080fd5b5081356001600160401b0381111561286a57600080fd5b60208301915083604082028301111561283a57600080fd5b600082601f83011261289357600080fd5b60026128a66128a182613a61565b613a3b565b915081838560208402820111156128bc57600080fd5b60005b838110156128e857816128d28882612908565b84525060209283019291909101906001016128bf565b5050505092915050565b80516108be81613b31565b80356108be81613b3a565b80516108be81613b3a565b60006020828403121561292557600080fd5b60006108ba84846127e3565b60006020828403121561294357600080fd5b60006108ba84846127ee565b60008060006040848603121561296457600080fd5b600061297086866127e3565b93505060208401356001600160401b0381111561298c57600080fd5b612998868287016127f9565b92509250509250925092565b600080604083850312156129b757600080fd5b60006129c385856127e3565b92505060206129d4858286016128fd565b9150509250929050565b600080600080606085870312156129f457600080fd5b6000612a0087876127e3565b9450506020612a11878288016128fd565b93505060408501356001600160401b03811115612a2d57600080fd5b612a3987828801612841565b95989497509550505050565b600080600060608486031215612a5a57600080fd5b6000612a6686866127e3565b9350506020612a77868287016128fd565b9250506040612a88868287016128fd565b9150509250925092565b60008060008060408587031215612aa857600080fd5b84356001600160401b03811115612abe57600080fd5b612aca878288016127f9565b945094505060208501356001600160401b03811115612ae857600080fd5b612a39878288016127f9565b60008060008060008060608789031215612b0d57600080fd5b86356001600160401b03811115612b2357600080fd5b612b2f89828a016127f9565b965096505060208701356001600160401b03811115612b4d57600080fd5b612b5989828a016127f9565b945094505060408701356001600160401b03811115612b7757600080fd5b612b8389828a016127f9565b92509250509295509295509295565b600060408284031215612ba457600080fd5b60006108ba8484612882565b60008060208385031215612bc357600080fd5b82356001600160401b03811115612bd957600080fd5b612be5858286016127f9565b92509250509250929050565b600060208284031215612c0357600080fd5b60006108ba84846128f2565b600060208284031215612c2157600080fd5b60006108ba84846128fd565b600060208284031215612c3f57600080fd5b60006108ba8484612908565b6000612c578383612e24565b505060200190565b6000612c6b83836135a9565b505060600190565b6000612c7f83836135e0565b505060400190565b612c9081613abe565b82525050565b612c9081613a96565b6000612caa82613a84565b612cb48185613a88565b9350612cbf83613a7e565b8060005b83811015612ced578151612cd78882612c4b565b9750612ce283613a7e565b925050600101612cc3565b509495945050505050565b6000612d0382613a84565b612d0d8185613a88565b9350612d1883613a7e565b8060005b83811015612ced578151612d308882612c5f565b9750612d3b83613a7e565b925050600101612d1c565b6000612d5182613a84565b612d5b8185613a88565b9350612d6683613a7e565b8060005b83811015612ced578151612d7e8882612c73565b9750612d8983613a7e565b925050600101612d6a565b6000612da08385613a88565b93506001600160fb1b03831115612db657600080fd5b602083029250612dc7838584613adb565b50500190565b6000612dd882613a84565b612de28185613a88565b9350612ded83613a7e565b8060005b83811015612ced578151612e058882612c4b565b9750612e1083613a7e565b925050600101612df1565b612c9081613aa1565b612c9081610617565b612c90612e3982610617565b610617565b612c9081613ac5565b6000612e5282613a84565b612e5c8185613a88565b9350612e6c818560208601613ae7565b612e7581613b13565b9093019392505050565b6000612e8c603583613a88565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612ee3603583613a88565b7f43616e206f6e6c7920626520696e766f6b6564206279204f696b6f734272696481527419d9551bd3dc1d1a5b5a5cdb4818dbdb9d1c9858dd605a1b602082015260400192915050565b6000612f3a602483613a88565b7f4163636f756e74206d6967726174696f6e2069732070656e64696e6720616c728152636561647960e01b602082015260400192915050565b6000612f80601b83613a88565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612fb9603383613a88565b7f43616e6e6f7420657363726f7720776974682030206475726174696f6e204f528152721030b137bb329036b0bc2fb23ab930ba34b7b760691b602082015260400192915050565b600061300e602483613a88565b7f43616e6e6f742063726561746520657363726f772077697468206164647265738152637328302960e01b602082015260400192915050565b6000613054601e83613a88565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061308d601b83613a88565b7f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000815260200192915050565b60006130c6603183613a88565b7f4e756d626572206f66206163636f756e747320616e642076657374656442616c8152700c2dcc6cae640c8dedc4ee840dac2e8c6d607b1b602082015260400192915050565b6000613119601b83613a88565b7f4e6f20657363726f77206d6967726174696f6e2070656e64696e670000000000815260200192915050565b6000613152601183613a91565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061317f601783613a88565b7f5175616e746974792063616e6e6f74206265207a65726f000000000000000000815260200192915050565b60006131b8604783613a88565b7f4d75737420626520656e6f7567682062616c616e636520696e2074686520636f81527f6e747261637420746f2070726f7669646520666f72207468652076657374696e6020820152666720656e74727960c81b604082015260600192915050565b6000613227601983613a88565b7f4163636f756e74206d657267696e672068617320656e64656400000000000000815260200192915050565b6000613260601583613a88565b741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b815260200192915050565b6000613291602483613a88565b7f43616e6e6f74206e6f6d696e617465206f776e206163636f756e7420746f206d8152636572676560e01b602082015260400192915050565b60006132d7601283613a88565b71115b9d1c9e4812511cc81c995c5d5a5c995960721b815260200192915050565b6000613305602f83613a88565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613356602183613a88565b7f41646472657373206973206e6f74206e6f6d696e6174656420746f206d6572678152606560f81b602082015260400192915050565b6000613399602983613a88565b7f4163636f756e7420616e6420657363726f77416d6f756e7473204c656e677468815268040dad2e6dac2e8c6d60bb1b602082015260400192915050565b60006133e4602983613a88565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e206475728152680696e672073657475760bc1b602082015260400192915050565b600061342f601c83613a88565b7f65786365656473206d6178206d657267696e67206475726174696f6e00000000815260200192915050565b6000613468601983613a91565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006134a1602883613a88565b7f4f6e6c792074686520466565506f6f6c2063616e20706572666f726d20746869815267399030b1ba34b7b760c11b602082015260400192915050565b60006134eb602b83613a88565b7f4e756d626572206f66206163636f756e747320616e642062616c616e6365732081526a0c8dedc4ee840dac2e8c6d60ab1b602082015260400192915050565b6000613538601b83613a88565b7f4164647265737320657363726f772062616c616e636520697320300000000000815260200192915050565b6000613571601f83613a88565b7f43616e6e6f74206d65726765206163636f756e74732077697468206465627400815260200192915050565b631bd554d160e21b9052565b805160608301906135ba848261360d565b5060208201516135cd6020850182612e24565b506040820151611a216040850182612e24565b805160408301906135f1848261360d565b506020820151611a216020850182612e24565b612c9081613ad0565b612c9081613ab2565b600061362182613145565b915061362d8284612e2d565b50602001919050565b60006136218261345b565b602081016108be8284612c96565b6060810161365d8286612c87565b61366a6020830185612c96565b6136776040830184612e24565b949350505050565b6040810161368d8284612c87565b6108be6020830161359d565b608081016136a78288612c87565b6136b46020830187612e24565b81810360408301526136c7818587612d94565b90506136d66060830184612e24565b9695505050505050565b604081016136ee8285612c96565b610e696020830184612c96565b6040810161368d8284612c96565b604081016137178285612c96565b610e696020830184612e24565b60208082528101610e698184612c9f565b60208082528101610e698184612cf8565b60608082528101613758818688612d94565b90506137676020830185612e24565b6137746040830184612e24565b95945050505050565b60208082528101610e698184612dcd565b602081016108be8284612e1b565b602081016108be8284612e24565b604081016136ee8285612e24565b604081016137c68285612e24565b81810360208301526136778184612e47565b602081016108be8284612e3e565b60208082528101610e698184612e47565b602080825281016108be81612e7f565b602080825281016108be81612ed6565b602080825281016108be81612f2d565b602080825281016108be81612f73565b602080825281016108be81612fac565b602080825281016108be81613001565b602080825281016108be81613047565b602080825281016108be81613080565b602080825281016108be816130b9565b602080825281016108be8161310c565b602080825281016108be81613172565b602080825281016108be816131ab565b602080825281016108be8161321a565b602080825281016108be81613253565b602080825281016108be81613284565b602080825281016108be816132ca565b602080825281016108be816132f8565b602080825281016108be81613349565b602080825281016108be8161338c565b602080825281016108be816133d7565b602080825281016108be81613422565b602080825281016108be81613494565b602080825281016108be816134de565b602080825281016108be8161352b565b602080825281016108be81613564565b604081016139958285612e24565b81810360208301526136778184612d46565b604081016137178285612e24565b606081016139c38286612e24565b61366a6020830185612e24565b608081016139de8287612e24565b6139eb6020830186612e24565b6139f86040830185612e24565b6137746060830184612e24565b60608101613a138286612e24565b613a206020830185612e24565b6136776040830184613604565b60408101613717828561360d565b6040518181016001600160401b0381118282101715613a5957600080fd5b604052919050565b60006001600160401b03821115613a7757600080fd5b5060200290565b60200190565b5190565b90815260200190565b919050565b60006108be82613aa6565b151590565b6001600160a01b031690565b6001600160401b031690565b60006108be825b60006108be82613a96565b60006108be82613ab2565b82818337506000910152565b60005b83811015613b02578181015183820152602001613aea565b83811115611a215750506000910152565b601f01601f191690565b613b2681613a96565b811461116b57600080fd5b613b2681613aa1565b613b268161061756fea365627a7a723158204c0c57076e1156d6381cd2e0082da8bc2678bfbe5a37e0648ff111e6d9615eee6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "accountToMerge",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowAmountMerged",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "AccountMerged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "AccountMergingDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "endTime",
							"type": "uint256"
						}
					],
					"name": "AccountMergingStarted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAmountMigrated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "BurnedForMigrationToL2",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "endTime",
							"type": "uint256"
						}
					],
					"name": "ImportedVestingEntry",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"name": "ImportedVestingSchedule",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "MaxAccountMergingDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "MaxEscrowDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newAmount",
							"type": "uint256"
						}
					],
					"name": "MigrateEntriesThresholdAmountUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "vestedAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "MigratedAccountEscrow",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "NominateAccountToMerge",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "VestingEntryCreated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingIsOpen",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingStartTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountVestingEntryIDs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "burnForMigration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "escrowedAccountBalance",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "deposit",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "createEscrowEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "getAccountVestingEntryIDs",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "getVestingEntry",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "endTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "getVestingEntryClaimable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "total",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "getVestingSchedules",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "entryID",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntryWithID[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"name": "importVestingEntries",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "escrowAmounts",
							"type": "uint256[]"
						}
					],
					"name": "importVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxAccountMergingDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "max_duration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "accountToMerge",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "mergeAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "escrowBalances",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "vestedBalances",
							"type": "uint256[]"
						}
					],
					"name": "migrateAccountEscrowBalances",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "migrateEntriesThresholdAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "addressToMigrate",
							"type": "address"
						}
					],
					"name": "migrateVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nextEntryId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "nominateAccountToMerge",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "nominatedReceiver",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setAccountMergingDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setMaxAccountMergingWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setMaxEscrowDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setMigrateEntriesThresholdAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "startMergingWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalBalancePendingMigration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalEscrowedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalEscrowedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "endTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x2cf7df0aced8a758ecd52443bb92a278cc3cbac67d7568d849dce070c35c7e03",
				"urls": [
					"bzz-raw://7603dc552faf202e985e454ea659b4b93b337f1c4f1c7d82a381b2a6d1172be1",
					"dweb:/ipfs/Qmcb6EmzSMeLrgDUVrs6DEDtoFNSN4SoorugVWHM4ZF8Ut"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardEscrowV2.sol": "RewardEscrowV2"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardEscrowV2.sol": {
						"keccak256": "0x2cf7df0aced8a758ecd52443bb92a278cc3cbac67d7568d849dce070c35c7e03",
						"urls": [
							"bzz-raw://7603dc552faf202e985e454ea659b4b93b337f1c4f1c7d82a381b2a6d1172be1",
							"dweb:/ipfs/Qmcb6EmzSMeLrgDUVrs6DEDtoFNSN4SoorugVWHM4ZF8Ut"
						]
					}
				},
				"version": 1
			}
		},
		"OikosEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516113bf3803806113bf8339818101604052604081101561003357600080fd5b5080516020909101516249d400826001600160a01b03811661009c576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1504201600255600380546001600160a01b0319166001600160a01b0392909216919091179055506112958061012a6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80636b3905c4116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e3146104fe578063da7bd3e914610506578063ee1d036c14610532578063fe46a4801461055e5761018e565b80639b217f90146103f8578063a15d59ce14610424578063bb2a7d0c1461042c5761018e565b80636b3905c41461036e57806370a082311461039457806379ba5097146103ba5780638ad58777146103c25780638da5cb5b146103ca57806397f46527146103d25761018e565b8063227d517a1161014b57806345e5441f1161012557806345e5441f1461032457806346ba2d901461035657806353a47bb71461035e57806363667eb7146103665761018e565b8063227d517a146102955780632f5bb661146102bb578063458efde31461031c5761018e565b80630c7c95ad14610193578063135c0701146101b75780631627540c146101df57806319e740c0146102055780631bb47b441461023d578063204b676a1461026f575b600080fd5b61019b610584565b604080516001600160a01b039092168252519081900360200190f35b6101dd600480360360208110156101cd57600080fd5b50356001600160a01b0316610593565b005b6101dd600480360360208110156101f557600080fd5b50356001600160a01b0316610644565b61022b6004803603602081101561021b57600080fd5b50356001600160a01b03166106a0565b60408051918252519081900360200190f35b6101dd6004803603606081101561025357600080fd5b506001600160a01b0381351690602081013590604001356106e2565b61022b6004803603602081101561028557600080fd5b50356001600160a01b0316610a1d565b61022b600480360360208110156102ab57600080fd5b50356001600160a01b0316610a38565b6102e1600480360360208110156102d157600080fd5b50356001600160a01b0316610a4a565b6040518082600260200280838360005b838110156103095781810151838201526020016102f1565b5050505090500191505060405180910390f35b6101dd610a9b565b61022b6004803603606081101561033a57600080fd5b506001600160a01b038135169060208101359060400135610c58565b61022b610c94565b61019b610c9a565b61022b610ca9565b61022b6004803603602081101561038457600080fd5b50356001600160a01b0316610cae565b61022b600480360360208110156103aa57600080fd5b50356001600160a01b0316610cc7565b6101dd610ce2565b61022b610d9e565b61019b610da3565b61022b600480360360208110156103e857600080fd5b50356001600160a01b0316610db2565b61022b6004803603604081101561040e57600080fd5b506001600160a01b038135169060200135610dc4565b61022b610ddf565b6101dd6004803603606081101561044257600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561046d57600080fd5b82018360208201111561047f57600080fd5b803590602001918460208302840111640100000000831117156104a157600080fd5b9193909290916020810190356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460208302840111640100000000831117156104f357600080fd5b509092509050610de5565b61022b610e6f565b6102e16004803603604081101561051c57600080fd5b506001600160a01b038135169060200135610e74565b61022b6004803603604081101561054857600080fd5b506001600160a01b038135169060200135610ee3565b6101dd6004803603602081101561057457600080fd5b50356001600160a01b0316610ef6565b6003546001600160a01b031681565b61059b610f52565b60025442106105db5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604081206105fc91611054565b6001600160a01b0381166000908152600560205260409020546006546106279163ffffffff610f9d16565b6006556001600160a01b0316600090815260056020526040812055565b61064c610f52565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000806106ac83610a1d565b905060005b818110156106d9576106c38482610dc4565b156106d15791506106dd9050565b6001016106b1565b5090505b919050565b6106ea610f52565b600254421061072a5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b81421061077e576040805162461bcd60e51b815260206004820152601a60248201527f54696d65206d75737420626520696e2074686520667574757265000000000000604482015290519081900360640190fd5b806107d0576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b6006546107e3908263ffffffff610ffa16565b600655600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561083157600080fd5b505afa158015610845573d6000803e3d6000fd5b505050506040513d602081101561085b57600080fd5b5051600654111561089d5760405162461bcd60e51b81526004018080602001828103825260478152602001806111c26047913960600191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054601481111561090c576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b80610931576001600160a01b03841660009081526005602052604090208290556109c6565b8261094785600161094188610a1d565b03610dc4565b106109835760405162461bcd60e51b815260040180806020018281038252603781526020018061118b6037913960400191505060405180910390fd5b6001600160a01b0384166000908152600560205260409020546109ac908363ffffffff610ffa16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925286825281830186905280546001810180835591855292909320610a159260029081029091019190611078565b505050505050565b6001600160a01b031660009081526004602052604090205490565b60056020526000908152604090205481565b610a526110b6565b6000610a5d836106a0565b9050610a6883610a1d565b811415610a8a57505060408051808201909152600080825260208201526106dd565b610a948382610e74565b9392505050565b6000610aa633610a1d565b90506000805b82811015610b4b576000610ac03383610dc4565b905042811115610ad05750610b4b565b6000610adc3384610ee3565b90508015610b4157604080518082018252600080825260208083018290523382526004905291909120805485908110610b1157fe5b9060005260206000209060020201906002610b2d9291906110d4565b50610b3e848263ffffffff610ffa16565b93505b5050600101610aac565b508015610c5457600654610b65908263ffffffff610f9d16565b60065533600090815260056020526040902054610b88908263ffffffff610f9d16565b33600081815260056020908152604080832094909455600354845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b158015610bed57600080fd5b505af1158015610c01573d6000803e3d6000fd5b505050506040513d6020811015610c1757600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b60046020528260005260406000208281548110610c7157fe5b90600052602060002090600202018160028110610c8a57fe5b0154925083915050565b60025481565b6001546001600160a01b031681565b600081565b6000610cb982610a4a565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b03163314610d2b5760405162461bcd60e51b81526004018080602001828103825260358152602001806111566035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600181565b6000546001600160a01b031681565b6000610dbd82610a4a565b6001610cbc565b6000610dd08383610e74565b60005b60200201519392505050565b60065481565b610ded610f52565b6002544210610e2d5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b60005b83811015610a1557610e6786868684818110610e4857fe5b90506020020135858585818110610e5b57fe5b905060200201356106e2565b600101610e30565b601481565b610e7c6110b6565b6001600160a01b0383166000908152600460205260409020805483908110610ea057fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610ec3575050505050905092915050565b6000610eef8383610e74565b6001610dd3565b610efe610f52565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fcb046e61ab451d5fec11d3dfc4c550475bd0abd8df74a421c34be433f197c4df9181900360200190a150565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611209602f913960400191505060405180910390fd5b565b600082821115610ff4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610a94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460008255600202906000526020600020908101906110759190611107565b50565b82600281019282156110a6579160200282015b828111156110a657825182559160200191906001019061108b565b506110b292915061112d565b5090565b60405180604001604052806002906020820280388339509192915050565b82600281019282156110a6579160200282015b828111156110a6578251829060ff169055916020019190600101906110e7565b61112a91905b808211156110b25760006111218282611147565b5060020161110d565b90565b61112a91905b808211156110b25760008155600101611133565b50600081556001016000905556fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a723158201754258e8562de0dd524b628f58a687056cee540ff436deef46d12bb4a5f6fdf64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IOikos",
							"name": "_oikos",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOikos",
							"type": "address"
						}
					],
					"name": "OikosUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_VESTING_ENTRIES",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "QUANTITY_INDEX",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TIME_INDEX",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "times",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "quantities",
							"type": "uint256[]"
						}
					],
					"name": "addVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingScheduleEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oikos",
					"outputs": [
						{
							"internalType": "contract IOikos",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "purgeAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IOikos",
							"name": "_oikos",
							"type": "address"
						}
					],
					"name": "setOikos",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalVestedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xe1ee6d6fc90cc1b2d586e6ca16ad2e11ac56faa17aff31982575a440c627724e",
				"urls": [
					"bzz-raw://78f77cfb228c9035143b24a96a72c9af4bd0a5d793e719b4a736e9c1e983f5b3",
					"dweb:/ipfs/QmSWwNCNaeztZAWjW1u8KXouVKNKmjZDwmMF1u5HgzQRin"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OikosEscrow.sol": "OikosEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OikosEscrow.sol": {
						"keccak256": "0xe1ee6d6fc90cc1b2d586e6ca16ad2e11ac56faa17aff31982575a440c627724e",
						"urls": [
							"bzz-raw://78f77cfb228c9035143b24a96a72c9af4bd0a5d793e719b4a736e9c1e983f5b3",
							"dweb:/ipfs/QmSWwNCNaeztZAWjW1u8KXouVKNKmjZDwmMF1u5HgzQRin"
						]
					}
				},
				"version": 1
			}
		},
		"OikosState": {
			"bytecode": "608060405234801561001057600080fd5b50604051610a92380380610a928339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050506108ec806101a66000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638b3f8088116100a2578063aefc4ccb11610071578063aefc4ccb14610261578063b16c09f014610269578063b992812e1461028f578063ba08f299146102c9578063cd92eba9146102d15761010b565b80638b3f8088146101e65780638da5cb5b146102255780639371bede1461022d578063a764eb45146102355761010b565b806346317712116100de578063463177121461018c57806352f445ca1461019457806353a47bb7146101ba57806379ba5097146101de5761010b565b806308d95cd5146101105780631627540c1461013f5780631bfba595146101675780633d31e97b1461016f575b600080fd5b61012d6004803603602081101561012657600080fd5b50356102d9565b60408051918252519081900360200190f35b6101656004803603602081101561015557600080fd5b50356001600160a01b03166102f7565b005b610165610353565b6101656004803603602081101561018557600080fd5b50356103b5565b61012d610433565b610165600480360360208110156101aa57600080fd5b50356001600160a01b0316610459565b6101c26104b5565b604080516001600160a01b039092168252519081900360200190f35b6101656104c4565b61020c600480360360208110156101fc57600080fd5b50356001600160a01b0316610580565b6040805192835260208301919091528051918290030190f35b6101c2610599565b61012d6105a8565b6101656004803603604081101561024b57600080fd5b506001600160a01b0381351690602001356105ae565b6101c261061e565b6101656004803603602081101561027f57600080fd5b50356001600160a01b031661062d565b6102b5600480360360208110156102a557600080fd5b50356001600160a01b0316610696565b604080519115158252519081900360200190f35b6101656106b3565b61012d610710565b600581815481106102e657fe5b600091825260209091200154905081565b6102ff610716565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b0316331461039c5760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6004546103b090600163ffffffff61076116565b600455565b6002546001600160a01b031633146103fe5760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00155565b6005805460009190600019810190811061044957fe5b9060005260206000200154905090565b610461610716565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b0316331461050d5760405162461bcd60e51b81526004018080602001828103825260358152602001806108206035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6003602052600090815260409020805460019091015482565b6000546001600160a01b031681565b60045481565b6002546001600160a01b031633146105f75760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6001600160a01b039091166000908152600360205260409020908155600554600190910155565b6002546001600160a01b031681565b6002546001600160a01b031633146106765760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6001600160a01b0316600090815260036020526040812081815560010155565b6001600160a01b0316600090815260036020526040902054151590565b6002546001600160a01b031633146106fc5760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6004546103b090600163ffffffff6107c216565b60055490565b6000546001600160a01b0316331461075f5760405162461bcd60e51b815260040180806020018281038252602f815260200180610855602f913960400191505060405180910390fd5b565b6000828201838110156107bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115610819576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a7231582014a5cd46832f4c77f5a120203c50ff50ee43bc27dcdd027a8b28864b52422a6164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "appendDebtLedgerValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "clearIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "debtLedger",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtLedgerLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "decrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "hasIssued",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "incrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "issuanceData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastDebtLedgerEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						}
					],
					"name": "setCurrentIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuerCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd98deca400c50836cf9e60d5d3f7c2e51419930f595a2c79b6765c45e41ad054",
				"urls": [
					"bzz-raw://d5fbf6b0928f5e4c62cbfe6e6c4faae3bd891970f5dbd02ca021498b8be8dce6",
					"dweb:/ipfs/Qma8gfiwo1Y92Rx5S4ehsj5V3oa1UfADovMWbXtMq5eD2S"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OikosState.sol": "OikosState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OikosState.sol": {
						"keccak256": "0xd98deca400c50836cf9e60d5d3f7c2e51419930f595a2c79b6765c45e41ad054",
						"urls": [
							"bzz-raw://d5fbf6b0928f5e4c62cbfe6e6c4faae3bd891970f5dbd02ca021498b8be8dce6",
							"dweb:/ipfs/Qma8gfiwo1Y92Rx5S4ehsj5V3oa1UfADovMWbXtMq5eD2S"
						]
					}
				},
				"version": 1
			}
		},
		"OikosDebtShare": {
			"bytecode": "6080604052600a805460ff60881b191690553480156200001e57600080fd5b506040516200244a3803806200244a833981810160405260408110156200004457600080fd5b50805160209091015180826001600160a01b038116620000ab576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b0392909216919091179055604080518082019091526011808252704f696b6f7320446562742053686172657360781b60209092019182526200015e91600891620001b2565b506040805180820190915260038082526253445360e81b60209092019182526200018b91600991620001b2565b5050600a8054610100600160881b031960ff19909116601217166101001790555062000257565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f557805160ff191683800117855562000225565b8280016001018555821562000225579182015b828111156200022557825182559160200191906001019062000208565b506200023392915062000237565b5090565b6200025491905b808211156200023357600081556001016200023e565b90565b6121e380620002676000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806379ba509711610125578063a3e0a7d7116100ad578063cbf1304d1161007c578063cbf1304d146106cf578063d186820614610721578063dd62ed3e14610747578063e6d24bbd14610775578063f9cb1da31461079b5761021c565b8063a3e0a7d714610660578063a9059cbb146102c2578063abb6de951461067d578063c2f04b0a146106a35761021c565b80638ced14df116100f45780638ced14df1461053e5780638da5cb5b1461056a5780638f8495181461057257806395d89b4114610634578063988e65951461063c5761021c565b806379ba5097146104aa57806386f25e4d146104b2578063899ffef4146104ba5780638a25acf4146105125761021c565b806325428394116101a8578063392e53cd11610177578063392e53cd1461046457806353a47bb71461046c578063614d08f81461047457806370a082311461047c57806374185360146104a25761021c565b806325428394146103f25780632af64bd314610418578063313ce567146104205780633913d24b1461043e5761021c565b80631627540c116101ef5780631627540c1461032a578063174495dd1461035057806318160ddd146103765780631a378f0d1461039057806323b872dd146103bc5761021c565b806304f3bcec1461022157806306fdde0314610245578063095ea7b3146102c25780631495552814610302575b600080fd5b6102296107c1565b604080516001600160a01b039092168252519081900360200190f35b61024d6107d0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028757818101518382015260200161026f565b50505050905090810190601f1680156102b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ee600480360360408110156102d857600080fd5b506001600160a01b03813516906020013561085e565b604080519115158252519081900360200190f35b6103286004803603602081101561031857600080fd5b50356001600160a01b0316610897565b005b6103286004803603602081101561034057600080fd5b50356001600160a01b03166108fd565b6103286004803603602081101561036657600080fd5b50356001600160a01b0316610959565b61037e6109b7565b60408051918252519081900360200190f35b610328600480360360408110156103a657600080fd5b506001600160a01b0381351690602001356109db565b6102ee600480360360608110156103d257600080fd5b506001600160a01b03813581169160208101359091169060400135610b61565b6103286004803603602081101561040857600080fd5b50356001600160a01b0316610c61565b6102ee610cbf565b610428610dc9565b6040805160ff9092168252519081900360200190f35b6103286004803603602081101561045457600080fd5b50356001600160a01b0316610dd2565b6102ee610e38565b610229610e48565b61037e610e57565b61037e6004803603602081101561049257600080fd5b50356001600160a01b0316610e6c565b610328610eda565b6103286110a2565b61032861115e565b6104c261117b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104fe5781810151838201526020016104e6565b505050509050019250505060405180910390f35b61037e6004803603604081101561052857600080fd5b506001600160a01b0381351690602001356111c3565b61037e6004803603604081101561055457600080fd5b506001600160a01b0381351690602001356112e2565b610229611328565b6103286004803603604081101561058857600080fd5b8101906020810181356401000000008111156105a357600080fd5b8201836020820111156105b557600080fd5b803590602001918460208302840111640100000000831117156105d757600080fd5b9193909290916020810190356401000000008111156105f557600080fd5b82018360208201111561060757600080fd5b8035906020019184602083028401116401000000008311171561062957600080fd5b509092509050611337565b61024d61163f565b61064461169a565b604080516001600160801b039092168252519081900360200190f35b61037e6004803603602081101561067657600080fd5b50356116ae565b6103286004803603602081101561069357600080fd5b50356001600160801b03166116c0565b610328600480360360408110156106b957600080fd5b506001600160a01b0381351690602001356117f7565b6106fb600480360360408110156106e557600080fd5b506001600160a01b038135169060200135611979565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b6102ee6004803603602081101561073757600080fd5b50356001600160a01b03166119b9565b61037e6004803603604081101561075d57600080fd5b506001600160a01b03813581169160200135166119ce565b61037e6004803603602081101561078b57600080fd5b50356001600160a01b0316611a00565b6102ee600480360360208110156107b157600080fd5b50356001600160a01b0316611a1f565b6002546001600160a01b031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108565780601f1061082b57610100808354040283529160200191610856565b820191906000526020600020905b81548152906001019060200180831161083957829003601f168201915b505050505081565b600060405162461bcd60e51b81526004018080602001828103825260218152602001806120ed6021913960400191505060405180910390fd5b61089f611a34565b6001600160a01b038116600081815260046020908152604091829020805460ff19166001908117909155825190815291517f6e713465f03f44982be319e75ac01e2170374630e7bde28a104881e236fb07e39281900390910190a250565b610905611a34565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610961611a34565b6001600160a01b0381166000818152600560209081526040808320805460ff191690558051928352517f6c26d4e15c21227ab0fca84cab71715b23c6c4137b24cbcaedc517b673a1781f9281900390910190a250565b600a5461010090046001600160801b03166000908152600760205260409020545b90565b6109ed6524b9b9bab2b960d11b611a7f565b6001600160a01b0316336001600160a01b031614610a3c5760405162461bcd60e51b815260040180806020018281038252602981526020018061212e6029913960400191505060405180910390fd5b6001600160a01b038216610a97576040805162461bcd60e51b815260206004820152601d60248201527f45524332303a206275726e2066726f6d207a65726f2061646472657373000000604482015290519081900360640190fd5b610aa18282611b63565b600a5461010090046001600160801b0316600090815260076020526040902054610acb9082611d41565b600a5461010090046001600160801b03166000908152600760209081526040808320939093558251848152925191926001600160a01b0386169260008051602061210e833981519152929181900390910190a36040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b3360009081526004602052604081205460ff16610baf5760405162461bcd60e51b815260040180806020018281038252602d815260200180612182602d913960400191505060405180910390fd5b6001600160a01b038316610c0a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a2073656e6420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610c148483611b63565b610c1e8383611d9e565b826001600160a01b0316846001600160a01b031660008051602061210e833981519152846040518082815260200191505060405180910390a35060019392505050565b610c69611a34565b6001600160a01b0381166000818152600460209081526040808320805460ff191690558051928352517f6e713465f03f44982be319e75ac01e2170374630e7bde28a104881e236fb07e39281900390910190a250565b60006060610ccb61117b565b905060005b8151811015610dc0576000828281518110610ce757fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610d4f57600080fd5b505afa158015610d63573d6000803e3d6000fd5b505050506040513d6020811015610d7957600080fd5b50516001600160a01b0316141580610da657506000818152600360205260409020546001600160a01b0316155b15610db757600093505050506109d8565b50600101610cd0565b50600191505090565b600a5460ff1681565b610dda611a34565b6001600160a01b038116600081815260056020908152604091829020805460ff19166001908117909155825190815291517f6c26d4e15c21227ab0fca84cab71715b23c6c4137b24cbcaedc517b673a1781f9281900390910190a250565b600a54600160881b900460ff1681565b6001546001600160a01b031681565b6d4f696b6f7344656274536861726560901b81565b6001600160a01b03811660009081526006602052604081205480610e94576000915050610ed5565b6001600160a01b038316600090815260066020526040902080546000198301908110610ebc57fe5b6000918252602090912001546001600160801b03169150505b919050565b6060610ee461117b565b905060005b815181101561109e576000828281518110610f0057fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610fb6578181015183820152602001610f9e565b50505050905090810190601f168015610fe35780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561100157600080fd5b505afa158015611015573d6000803e3d6000fd5b505050506040513d602081101561102b57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610ee9565b5050565b6001546001600160a01b031633146110eb5760405162461bcd60e51b81526004018080602001828103825260358152602001806120096035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b611166611a34565b600a805460ff60881b1916600160881b179055565b604080516001808252818301909252606091602080830190803883390190505090506524b9b9bab2b960d11b816000815181106111b457fe5b60200260200101818152505090565b6001600160a01b03821660009081526006602052604081205481601e82116111ec5760006111f1565b601e82035b905060001982015b818112611295576001600160a01b038616600090815260066020526040902080548691908390811061122757fe5b600091825260209091200154600160801b90046001600160801b03161161128c576001600160a01b038616600090815260066020526040902080548290811061126c57fe5b6000918252602090912001546001600160801b031693506112dc92505050565b600019016111f9565b600081126112d45760405162461bcd60e51b815260040180806020018281038252602b815260200180612157602b913960400191505060405180910390fd5b600093505050505b92915050565b6000806112ef84846111c3565b9050806113005760009150506112dc565b60008381526007602052604090205461132090829063ffffffff611e9016565b949350505050565b6000546001600160a01b031681565b61133f611a34565b600a54600160881b900460ff16156113885760405162461bcd60e51b815260040180806020018281038252603181526020018061206c6031913960400191505060405180910390fd5b600a5461010090046001600160801b0316600090815260076020526040812054905b848110156116185760006113d88787848181106113c357fe5b905060200201356001600160a01b0316610e6c565b90508484838181106113e657fe5b905060200201358110156114fb5760008186868581811061140357fe5b9050602002013503905061143288888581811061141c57fe5b905060200201356001600160a01b031682611d9e565b611442848263ffffffff611ec116565b935087878481811061145057fe5b905060200201356001600160a01b03166001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28787848181106114ac57fe5b905060200201356001600160a01b03166001600160a01b031660006001600160a01b031660008051602061210e833981519152836040518082815260200191505060405180910390a35061160f565b84848381811061150757fe5b9050602002013581111561160f57600085858481811061152357fe5b905060200201358203905061155388888581811061153d57fe5b905060200201356001600160a01b031682611b63565b611563848263ffffffff611d4116565b935087878481811061157157fe5b905060200201356001600160a01b03166001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a260008888858181106115cf57fe5b905060200201356001600160a01b03166001600160a01b031660008051602061210e833981519152836040518082815260200191505060405180910390a3505b506001016113aa565b50600a5461010090046001600160801b031660009081526007602052604090205550505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108565780601f1061082b57610100808354040283529160200191610856565b600a5461010090046001600160801b031681565b60076020526000908152604090205481565b3360009081526005602052604090205460ff168061170057506116eb6524b9b9bab2b960d11b611a7f565b6001600160a01b0316336001600160a01b0316145b61173b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611fdf602a913960400191505060405180910390fd5b600a546001600160801b036101009091048116908216116117a3576040805162461bcd60e51b815260206004820152601e60248201527f706572696f64206964206d75737420616c7761797320696e6372656173650000604482015290519081900360640190fd5b600a8054610100908190046001600160801b03908116600090815260076020526040808220549590921680825291902093909355815470ffffffffffffffffffffffffffffffff0019169202919091179055565b6118096524b9b9bab2b960d11b611a7f565b6001600160a01b0316336001600160a01b0316146118585760405162461bcd60e51b815260040180806020018281038252602981526020018061212e6029913960400191505060405180910390fd5b6001600160a01b0382166118b3576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6118bd8282611d9e565b600a5461010090046001600160801b03166000908152600760205260409020546118e79082611ec1565b600a5461010090046001600160801b0316600090815260076020908152604080832093909355825184815292516001600160a01b0386169360008051602061210e83398151915292908290030190a36040805182815290516001600160a01b038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b6006602052816000526040600020818154811061199257fe5b6000918252602090912001546001600160801b038082169350600160801b90910416905082565b60046020526000908152604090205460ff1681565b6001600160a01b03811660009081526004602052604081205460ff16156119f857506000196112dc565b5060006112dc565b600a546000906112dc90839061010090046001600160801b03166112e2565b60056020526000908152604090205460ff1681565b6000546001600160a01b03163314611a7d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061209d602f913960400191505060405180910390fd5b565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611b5c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b21578181015183820152602001611b09565b50505050905090810190601f168015611b4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b6001600160a01b03821660009081526006602052604090205480611bb85760405162461bcd60e51b815260040180806020018281038252602e81526020018061203e602e913960400191505060405180910390fd5b6001600160a01b03831660009081526006602052604081208054611c079185916000198601908110611be657fe5b6000918252602090912001546001600160801b03169063ffffffff611d4116565b600a546001600160a01b038616600090815260066020526040902080549293506101009091046001600160801b0316916000198501908110611c4557fe5b600091825260209091200154600160801b90046001600160801b031614611ce6576001600160a01b038416600090815260066020908152604080832081518083019092526001600160801b038086168352600a546101009004811683850190815282546001810184559286529390942091519101805492518416600160801b029184166001600160801b031990931692909217909216919091179055611d3b565b6001600160a01b038416600090815260066020526040902080548291906000198501908110611d1157fe5b600091825260209091200180546001600160801b0319166001600160801b03929092169190911790555b50505050565b600082821115611d98576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03821660009081526006602052604090205480611e3c576001600160a01b038316600090815260066020908152604080832081518083019092526001600160801b038087168352600a546101009004811683850190815282546001810184559286529390942091519101805492518416600160801b029184166001600160801b031990931692909217909216919091179055611e8b565b6001600160a01b03831660009081526006602052604081208054611c079185916000198601908110611e6a57fe5b6000918252602090912001546001600160801b03169063ffffffff611ec116565b505050565b6000611eba82611eae85670de0b6b3a764000063ffffffff611f1b16565b9063ffffffff611f7416565b9392505050565b600082820183811015611eba576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082611f2a575060006112dc565b82820282848281611f3757fe5b0414611eba5760405162461bcd60e51b81526004018080602001828103825260218152602001806120cc6021913960400191505060405180910390fd5b6000808211611fca576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611fd557fe5b0494935050505056fe4f696b6f734465627453686172653a206e6f7420617574686f72697a656420746f20736e617073686f74596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f696b6f734465627453686172653a206163636f756e7420686173206e6f20736861726520746f206465647563744f696b6f73446562743a206f6e6c792063616c6c61626c65207768696c65207374696c6c20696e697469616c697a696e674f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77646562742073686172657320617265206e6f74207472616e736665727261626c65ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f696b6f734465627453686172653a206f6e6c79206973737565722063616e206d696e742f6275726e4f696b6f734465627453686172653a206e6f7420666f756e6420696e20726563656e7420686973746f72794f696b6f734465627453686172653a206f6e6c792062726f6b6572732063616e207472616e7366657246726f6da265627a7a72315820c9855dfdd2a1c9906e111f7097e7a6ad4b29e1ecd1e5e1177b0c55428a54eb5b64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Burn",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authorizedBroker",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "authorized",
							"type": "bool"
						}
					],
					"name": "ChangeAuthorizedBroker",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authorizedToSnapshot",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "authorized",
							"type": "bool"
						}
					],
					"name": "ChangeAuthorizedToSnapshot",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Mint",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "addAuthorizedBroker",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "addAuthorizedToSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "authorizedBrokers",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "authorizedToSnapshot",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						}
					],
					"name": "balanceOfOnPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "balances",
					"outputs": [
						{
							"internalType": "uint128",
							"name": "amount",
							"type": "uint128"
						},
						{
							"internalType": "uint128",
							"name": "periodId",
							"type": "uint128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnShare",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentPeriodId",
					"outputs": [
						{
							"internalType": "uint128",
							"name": "",
							"type": "uint128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "finishSetup",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "amounts",
							"type": "uint256[]"
						}
					],
					"name": "importAddresses",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isInitialized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "mintShare",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "removeAuthorizedBroker",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "removeAuthorizedToSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "sharePercent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						}
					],
					"name": "sharePercentOnPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint128",
							"name": "id",
							"type": "uint128"
						}
					],
					"name": "takeSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "totalSupplyOnPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x6d4d3e7f9da0a5462393ba089e4878a81e15419d32f43472a6698da40d4526b4",
				"urls": [
					"bzz-raw://d2cfb3e41d36a09b6e529d560c0345a3fc45cea10ec899c2a202623b63934d77",
					"dweb:/ipfs/QmXvLrt2Psca7ZdbtuyExEz9PQjcB52mKRFd6w4WhSmNr8"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OikosDebtShare.sol": "OikosDebtShare"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OikosDebtShare.sol": {
						"keccak256": "0x6d4d3e7f9da0a5462393ba089e4878a81e15419d32f43472a6698da40d4526b4",
						"urls": [
							"bzz-raw://d2cfb3e41d36a09b6e529d560c0345a3fc45cea10ec899c2a202623b63934d77",
							"dweb:/ipfs/QmXvLrt2Psca7ZdbtuyExEz9PQjcB52mKRFd6w4WhSmNr8"
						]
					}
				},
				"version": 1
			}
		},
		"Proxy": {
			"bytecode": "608060405234801561001057600080fd5b506040516106ee3803806106ee8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506105f4806100fa6000396000f3fe6080604052600436106100705760003560e01c806379ba50971161004e57806379ba5097146101925780638da5cb5b146101a7578063907dff97146101bc578063d4b839921461025157610070565b80631627540c146100f957806353a47bb71461012e578063776d1a011461015f575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b1580156100bc57600080fd5b505af11580156100d0573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e806100f5573d82fd5b3d82f35b34801561010557600080fd5b5061012c6004803603602081101561011c57600080fd5b50356001600160a01b0316610266565b005b34801561013a57600080fd5b506101436102c2565b604080516001600160a01b039092168252519081900360200190f35b34801561016b57600080fd5b5061012c6004803603602081101561018257600080fd5b50356001600160a01b03166102d1565b34801561019e57600080fd5b5061012c61032d565b3480156101b357600080fd5b506101436103e9565b3480156101c857600080fd5b5061012c600480360360c08110156101df57600080fd5b8101906020810181356401000000008111156101fa57600080fd5b82018360208201111561020c57600080fd5b8035906020019184600183028401116401000000008311171561022e57600080fd5b9193509150803590602081013590604081013590606081013590608001356103f8565b34801561025d57600080fd5b50610143610501565b61026e610510565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6001546001600160a01b031681565b6102d9610510565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b031633146103765760405162461bcd60e51b815260040180806020018281038252603581526020018061055c6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b0316331461044e576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a9084908190840183828082843760009201919091525092935089925050811590506104b857600181146104c357600281146104cf57600381146104dc57600481146104ea576104f5565b8260208301a06104f5565b868360208401a16104f5565b85878460208501a26104f5565b8486888560208601a36104f5565b838587898660208701a45b50505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146105595760405162461bcd60e51b815260040180806020018281038252602f815260200180610591602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820b113f32a73e3318e37880acac9a07a4a8eeb19f0d5b14d974f9a241d93e029c864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "contract Proxyable",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes",
							"name": "callData",
							"type": "bytes"
						},
						{
							"internalType": "uint256",
							"name": "numTopics",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "topic1",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic2",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic3",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic4",
							"type": "bytes32"
						}
					],
					"name": "_emit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract Proxyable",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "contract Proxyable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc1b62fa46886f836a5150e8924ac69086bf6b5d05bc84d371b8b138413a90580",
				"urls": [
					"bzz-raw://3d3ad4c747d0806369eb8fcbd2549356c8b9c37d196dad77b1629024479f9713",
					"dweb:/ipfs/QmNcG9nTzUMaKNXbvqWM2as4tQcPfkPr4NVV4C2x6jJQW8"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Proxy.sol": "Proxy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Proxy.sol": {
						"keccak256": "0xc1b62fa46886f836a5150e8924ac69086bf6b5d05bc84d371b8b138413a90580",
						"urls": [
							"bzz-raw://3d3ad4c747d0806369eb8fcbd2549356c8b9c37d196dad77b1629024479f9713",
							"dweb:/ipfs/QmNcG9nTzUMaKNXbvqWM2as4tQcPfkPr4NVV4C2x6jJQW8"
						]
					}
				},
				"version": 1
			}
		},
		"EternalStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516112143803806112148339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150505061106e806101a66000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806353a47bb7116100f9578063a209a29c11610097578063ba69fcaa11610071578063ba69fcaa146104e9578063bdc963d814610506578063c9a52d2c14610523578063f58660661461059a576101a9565b8063a209a29c146104a1578063a77aa49e146104be578063aefc4ccb146104e1576101a9565b80638267a9ee116100d35780638267a9ee146104425780638da5cb5b1461045f5780639007127b1461046757806393fe424814610484576101a9565b806353a47bb7146104065780635a2bf25a1461040e57806379ba50971461043a576101a9565b806325cf512d116101665780633eba9ed2116101405780633eba9ed2146102f057806344bfa56e146103155780634c77e5ba146103a757806352f445ca146103e0576101a9565b806325cf512d1461028d5780633562fd20146102b05780633cc1635c146102d3576101a9565b8063025ec81a146101ae578063043106c0146101dd5780630c55d925146101fc578063124f2418146102195780631627540c1461023657806317e7dd221461025c575b600080fd5b6101cb600480360360208110156101c457600080fd5b5035610611565b60408051918252519081900360200190f35b6101fa600480360360208110156101f357600080fd5b5035610623565b005b6101fa6004803603602081101561021257600080fd5b503561068a565b6101fa6004803603602081101561022f57600080fd5b50356106ed565b6101fa6004803603602081101561024c57600080fd5b50356001600160a01b0316610747565b6102796004803603602081101561027257600080fd5b50356107a3565b604080519115158252519081900360200190f35b6101fa600480360360408110156102a357600080fd5b50803590602001356107b8565b6101fa600480360360408110156102c657600080fd5b5080359060200135610813565b6101fa600480360360208110156102e957600080fd5b503561086e565b6101fa6004803603604081101561030657600080fd5b508035906020013515156108cf565b6103326004803603602081101561032b57600080fd5b5035610938565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036c578181015183820152602001610354565b50505050905090810190601f1680156103995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c4600480360360208110156103bd57600080fd5b50356109d9565b604080516001600160a01b039092168252519081900360200190f35b6101fa600480360360208110156103f657600080fd5b50356001600160a01b03166109f4565b6103c4610a50565b6101fa6004803603604081101561042457600080fd5b50803590602001356001600160a01b0316610a5f565b6101fa610ad6565b6101fa6004803603602081101561045857600080fd5b5035610b92565b6103c4610bec565b6101cb6004803603602081101561047d57600080fd5b5035610bfb565b6101fa6004803603602081101561049a57600080fd5b5035610c0d565b610332600480360360208110156104b757600080fd5b5035610c67565b6101fa600480360360408110156104d457600080fd5b5080359060200135610cd1565b6103c4610d2c565b6101fa600480360360208110156104ff57600080fd5b5035610d3b565b6101cb6004803603602081101561051c57600080fd5b5035610d9b565b6101fa6004803603604081101561053957600080fd5b8135919081019060408101602082013564010000000081111561055b57600080fd5b82018360208201111561056d57600080fd5b8035906020019184600183028401116401000000008311171561058f57600080fd5b509092509050610dad565b6101fa600480360360408110156105b057600080fd5b813591908101906040810160208201356401000000008111156105d257600080fd5b8201836020820111156105e457600080fd5b8035906020019184600183028401116401000000008311171561060657600080fd5b509092509050610e15565b60009081526007602052604090205490565b6002546001600160a01b0316331461066c5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260056020526040902080546001600160a01b0319169055565b6002546001600160a01b031633146106d35760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60008181526006602052604081206106ea91610ec2565b50565b6002546001600160a01b031633146107365760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260076020526040812055565b61074f610e77565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60009081526008602052604090205460ff1690565b6002546001600160a01b031633146108015760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526007602052604090912055565b6002546001600160a01b0316331461085c5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526003602052604090912055565b6002546001600160a01b031633146108b75760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000908152600860205260409020805460ff19169055565b6002546001600160a01b031633146109185760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600091825260086020526040909120805460ff1916911515919091179055565b60008181526006602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156109cd5780601f106109a2576101008083540402835291602001916109cd565b820191906000526020600020905b8154815290600101906020018083116109b057829003601f168201915b50505050509050919050565b6000908152600560205260409020546001600160a01b031690565b6109fc610e77565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b03163314610aa85760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526005602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610b1f5760405162461bcd60e51b8152600401808060200182810382526035815260200180610fa26035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b03163314610bdb5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260096020526040812055565b6000546001600160a01b031681565b60009081526009602052604090205490565b6002546001600160a01b03163314610c565760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260036020526040812055565b60008181526004602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156109cd5780601f106109a2576101008083540402835291602001916109cd565b6002546001600160a01b03163314610d1a5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b031681565b6002546001600160a01b03163314610d845760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60008181526004602052604081206106ea91610ec2565b60009081526003602052604090205490565b6002546001600160a01b03163314610df65760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000838152600660205260409020610e0f908383610f06565b50505050565b6002546001600160a01b03163314610e5e5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000838152600460205260409020610e0f908383610f06565b6000546001600160a01b03163314610ec05760405162461bcd60e51b815260040180806020018281038252602f815260200180610fd7602f913960400191505060405180910390fd5b565b50805460018160011615610100020316600290046000825580601f10610ee857506106ea565b601f0160209004906000526020600020908101906106ea9190610f84565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610f475782800160ff19823516178555610f74565b82800160010185558215610f74579182015b82811115610f74578235825591602001919060010190610f59565b50610f80929150610f84565b5090565b610f9e91905b80821115610f805760008155600101610f8a565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a72315820ecfffacedc3a242f81b01d2d001c5ccc37756ef65db28eb6b9061d5be3a89d2264736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBooleanValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytesValue",
					"outputs": [
						{
							"internalType": "bytes",
							"name": "",
							"type": "bytes"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getStringValue",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes",
							"name": "value",
							"type": "bytes"
						}
					],
					"name": "setBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "value",
							"type": "string"
						}
					],
					"name": "setStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x345e31df2d50e240f1e79d9e4c38de20f460d320b87b64a466349e1e7642c6b5",
				"urls": [
					"bzz-raw://f0adac44b15091dfd7eb4de2cba18622ad241129405a3abd235370f50cddf0c8",
					"dweb:/ipfs/QmQP6zXeaq6fnvTvGvTFxooWXsezR7KEb7siv6R9Gcbx45"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EternalStorage.sol": "EternalStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EternalStorage.sol": {
						"keccak256": "0x345e31df2d50e240f1e79d9e4c38de20f460d320b87b64a466349e1e7642c6b5",
						"urls": [
							"bzz-raw://f0adac44b15091dfd7eb4de2cba18622ad241129405a3abd235370f50cddf0c8",
							"dweb:/ipfs/QmQP6zXeaq6fnvTvGvTFxooWXsezR7KEb7siv6R9Gcbx45"
						]
					}
				},
				"version": 1
			}
		},
		"DelegateApprovals": {
			"bytecode": "61012060405269105c1c1c9bdd99505b1b60b21b60809081526d4275726e466f724164647265737360901b60a0526e4973737565466f724164647265737360881b60c0526e436c61696d466f724164647265737360881b60e0527145786368616e6765466f724164647265737360701b61010052610081906002906005610195565b5034801561008e57600080fd5b50604051610fbc380380610fbc833981810160405260408110156100b157600080fd5b508051602090910151816001600160a01b038116610116576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600780546001600160a01b0319166001600160a01b0392909216919091179055506101f0565b82600581019282156101c3579160200282015b828111156101c35782518255916020019190600101906101a8565b506101cf9291506101d3565b5090565b6101ed91905b808211156101cf57600081556001016101d9565b90565b610dbd806101ff6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063b5bb561911610097578063c5e17ab011610071578063c5e17ab014610487578063d8eeb7c11461048f578063e32b3f5214610497578063faf431bb1461049f5761018e565b8063b5bb561914610415578063b9156efa1461043b578063bc87acbf146104615761018e565b80638da5cb5b1461038357806398ff9c541461038b5780639c79ce35146103935780639cbc2ebe146103b95780639f61d336146103c1578063b42e0f15146103e75761018e565b8063447fbc631161014b5780636c8bc9fe116101255780636c8bc9fe146103015780636f95200b1461032757806379ba50971461034d5780637d3f0ba2146103555761018e565b8063447fbc631461029157806353a47bb7146102b757806359cec3d6146102db5761018e565b806304872617146101935780631627540c146101d557806321f4ae57146101fd5780632c70aecf1461022b5780634180e5b514610245578063431ce5401461026b575b600080fd5b6101c1600480360360408110156101a957600080fd5b506001600160a01b03813581169160200135166104cd565b604080519115158252519081900360200190f35b6101fb600480360360208110156101eb57600080fd5b50356001600160a01b03166104f3565b005b6101c16004803603604081101561021357600080fd5b506001600160a01b038135811691602001351661054f565b61023361056e565b60408051918252519081900360200190f35b6101fb6004803603602081101561025b57600080fd5b50356001600160a01b0316610584565b6101fb6004803603602081101561028157600080fd5b50356001600160a01b03166105a4565b6101fb600480360360208110156102a757600080fd5b50356001600160a01b03166105c1565b6102bf6105e1565b604080516001600160a01b039092168252519081900360200190f35b6101fb600480360360208110156102f157600080fd5b50356001600160a01b03166105f0565b6101fb6004803603602081101561031757600080fd5b50356001600160a01b031661060c565b6101fb6004803603602081101561033d57600080fd5b50356001600160a01b0316610629565b6101fb61065a565b6101c16004803603604081101561036b57600080fd5b506001600160a01b0381358116916020013516610716565b6102bf610734565b6102bf610743565b6101fb600480360360208110156103a957600080fd5b50356001600160a01b0316610752565b61023361076e565b6101fb600480360360208110156103d757600080fd5b50356001600160a01b031661077f565b6101c1600480360360408110156103fd57600080fd5b506001600160a01b038135811691602001351661079c565b6101fb6004803603602081101561042b57600080fd5b50356001600160a01b031661082f565b6101fb6004803603602081101561045157600080fd5b50356001600160a01b03166108d6565b6101fb6004803603602081101561047757600080fd5b50356001600160a01b03166108f6565b61023361090e565b610233610924565b61023361093d565b6101c1600480360360408110156104b557600080fd5b506001600160a01b0381358116916020013516610952565b60006104ec6e4973737565466f724164647265737360881b8484610970565b9392505050565b6104fb610a0d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006104ec6e436c61696d466f724164647265737360881b8484610970565b6e4973737565466f724164647265737360881b81565b6105a16e436c61696d466f724164647265737360881b3383610a58565b50565b6105a16e4973737565466f724164647265737360881b3383610b78565b6105a17145786368616e6765466f724164647265737360701b3383610a58565b6001546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610b78565b6105a16e436c61696d466f724164647265737360881b3383610b78565b60005b60058110156106565761064e6002826005811061064557fe5b01543384610b78565b60010161062c565b5050565b6001546001600160a01b031633146106a35760405162461bcd60e51b8152600401808060200182810382526035815260200180610d256035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104ec6d4275726e466f724164647265737360901b8484610970565b6000546001600160a01b031681565b6007546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610a58565b69105c1c1c9bdd99505b1b60b21b81565b6105a16e4973737565466f724164647265737360881b3383610a58565b6007546000906001600160a01b03166317e7dd226107c869105c1c1c9bdd99505b1b60b21b8686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156107fc57600080fd5b505afa158015610810573d6000803e3d6000fd5b505050506040513d602081101561082657600080fd5b50519392505050565b610837610a0d565b6001600160a01b03811661087c5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cff6026913960400191505060405180910390fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fe3ebe3d58e84fbd094152babb730cf99a14b47f65ed04f35a3bd6356f8161a17916020908290030190a150565b6105a17145786368616e6765466f724164647265737360701b3383610b78565b6105a169105c1c1c9bdd99505b1b60b21b3383610a58565b6e436c61696d466f724164647265737360881b81565b7145786368616e6765466f724164647265737360701b81565b6d4275726e466f724164647265737360901b81565b60006104ec7145786368616e6765466f724164647265737360701b84845b600061097c838361079c565b15610989575060016104ec565b6007546001600160a01b03166317e7dd226109a5868686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109d957600080fd5b505afa1580156109ed573d6000803e3d6000fd5b505050506040513d6020811015610a0357600080fd5b5051949350505050565b6000546001600160a01b03163314610a565760405162461bcd60e51b815260040180806020018281038252602f815260200180610d5a602f913960400191505060405180910390fd5b565b6001600160a01b038116610ab3576040805162461bcd60e51b815260206004820152601c60248201527f43616e27742064656c656761746520746f206164647265737328302900000000604482015290519081900360640190fd5b6007546001600160a01b0316633eba9ed2610acf858585610cb2565b60016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610b1257600080fd5b505af1158015610b26573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f36a9e0c1da9cdc6d8f4bd4cb261f9ad6a45eb1641a557ead7530fbeff9a2633693509081900390910190a2505050565b6007546001600160a01b03166317e7dd22610b94858585610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610bc857600080fd5b505afa158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b505115610cad576007546001600160a01b0316633cc1635c610c15858585610cb2565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c4b57600080fd5b505af1158015610c5f573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f7e8dc09322ac82342d9dbfd49eb6497fa7ab69ac444f3763a9b8e16530342f4193509081900390910190a25b505050565b6040805160208082018690526bffffffffffffffffffffffff19606086811b82168486015285901b1660548301528251604881840301815260689092019092528051910120939250505056fe43616e27742073657420657465726e616c53746f7261676520746f2061646472657373283029596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582022d91df9965dc675b7eded7d8718308fb637c1afea5bb678988e9e0019f2203864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract EternalStorage",
							"name": "_eternalStorage",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "action",
							"type": "bytes32"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newEternalStorage",
							"type": "address"
						}
					],
					"name": "EternalStorageUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "action",
							"type": "bytes32"
						}
					],
					"name": "WithdrawApproval",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "APPROVE_ALL",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "BURN_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CLAIM_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "EXCHANGE_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "ISSUE_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveAllDelegatePowers",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveBurnOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveClaimOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveExchangeOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveIssueOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approvedAll",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canBurnFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canClaimFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canExchangeFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canIssueFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "eternalStorage",
					"outputs": [
						{
							"internalType": "contract EternalStorage",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeAllDelegatePowers",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeBurnOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeClaimOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeExchangeOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeIssueOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract EternalStorage",
							"name": "_eternalStorage",
							"type": "address"
						}
					],
					"name": "setEternalStorage",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x410d460e4ab9cdd95ca10a6a3bcfcd96f64e752a7982ea2ac11a0627965d96a6",
				"urls": [
					"bzz-raw://1d26f45d9f422499f446635249140fa1e0cc3355d5e6c7277c3dae811e8039ca",
					"dweb:/ipfs/QmSTyfTCMNVHw97zVpnmvGU2Jthyz6PuPJqZJDMKSFJnms"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DelegateApprovals.sol": "DelegateApprovals"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DelegateApprovals.sol": {
						"keccak256": "0x410d460e4ab9cdd95ca10a6a3bcfcd96f64e752a7982ea2ac11a0627965d96a6",
						"urls": [
							"bzz-raw://1d26f45d9f422499f446635249140fa1e0cc3355d5e6c7277c3dae811e8039ca",
							"dweb:/ipfs/QmSTyfTCMNVHw97zVpnmvGU2Jthyz6PuPJqZJDMKSFJnms"
						]
					}
				},
				"version": 1
			}
		},
		"Liquidations": {
			"bytecode": "608060405234801561001057600080fd5b50604051611ee8380380611ee88339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b0319909216919091179055505050611dc2806101266000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806379ba5097116100b8578063974e9e7f1161007c578063974e9e7f146102d0578063a0cf7451146102f6578063ad2bc2d5146102fe578063b410a03414610324578063c49e80a61461032c578063d45c0d7e1461035257610142565b806379ba50971461023a578063828afc4b14610242578063899ffef4146102685780638d1bd1be146102c05780638da5cb5b146102c857610142565b80632af64bd31161010a5780632af64bd3146101d857806339a9df1b146101f457806353a47bb71461021a5780636a05896614610222578063741853601461022a57806374e889c91461023257610142565b806304f3bcec146101475780630ac045d51461016b5780631627540c146101a05780631775765f146101c857806323f5589a146101d0575b600080fd5b61014f610378565b604080516001600160a01b039092168252519081900360200190f35b61018e6004803603604081101561018157600080fd5b5080359060200135610387565b60408051918252519081900360200190f35b6101c6600480360360208110156101b657600080fd5b50356001600160a01b0316610485565b005b61018e6104e1565b61018e6104f1565b6101e06104fb565b604080519115158252519081900360200190f35b6101e06004803603602081101561020a57600080fd5b50356001600160a01b0316610605565b61014f610630565b61018e61063f565b6101c6610657565b61018e61081f565b6101c6610839565b61018e6004803603602081101561025857600080fd5b50356001600160a01b03166108f5565b610270610910565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102ac578181015183820152602001610294565b505050509050019250505060405180910390f35b61018e610a25565b61014f610aae565b6101c6600480360360208110156102e657600080fd5b50356001600160a01b0316610abd565b61018e610b38565b6101c66004803603602081101561031457600080fd5b50356001600160a01b0316610b42565b61018e610d7b565b6101e06004803603602081101561034257600080fd5b50356001600160a01b0316610d85565b6101c66004803603602081101561036857600080fd5b50356001600160a01b0316610e65565b6002546001600160a01b031681565b6000806103926111d7565b9050600073__$5e636ccdd5f89cd6033a7187b9bf4f76b3$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156103da57600080fd5b505af41580156103ee573d6000803e3d6000fd5b505050506040513d602081101561040457600080fd5b50519050600061042a61041d868563ffffffff61127e16565b879063ffffffff6112a816565b905060006104666104598561044d610440611305565b879063ffffffff61138016565b9063ffffffff61127e16565b849063ffffffff6112a816565b9050610478828263ffffffff6113e116565b9450505050505b92915050565b61048d61140b565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006104eb611456565b90505b90565b60006104eb611305565b60006060610507610910565b905060005b81518110156105fc57600082828151811061052357fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561058b57600080fd5b505afa15801561059f573d6000803e3d6000fd5b505050506040513d60208110156105b557600080fd5b50516001600160a01b03161415806105e257506000818152600360205260409020546001600160a01b0316155b156105f357600093505050506104ee565b5060010161050c565b50600191505090565b600061060f611c57565b610618836114cf565b9050610627816000015161157b565b9150505b919050565b6001546001600160a01b031681565b702634b8bab4b230ba34b7b721b0b63632b960791b81565b6060610661610910565b905060005b815181101561081b57600082828151811061067d57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561073357818101518382015260200161071b565b50505050905090810190601f1680156107605780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561077e57600080fd5b505afa158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610666565b5050565b724c69717569646174696f6e446561646c696e6560681b81565b6001546001600160a01b031633146108825760405162461bcd60e51b8152600401808060200182810382526035815260200180611c6f6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006108ff611c57565b610908836114cf565b519392505050565b60608061091b61158d565b60408051600580825260c08201909252919250606091906020820160a0803883390190505090506b53797374656d53746174757360a01b8160008151811061095f57fe5b602002602001018181525050644f696b6f7360d81b8160018151811061098157fe5b6020026020010181815250507f457465726e616c53746f726167654c69717569646174696f6e73000000000000816002815181106109bb57fe5b6020026020010181815250506524b9b9bab2b960d11b816003815181106109de57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600481518110610a0857fe5b602002602001018181525050610a1e82826115de565b9250505090565b60006104eb610a32611456565b73__$5e636ccdd5f89cd6033a7187b9bf4f76b3$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7657600080fd5b505af4158015610a8a573d6000803e3d6000fd5b505050506040513d6020811015610aa057600080fd5b50519063ffffffff61169a16565b6000546001600160a01b031681565b610ac56116af565b6001600160a01b0316336001600160a01b031614610b145760405162461bcd60e51b815260040180806020018281038252603e815260200180611d08603e913960400191505060405180910390fd5b610b1c611c57565b610b25826114cf565b80519091501561081b5761081b826116c3565b60006104eb61180b565b624f4b5360e81b610b51611884565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9457600080fd5b505afa158015610ba8573d6000803e3d6000fd5b505050506040513d6020811015610bbe57600080fd5b505115610c12576040805162461bcd60e51b815260206004820152601b60248201527f5261746520696e76616c6964206f72206e6f7420612073796e74680000000000604482015290519081900360640190fd5b610c1a61189f565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b50505050610c72611c57565b610c7b836114cf565b8051909150610cd1576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420686173206e6f206c69717569646174696f6e207365740000604482015290519081900360640190fd5b6000610cdb6118b9565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d3057600080fd5b505afa158015610d44573d6000803e3d6000fd5b505050506040513d6020811015610d5a57600080fd5b50519050610d666111d7565b8111610d7557610d75846116c3565b50505050565b60006104eb6111d7565b600080610d906118b9565b6001600160a01b031663a311c7c2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610de557600080fd5b505afa158015610df9573d6000803e3d6000fd5b505050506040513d6020811015610e0f57600080fd5b50519050610e1b6111d7565b8111610e2b57600091505061062b565b610e33611c57565b610e3c846114cf565b9050610e4b816000015161157b565b15610e5b5760019250505061062b565b5060009392505050565b624f4b5360e81b610e74611884565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610eb757600080fd5b505afa158015610ecb573d6000803e3d6000fd5b505050506040513d6020811015610ee157600080fd5b505115610f35576040805162461bcd60e51b815260206004820152601b60248201527f5261746520696e76616c6964206f72206e6f7420612073796e74680000000000604482015290519081900360640190fd5b610f3d61189f565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610f7557600080fd5b505afa158015610f89573d6000803e3d6000fd5b505050506000610f97611456565b11610fe9576040805162461bcd60e51b815260206004820152601960248201527f4c69717569646174696f6e20726174696f206e6f742073657400000000000000604482015290519081900360640190fd5b6000610ff361180b565b11611045576040805162461bcd60e51b815260206004820152601960248201527f4c69717569646174696f6e2064656c6179206e6f742073657400000000000000604482015290519081900360640190fd5b61104d611c57565b611056836114cf565b8051909150156110975760405162461bcd60e51b8152600401808060200182810382526027815260200180611d676027913960400191505060405180910390fd5b60006110a16118b9565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156110f657600080fd5b505afa15801561110a573d6000803e3d6000fd5b505050506040513d602081101561112057600080fd5b5051905061112c611456565b81101561116a5760405162461bcd60e51b8152600401808060200182810382526035815260200180611ca46035913960400191505060405180910390fd5b600061118461117761180b565b429063ffffffff61138016565b90506111918582336118cc565b6040805182815290516001600160a01b038716917fc77e4625de0c70adaf3bd1aabb5f22f9eae8f565367c706fc209030c13857996919081900360200190a25050505050565b60006111e16119f9565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124d57600080fd5b505afa158015611261573d6000803e3d6000fd5b505050506040513d602081101561127757600080fd5b5051905090565b6000670de0b6b3a7640000611299848463ffffffff611a1616565b816112a057fe5b049392505050565b6000828211156112ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061130f6119f9565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124d57600080fd5b6000828201838110156113da576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006113da826113ff85670de0b6b3a764000063ffffffff611a1616565b9063ffffffff611a6f16565b6000546001600160a01b031633146114545760405162461bcd60e51b815260040180806020018281038252602f815260200180611cd9602f913960400191505060405180910390fd5b565b60006114606119f9565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124d57600080fd5b6114d7611c57565b6114df611ad9565b6001600160a01b031663bdc963d861150d724c69717569646174696f6e446561646c696e6560681b85611b04565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561154157600080fd5b505afa158015611555573d6000803e3d6000fd5b505050506040513d602081101561156b57600080fd5b5051815260006020820152919050565b6000808211801561047f575050421190565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106115cf57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561160e578160200160208202803883390190505b50905060005b83518110156116505783818151811061162957fe5b602002602001015182828151811061163d57fe5b6020908102919091010152600101611614565b5060005b82518110156116935782818151811061166957fe5b602002602001015182828651018151811061168057fe5b6020908102919091010152600101611654565b5092915050565b60006113da8383670de0b6b3a7640000611b43565b60006104eb6524b9b9bab2b960d11b611b7a565b6116cb611ad9565b6001600160a01b03166393fe42486116f9724c69717569646174696f6e446561646c696e6560681b84611b04565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561172f57600080fd5b505af1158015611743573d6000803e3d6000fd5b5050505061174f611ad9565b6001600160a01b031663043106c061177b702634b8bab4b230ba34b7b721b0b63632b960791b84611b04565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156117b157600080fd5b505af11580156117c5573d6000803e3d6000fd5b50506040805142815290516001600160a01b03851693507f9b6ac8997b4f2edd0a27c1beb32f7c14d522e9c16f46e79daa5a144016bd6c8792509081900360200190a250565b60006118156119f9565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124d57600080fd5b60006104eb6c45786368616e6765526174657360981b611b7a565b60006104eb6b53797374656d53746174757360a01b611b7a565b60006104eb644f696b6f7360d81b611b7a565b6118d4611ad9565b6001600160a01b0316633562fd20611902724c69717569646174696f6e446561646c696e6560681b86611b04565b846040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561194057600080fd5b505af1158015611954573d6000803e3d6000fd5b50505050611960611ad9565b6001600160a01b0316635a2bf25a61198c702634b8bab4b230ba34b7b721b0b63632b960791b86611b04565b836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156119dc57600080fd5b505af11580156119f0573d6000803e3d6000fd5b50505050505050565b60006104eb6e466c657869626c6553746f7261676560881b611b7a565b600082611a255750600061047f565b82820282848281611a3257fe5b04146113da5760405162461bcd60e51b8152600401808060200182810382526021815260200180611d466021913960400191505060405180910390fd5b6000808211611ac5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611ad057fe5b04949350505050565b60006104eb7f457465726e616c53746f726167654c69717569646174696f6e73000000000000611b7a565b6040805160208082019490945260609290921b6bffffffffffffffffffffffff1916828201528051808303603401815260549092019052805191012090565b600080611b5d846113ff87600a870263ffffffff611a1616565b90506005600a820610611b6e57600a015b600a9004949350505050565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816116935760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c1c578181015183820152602001611c04565b50505050905090810190601f168015611c495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60408051808201909152600080825260208201529056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704163636f756e742069737375616e636520726174696f206973206c657373207468616e206c69717569646174696f6e20726174696f4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4c69717569646174696f6e733a204f6e6c79207468652049737375657220636f6e74726163742063616e20706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774163636f756e7420616c726561647920666c616767656420666f72206c69717569646174696f6ea265627a7a72315820a944e88faba82e2a7c84099f42446ced698eae94a3f1a9fe8602d61bda97f0fe64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "deadline",
							"type": "uint256"
						}
					],
					"name": "AccountFlaggedForLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "AccountRemovedFromLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "LIQUIDATION_CALLER",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "LIQUIDATION_DEADLINE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"name": "calculateAmountToFixCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAndRemoveAccountInLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "flagAccountForLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getLiquidationDeadlineForAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isLiquidationDeadlinePassed",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isOpenForLiquidation",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationCollateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "removeAccountInLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xf59cedf416b7eeaa4501a194ad9fcb351c30e3e0a5aee71f4a31c05560cf3266",
				"urls": [
					"bzz-raw://cceb5d94b9b3a05b71aa1486c3506dccdbee2f1296b64cf14cc8d434a89ed3cb",
					"dweb:/ipfs/QmUFXGFfD3rb3PGKmh3U7kTVhoq7eavkGEmng1mN25wUFa"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Liquidations.sol": "Liquidations"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Liquidations.sol": {
						"keccak256": "0xf59cedf416b7eeaa4501a194ad9fcb351c30e3e0a5aee71f4a31c05560cf3266",
						"urls": [
							"bzz-raw://cceb5d94b9b3a05b71aa1486c3506dccdbee2f1296b64cf14cc8d434a89ed3cb",
							"dweb:/ipfs/QmUFXGFfD3rb3PGKmh3U7kTVhoq7eavkGEmng1mN25wUFa"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolEternalStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516114d03803806114d08339818101604052604081101561003357600080fd5b50805160209091015162375f00828280826001600160a01b03811661009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610149576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050504201600a55505061131d806101b36000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806353a47bb711610104578063a209a29c116100a2578063ba69fcaa11610071578063ba69fcaa146105d5578063bdc963d8146105f2578063c9a52d2c1461060f578063f586606614610684576101cf565b8063a209a29c146104cf578063a77aa49e146104ec578063aefc4ccb1461050f578063b3ffbd9e14610517576101cf565b80638267a9ee116100de5780638267a9ee146104705780638da5cb5b1461048d5780639007127b1461049557806393fe4248146104b2576101cf565b806353a47bb7146104345780635a2bf25a1461043c57806379ba509714610468576101cf565b80633562fd201161017157806344bfa56e1161014b57806344bfa56e1461033b57806346ba2d90146103cd5780634c77e5ba146103d557806352f445ca1461040e576101cf565b80633562fd20146102d65780633cc1635c146102f95780633eba9ed214610316576101cf565b8063124f2418116101ad578063124f24181461023f5780631627540c1461025c57806317e7dd221461028257806325cf512d146102b3576101cf565b8063025ec81a146101d4578063043106c0146102035780630c55d92514610222575b600080fd5b6101f1600480360360208110156101ea57600080fd5b50356106f9565b60408051918252519081900360200190f35b6102206004803603602081101561021957600080fd5b503561070b565b005b6102206004803603602081101561023857600080fd5b5035610772565b6102206004803603602081101561025557600080fd5b50356107d5565b6102206004803603602081101561027257600080fd5b50356001600160a01b031661082f565b61029f6004803603602081101561029857600080fd5b503561088b565b604080519115158252519081900360200190f35b610220600480360360408110156102c957600080fd5b50803590602001356108a0565b610220600480360360408110156102ec57600080fd5b50803590602001356108fb565b6102206004803603602081101561030f57600080fd5b5035610956565b6102206004803603604081101561032c57600080fd5b508035906020013515156109b7565b6103586004803603602081101561035157600080fd5b5035610a20565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039257818101518382015260200161037a565b50505050905090810190601f1680156103bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f1610ac1565b6103f2600480360360208110156103eb57600080fd5b5035610ac7565b604080516001600160a01b039092168252519081900360200190f35b6102206004803603602081101561042457600080fd5b50356001600160a01b0316610ae2565b6103f2610b3e565b6102206004803603604081101561045257600080fd5b50803590602001356001600160a01b0316610b4d565b610220610bc4565b6102206004803603602081101561048657600080fd5b5035610c80565b6103f2610cda565b6101f1600480360360208110156104ab57600080fd5b5035610ce9565b610220600480360360208110156104c857600080fd5b5035610cfb565b610358600480360360208110156104e557600080fd5b5035610d55565b6102206004803603604081101561050257600080fd5b5080359060200135610dbf565b6103f2610e1a565b6102206004803603604081101561052d57600080fd5b810190602081018135600160201b81111561054757600080fd5b82018360208201111561055957600080fd5b803590602001918460208302840111600160201b8311171561057a57600080fd5b919390929091602081019035600160201b81111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111600160201b831117156105ca57600080fd5b509092509050610e29565b610220600480360360208110156105eb57600080fd5b5035610fc1565b6101f16004803603602081101561060857600080fd5b5035611021565b6102206004803603604081101561062557600080fd5b81359190810190604081016020820135600160201b81111561064657600080fd5b82018360208201111561065857600080fd5b803590602001918460018302840111600160201b8311171561067957600080fd5b509092509050611033565b6102206004803603604081101561069a57600080fd5b81359190810190604081016020820135600160201b8111156106bb57600080fd5b8201836020820111156106cd57600080fd5b803590602001918460018302840111600160201b831117156106ee57600080fd5b50909250905061109b565b60009081526007602052604090205490565b6002546001600160a01b031633146107545760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260056020526040902080546001600160a01b0319169055565b6002546001600160a01b031633146107bb5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526006602052604081206107d291611148565b50565b6002546001600160a01b0316331461081e5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260076020526040812055565b6108376110fd565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60009081526008602052604090205460ff1690565b6002546001600160a01b031633146108e95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526007602052604090912055565b6002546001600160a01b031633146109445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526003602052604090912055565b6002546001600160a01b0316331461099f5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b6000908152600860205260409020805460ff19169055565b6002546001600160a01b03163314610a005760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600091825260086020526040909120805460ff1916911515919091179055565b60008181526006602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050509050919050565b600a5481565b6000908152600560205260409020546001600160a01b031690565b610aea6110fd565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b03163314610b965760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526005602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610c0d5760405162461bcd60e51b81526004018080602001828103825260358152602001806112286035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b03163314610cc95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260096020526040812055565b6000546001600160a01b031681565b60009081526009602052604090205490565b6002546001600160a01b03163314610d445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260036020526040812055565b60008181526004602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b6002546001600160a01b03163314610e085760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b031681565b610e316110fd565b600a544210610e715760405162461bcd60e51b81526004018080602001828103825260298152602001806112c06029913960400191505060405180910390fd5b828114610eb7576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b60ff8116841115610fba5730633562fd20721b185cdd17d9995957ddda5d1a191c985dd85b606a1b878760ff8616818110610ef157fe5b905060200201356001600160a01b031660405160200180838152602001826001600160a01b03166001600160a01b031660601b8152601401925050506040516020818303038152906040528051906020012085858560ff16818110610f5257fe5b905060200201356040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015610f9657600080fd5b505af1158015610faa573d6000803e3d6000fd5b505060019092019150610eba9050565b5050505050565b6002546001600160a01b0316331461100a5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526004602052604081206107d291611148565b60009081526003602052604090205490565b6002546001600160a01b0316331461107c5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260066020526040902061109590838361118c565b50505050565b6002546001600160a01b031633146110e45760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260046020526040902061109590838361118c565b6000546001600160a01b031633146111465760405162461bcd60e51b815260040180806020018281038252602f81526020018061125d602f913960400191505060405180910390fd5b565b50805460018160011615610100020316600290046000825580601f1061116e57506107d2565b601f0160209004906000526020600020908101906107d2919061120a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111cd5782800160ff198235161785556111fa565b828001600101855582156111fa579182015b828111156111fa5782358255916020019190600101906111df565b5061120692915061120a565b5090565b61122491905b808211156112065760008155600101611210565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a723158203840734ebffbcf5f494c5a9465223f292481a39838893db145f83597c969dcdd64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBooleanValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytesValue",
					"outputs": [
						{
							"internalType": "bytes",
							"name": "",
							"type": "bytes"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getStringValue",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "feePeriodIDs",
							"type": "uint256[]"
						}
					],
					"name": "importFeeWithdrawalData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes",
							"name": "value",
							"type": "bytes"
						}
					],
					"name": "setBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "value",
							"type": "string"
						}
					],
					"name": "setStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xbc430d9462c70253803a928413e6f422956f8cc5be06e2bdb6d8c4ff79774bef",
				"urls": [
					"bzz-raw://76924a859261b2f95e34f1b2d8bfcfd24a716aaad9588196d1b677572f8653a2",
					"dweb:/ipfs/QmfVc1xYabFMoiSWUzZs9RpgaRV77PtAm59C7FTZVBh7sU"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePoolEternalStorage.sol": "FeePoolEternalStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FeePoolEternalStorage.sol": {
						"keccak256": "0xbc430d9462c70253803a928413e6f422956f8cc5be06e2bdb6d8c4ff79774bef",
						"urls": [
							"bzz-raw://76924a859261b2f95e34f1b2d8bfcfd24a716aaad9588196d1b677572f8653a2",
							"dweb:/ipfs/QmfVc1xYabFMoiSWUzZs9RpgaRV77PtAm59C7FTZVBh7sU"
						]
					}
				},
				"version": 1
			}
		},
		"FeePool": {
			"bytecode": "6080604052631bd554d160e21b6007553480156200001c57600080fd5b50604051620045c2380380620045c28339810160408190526200003f9162000226565b8080621baf8085856001600160a01b038116620000795760405162461bcd60e51b8152600401620000709062000348565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c691849062000310565b60405180910390a1506000546001600160a01b0316620000fa5760405162461bcd60e51b8152600401620000709062000336565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e906200014790839062000300565b60405180910390a1504201600455600580546001600160a01b0319166001600160a01b0392909216919091179055506001620001846000620001e7565b80546001600160401b0319166001600160401b039290921691909117905542620001af6000620001e7565b80546001600160401b03929092166801000000000000000002600160401b600160801b031990921691909117905550620003a3915050565b60006008600260ff16836016540181620001fd57fe5b06600281106200020957fe5b6007020192915050565b8051620002208162000389565b92915050565b6000806000606084860312156200023c57600080fd5b60006200024a868662000213565b93505060206200025d8682870162000213565b9250506040620002708682870162000213565b9150509250925092565b620002858162000375565b82525050565b620002858162000363565b6000620002a56011836200035a565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620002d46019836200035a565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200022082846200027a565b604081016200032082856200027a565b6200032f60208301846200028b565b9392505050565b60208082528101620002208162000296565b602080825281016200022081620002c5565b90815260200190565b60006001600160a01b03821662000220565b600062000220826000620002208262000363565b620003948162000363565b8114620003a057600080fd5b50565b61420f80620003b36000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80636466f45e11610160578063b410a034116100d8578063e0e6393d1161008c578063ec55688911610071578063ec55688914610497578063f43d41611461049f578063fd1f498d146104b257610277565b8063e0e6393d14610487578063eb1edd611461048f57610277565b8063cff2ddad116100bd578063cff2ddad14610462578063d294f09314610477578063d67bdd251461047f57610277565b8063b410a03414610447578063bc67f8321461044f57610277565b806379ba50971161012f5780638da5cb5b116101145780638da5cb5b1461042457806397107d6d1461042c578063ac8341931461043f57610277565b806379ba509714610407578063899ffef41461040f57610277565b80636466f45e146103d15780636de813f1146103e457806373941b96146103ec57806374185360146103ff57610277565b80632e227eeb116101f357806346ba2d90116101c2578063569249d0116101a7578063569249d0146103ae57806359a2f19f146103b6578063614d08f8146103c957610277565b806346ba2d901461039157806353a47bb71461039957610277565b80632e227eeb1461033b57806333140016146103435780633ebc457a146103635780633fcd22401461036b57610277565b80631627540c1161024a57806322425fa41161022f57806322425fa41461030b57806322bf55ef146103135780632af64bd31461032657610277565b80631627540c146102ee578063166eae651461030357610277565b806304f3bcec1461027c57806307ea50cd1461029a5780630813071c146102ba5780630de58615146102cd575b600080fd5b6102846104c5565b6040516102919190613eb2565b60405180910390f35b6102ad6102a83660046131df565b6104d4565b6040516102919190613dea565b6102ad6102c8366004613223565b6105a9565b6102e06102db3660046131df565b6106bb565b604051610291929190613e06565b6103016102fc3660046131df565b61073d565b005b6102e061079b565b6102ad610849565b6103016103213660046132b7565b610859565b61032e6108b6565b6040516102919190613ddc565b6102e06109cd565b6103566103513660046131df565b610b54565b6040516102919190613dbd565b610301610d4b565b61037e6103793660046132b7565b610f53565b604051610291979695949392919061402f565b6102ad611001565b6103a1611007565b6040516102919190613d43565b6102ad611016565b61032e6103c43660046131df565b611071565b6102ad611083565b61032e6103df3660046131df565b6110a7565b6102ad6111d3565b6103016103fa366004613305565b611228565b610301611310565b610301611462565b6104176114fe565b6040516102919190613dcb565b6103a1611858565b61030161043a3660046131df565b611867565b6102ad6118ba565b6102ad611966565b61030161045d3660046131df565b611970565b61046a61199a565b6040516102919190614097565b61032e61199f565b6103a1611a16565b6102ad611a25565b6103a1611a2f565b610284611a47565b6103016104ad366004613324565b611a56565b6103016104c03660046132b7565b611c06565b6005546001600160a01b031681565b60006104de611c72565b6001600160a01b031663bdc963d87f6c6173745f6665655f7769746864726177616c000000000000000000000000008460405160200161051f929190613cdc565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016105519190613dea565b60206040518083038186803b15801561056957600080fd5b505afa15801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105a1919081019061327b565b90505b919050565b60008115806105b9575060028210155b156105c6575060006106b5565b6105d260018303611c9d565b5468010000000000000000900467ffffffffffffffff166105f5575060006106b5565b6105fd611cc7565b6001600160a01b0316638ced14df846008856002811061061957fe5b60070201546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610662929167ffffffffffffffff1690600401613d7a565b60206040518083038186803b15801561067a57600080fd5b505afa15801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106b2919081019061327b565b90505b92915050565b6000806106c66130ee565b6106cf84610b54565b905060008060015b6002811015610730576106fc8482600281106106ef57fe5b6020020151518490611cf2565b925061072684826002811061070d57fe5b602002015160016020020151839063ffffffff611cf216565b91506001016106d7565b509093509150505b915091565b610745611d17565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610790908390613d43565b60405180910390a150565b6000806000806107ca7f6578743a41676772656761746f7249737375656453796e746873000000000000611d43565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061083a91908101906133c0565b50919791965090945050505050565b6000610853611da0565b90505b90565b61086233611e67565b6108875760405162461bcd60e51b815260040161087e90613ed1565b60405180910390fd5b6108a5816108956000611c9d565b600301549063ffffffff611cf216565b6108af6000611c9d565b6003015550565b600060606108c26114fe565b905060005b81518110156109c45760008282815181106108de57fe5b602090810291909101810151600081815260069092526040918290205460055492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a7219061092f908590600401613dea565b60206040518083038186803b15801561094757600080fd5b505afa15801561095b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061097f9190810190613205565b6001600160a01b03161415806109aa57506000818152600660205260409020546001600160a01b0316155b156109bb5760009350505050610856565b506001016108c7565b50600191505090565b6000806000806109fc7f6578743a41676772656761746f7249737375656453796e746873000000000000611d43565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a6c91908101906133c0565b50935050925050600080610a9f7f6578743a41676772656761746f7244656274526174696f000000000000000000611d43565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610ad757600080fd5b505afa158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b0f91908101906133c0565b50919450909250859150508215610b3557610b30818463ffffffff61200b16565b610b38565b60005b9650818410610b475781610b49565b835b955050505050509091565b610b5c6130ee565b600080610b67611cc7565b6040517fe6d24bbd0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063e6d24bbd90610baf908790600401613d43565b60206040518083038186803b158015610bc757600080fd5b505afa158015610bdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bff919081019061327b565b9150600080610c0f600085612024565b8651829052865160200181905290925090506000610c2c876104d4565b905060015b8015610d40576000610c4282611c9d565b5467ffffffffffffffff16905080831015610d36576040517f8ced14df0000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638ced14df90610ca8908c9067ffffffffffffffff861690600401613d7a565b60206040518083038186803b158015610cc057600080fd5b505afa158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cf8919081019061327b565b9650610d048288612024565b909550935084888360028110610d1657fe5b60200201515283888360028110610d2957fe5b6020020151600160200201525b5060001901610c31565b505050505050919050565b610d53612088565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506000610dad611da0565b11610dca5760405162461bcd60e51b815260040161087e90614011565b610dd2611da0565b4203610dde6000611c9d565b5468010000000000000000900467ffffffffffffffff161115610e135760405162461bcd60e51b815260040161087e90613ef1565b6000610e1d61079b565b5090506000610e2a6109cd565b509050610e3782826120b3565b6005546040517fdacb2d010000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063dacb2d0190610ea0907f4f696b6f73427269646765546f4f7074696d69736d000000000000000000000090600401613e34565b60206040518083038186803b158015610eb857600080fd5b505afa158015610ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ef09190810190613205565b6001600160a01b031663b9958ab883836040518363ffffffff1660e01b8152600401610f1d929190613e06565b600060405180830381600087803b158015610f3757600080fd5b505af1158015610f4b573d6000803e3d6000fd5b505050505050565b6000806000806000806000610f6661311b565b610f6f89611c9d565b6040805161010081018252825467ffffffffffffffff80821680845268010000000000000000909204166020830181905260018501549383019390935260028401546060830152600384015460808301819052600485015460a08401819052600586015460c0850181905260069096015460e0909401849052919e60009e50939c509a50985091965090945092505050565b60045481565b6001546001600160a01b031681565b60008060015b600281101561106b5761104261103182611c9d565b60030154839063ffffffff611cf216565b915061106161105082611c9d565b60040154839063ffffffff61239a16565b915060010161101c565b50905090565b600061107c826123c2565b5092915050565b7f466565506f6f6c0000000000000000000000000000000000000000000000000081565b60006110b1612088565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156110e957600080fd5b505afa1580156110fd573d6000803e3d6000fd5b505050506111096124b6565b6111116124f5565b6003546040517f21f4ae570000000000000000000000000000000000000000000000000000000081526001600160a01b03928316926321f4ae579261115e92879290911690600401613d5f565b60206040518083038186803b15801561117657600080fd5b505afa15801561118a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111ae919081019061325d565b6111ca5760405162461bcd60e51b815260040161087e90613f71565b6105a182612520565b60008060015b600281101561106b576111ff6111ee82611c9d565b60050154839063ffffffff611cf216565b915061121e61120d82611c9d565b60060154839063ffffffff61239a16565b91506001016111d9565b333014806112e657506005546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190611281907f4f696b6f73427269646765546f4261736500000000000000000000000000000090600401613dea565b60206040518083038186803b15801561129957600080fd5b505afa1580156112ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112d19190810190613205565b6001600160a01b0316336001600160a01b0316145b6113025760405162461bcd60e51b815260040161087e90613fb1565b61130c82826120b3565b5050565b606061131a6114fe565b905060005b815181101561130c57600082828151811061133657fe5b602002602001015190506000600560009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016113789190613d2d565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016113a4929190613e14565b60206040518083038186803b1580156113bc57600080fd5b505afa1580156113d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113f49190810190613205565b6000838152600660205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906114509084908490613df8565b60405180910390a1505060010161131f565b6001546001600160a01b0316331461148c5760405162461bcd60e51b815260040161087e90613ee1565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926114cf926001600160a01b0391821692911690613d5f565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080611509612615565b60408051600e8082526101e0820190925291925060609190602082016101c0803883390190505090507f53797374656d53746174757300000000000000000000000000000000000000008160008151811061156057fe5b6020026020010181815250507f4f696b6f734465627453686172650000000000000000000000000000000000008160018151811061159a57fe5b6020026020010181815250507f466565506f6f6c457465726e616c53746f726167650000000000000000000000816002815181106115d457fe5b6020026020010181815250507f45786368616e67657200000000000000000000000000000000000000000000008160038151811061160e57fe5b6020026020010181815250506524b9b9bab2b960d11b8160048151811061163157fe5b6020026020010181815250507f526577617264457363726f7756320000000000000000000000000000000000008160058151811061166b57fe5b6020026020010181815250507f44656c6567617465417070726f76616c73000000000000000000000000000000816006815181106116a557fe5b6020026020010181815250507f52657761726473446973747269627574696f6e00000000000000000000000000816007815181106116df57fe5b6020026020010181815250507f436f6c6c61746572616c4d616e616765720000000000000000000000000000008160088151811061171957fe5b6020026020010181815250507f57726170706572466163746f72790000000000000000000000000000000000008160098151811061175357fe5b6020026020010181815250507f457468657257726170706572000000000000000000000000000000000000000081600a8151811061178d57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600b815181106117c757fe5b6020026020010181815250507f6578743a41676772656761746f7244656274526174696f00000000000000000081600c8151811061180157fe5b6020026020010181815250507f467574757265734d61726b65744d616e6167657200000000000000000000000081600d8151811061183b57fe5b6020026020010181815250506118518282612674565b9250505090565b6000546001600160a01b031681565b61186f611d17565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e90610790908390613d51565b60006108536119526118ca612729565b73__$f9217daff40bcb29719cec84f7ab900933$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561190e57600080fd5b505af4158015611922573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611946919081019061327b565b9063ffffffff611cf216565b61195a6127a0565b9063ffffffff61281716565b60006108536127a0565b611978612841565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600281565b60006119a9612088565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b50505050611a016124b6565b600354610853906001600160a01b0316612520565b6003546001600160a01b031681565b6000610853612729565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b611a5e61286b565b6004544210611a7f5760405162461bcd60e51b815260040161087e90613fd1565b60028710611a9f5760405162461bcd60e51b815260040161087e90613ff1565b6040518061010001604052808767ffffffffffffffff1681526020018667ffffffffffffffff16815260200160008152602001600081526020018581526020018481526020018381526020018281525060088860028110611afc57fe5b8251600791909102919091018054602084015167ffffffffffffffff90811668010000000000000000026fffffffffffffffff0000000000000000199190941667ffffffffffffffff19909216919091171691909117815560408201516001820155606082015160028201556080820151600382015560a0820151600482015560c0820151600582015560e09091015160069091015586611bfd57611b9f6128d9565b6001600160a01b03166331e6da5a876040518263ffffffff1660e01b8152600401611bca9190614021565b600060405180830381600087803b158015611be457600080fd5b505af1158015611bf8573d6000803e3d6000fd5b505050505b50505050505050565b611c0e6124b6565b611c166128ed565b6003546001600160a01b03908116911614611c435760405162461bcd60e51b815260040161087e90613f51565b611c6181611c516000611c9d565b600501549063ffffffff611cf216565b611c6b6000611c9d565b6005015550565b60006108537f466565506f6f6c457465726e616c53746f726167650000000000000000000000611d43565b60006008600260ff16836016540181611cb257fe5b0660028110611cbd57fe5b6007020192915050565b60006108537f4f696b6f73446562745368617265000000000000000000000000000000000000611d43565b6000828201838110156106b25760405162461bcd60e51b815260040161087e90613f11565b6000546001600160a01b03163314611d415760405162461bcd60e51b815260040161087e90613f81565b565b60008181526006602090815260408083205490516001600160a01b039091169182151591611d7391869101613d0d565b6040516020818303038152906040529061107c5760405162461bcd60e51b815260040161087e9190613ec0565b6000611daa612918565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f666565506572696f644475726174696f6e0000000000000000000000000000006040518363ffffffff1660e01b8152600401611e17929190613e06565b60206040518083038186803b158015611e2f57600080fd5b505afa158015611e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610853919081019061327b565b6000611e71612943565b6001600160a01b0316826001600160a01b03161480611f1357506000611e956128d9565b6001600160a01b03166316b2213f846040518263ffffffff1660e01b8152600401611ec09190613d43565b60206040518083038186803b158015611ed857600080fd5b505afa158015611eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f10919081019061327b565b14155b80611f9c5750611f2161296e565b6001600160a01b031663b38988f7836040518263ffffffff1660e01b8152600401611f4c9190613d43565b60206040518083038186803b158015611f6457600080fd5b505afa158015611f78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f9c919081019061325d565b80611fbf5750611faa612999565b6001600160a01b0316826001600160a01b0316145b80611fe25750611fcd6129c4565b6001600160a01b0316826001600160a01b0316145b806105a15750611ff06129ef565b6001600160a01b0316826001600160a01b0316149050919050565b60006106b283836b033b2e3c9fd0803ce8000000612a1a565b6000808261203757506000905080612081565b600061204285611c9d565b9050600061205d85836003015461281790919063ffffffff16565b9050600061207886846005015461281790919063ffffffff16565b91945090925050505b9250929050565b60006108537f53797374656d5374617475730000000000000000000000000000000000000000611d43565b6120bb6129ef565b6001600160a01b031663bb57ad206040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156120f557600080fd5b505af1158015612109573d6000803e3d6000fd5b505050506121156129c4565b6001600160a01b031663bb57ad206040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561214f57600080fd5b505af1158015612163573d6000803e3d6000fd5b50505050806121726000611c9d565b60020155816121816000611c9d565b60010155600061219081611c9d565b9050600061219e6001611c9d565b90506121c382600301546119468360040154846003015461239a90919063ffffffff16565b6121cd6000611c9d565b600301556005808301546006830154918301546121f492611946919063ffffffff61239a16565b6121fe6000611c9d565b6005015560165461223b9060029061222f90600190612223908463ffffffff611cf216565b9063ffffffff61239a16565b9063ffffffff612a5f16565b60168190556008906002811061224d57fe5b6007020180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168155600060018201819055600282018190556003820181905560048201819055600582018190556006909101819055429081906122b190611c9d565b805467ffffffffffffffff191667ffffffffffffffff92909216919091179055426122dc6000611c9d565b805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff0000000000000000199092169190911790556123196128d9565b6001600160a01b03166331e6da5a826040518263ffffffff1660e01b81526004016123449190614021565b600060405180830381600087803b15801561235e57600080fd5b505af1158015612372573d6000803e3d6000fd5b505050506123936123836001611c9d565b5467ffffffffffffffff16612a8f565b5050505050565b6000828211156123bc5760405162461bcd60e51b815260040161087e90613f21565b50900390565b6000806000806123d06128d9565b6001600160a01b031663ae3bbbbb866040518263ffffffff1660e01b81526004016123fb9190613d43565b604080518083038186803b15801561241257600080fd5b505afa158015612426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061244a91908101906132d5565b9150915060006124586127a0565b90508083101561247057506001935091506107389050565b600061248d6124806118ca612729565b839063ffffffff61281716565b9050808411156124a7576000839550955050505050610738565b50600194509092505050915091565b6002546001600160a01b031633148015906124dc57506003546001600160a01b03163314155b15611d4157600380546001600160a01b03191633179055565b60006108537f44656c6567617465417070726f76616c73000000000000000000000000000000611d43565b6000808080808080612531886123c2565b91509150816125525760405162461bcd60e51b815260040161087e90613f91565b80156125705760405162461bcd60e51b815260040161087e90613fc1565b612579886106bb565b90945092508315158061258c5750600083115b6125a85760405162461bcd60e51b815260040161087e90613f41565b6125c6886125b66001611c9d565b5467ffffffffffffffff16612b47565b83156125e1576125d584612bc4565b94506125e18886612c88565b82156125fc576125f083612e5c565b95506125fc8887612f1e565b612607888688612f98565b506001979650505050505050565b604080516001808252818301909252606091602080830190803883390190505090507f466c657869626c6553746f7261676500000000000000000000000000000000008160008151811061266557fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156126a4578160200160208202803883390190505b50905060005b83518110156126e6578381815181106126bf57fe5b60200260200101518282815181106126d357fe5b60209081029190910101526001016126aa565b5060005b825181101561107c578281815181106126ff57fe5b602002602001015182828651018151811061271657fe5b60209081029190910101526001016126ea565b6000612733612918565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f7461726765745468726573686f6c6400000000000000000000000000000000006040518363ffffffff1660e01b8152600401611e17929190613e06565b60006127aa612918565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f69737375616e6365526174696f000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611e17929190613e06565b6000670de0b6b3a7640000612832848463ffffffff61305416565b8161283957fe5b049392505050565b6002546001600160a01b03163314611d415760405162461bcd60e51b815260040161087e90614001565b6002546001600160a01b0316331480159061289157506003546001600160a01b03163314155b156128a957600380546001600160a01b031916331790555b6000546003546001600160a01b03908116911614611d415760405162461bcd60e51b815260040161087e90613f01565b60006108536524b9b9bab2b960d11b611d43565b60006108537f52657761726473446973747269627574696f6e00000000000000000000000000611d43565b60006108537f466c657869626c6553746f726167650000000000000000000000000000000000611d43565b60006108537f45786368616e6765720000000000000000000000000000000000000000000000611d43565b60006108537f436f6c6c61746572616c4d616e61676572000000000000000000000000000000611d43565b60006108537f467574757265734d61726b65744d616e61676572000000000000000000000000611d43565b60006108537f57726170706572466163746f7279000000000000000000000000000000000000611d43565b60006108537f4574686572577261707065720000000000000000000000000000000000000000611d43565b600080612a4084612a3487600a870263ffffffff61305416565b9063ffffffff61308e16565b90506005600a820610612a5157600a015b600a900490505b9392505050565b600081612a7e5760405162461bcd60e51b815260040161087e90613f61565b818381612a8757fe5b069392505050565b6002546040516001600160a01b039091169063907dff9790612ab5908490602001613dea565b6040516020818303038152906040526001604051612ad290613d38565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168252612b1993929160009081908190600401613e53565b600060405180830381600087803b158015612b3357600080fd5b505af1158015612393573d6000803e3d6000fd5b612b4f611c72565b6001600160a01b0316633562fd207f6c6173745f6665655f7769746864726177616c0000000000000000000000000084604051602001612b90929190613cdc565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b8152600401610f1d929190613e06565b6000818160015b6002811015612c80576000612bdf82611c9d565b6004015490506000612c0482612bf485611c9d565b600301549063ffffffff61239a16565b90508015612c75576000858210612c1b5785612c1d565b815b9050612c2f838263ffffffff611cf216565b612c3885611c9d565b60040155612c4c868263ffffffff61239a16565b9550612c5e858263ffffffff611cf216565b945085612c73578496505050505050506105a4565b505b505060001901612bcb565b509392505050565b816001600160a01b03811673feefeefeefeefeefeefeefeefeefeefeefeefeef1415612cc65760405162461bcd60e51b815260040161087e90613fe1565b6000612cd06128d9565b6001600160a01b031663326080396007546040518263ffffffff1660e01b8152600401612cfd9190613dea565b60206040518083038186803b158015612d1557600080fd5b505afa158015612d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d4d9190810190613299565b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081529091506001600160a01b03821690639dc29fac90612dab9073feefeefeefeefeefeefeefeefeefeefeefeefeef908790600401613d7a565b600060405180830381600087803b158015612dc557600080fd5b505af1158015612dd9573d6000803e3d6000fd5b50506040517f867904b40000000000000000000000000000000000000000000000000000000081526001600160a01b038416925063867904b49150612e249087908790600401613d7a565b600060405180830381600087803b158015612e3e57600080fd5b505af1158015612e52573d6000803e3d6000fd5b5050505050505050565b6000818160015b6002811015612c80576000612e97612e7a83611c9d565b60060154612e8784611c9d565b600501549063ffffffff61239a16565b90508015612f14576000848210612eae5784612eb0565b815b9050612ecf81612ebf85611c9d565b600601549063ffffffff611cf216565b612ed884611c9d565b60060155612eec858263ffffffff61239a16565b9450612efe848263ffffffff611cf216565b935084612f125783955050505050506105a4565b505b5060001901612e63565b816001600160a01b03811673feefeefeefeefeefeefeefeefeefeefeefeefeef1415612f5c5760405162461bcd60e51b815260040161087e90613fe1565b6301dfe200612f696130c3565b6001600160a01b0316631bb47b448585846040518463ffffffff1660e01b8152600401612e2493929190613d95565b6002546040516001600160a01b039091169063907dff9790612fc290869086908690602001613d95565b6040516020818303038152906040526001604051612fdf90613d02565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16825261302693929160009081908190600401613e53565b600060405180830381600087803b15801561304057600080fd5b505af1158015611bfd573d6000803e3d6000fd5b600082613063575060006106b5565b8282028284828161307057fe5b04146106b25760405162461bcd60e51b815260040161087e90613fa1565b60008082116130af5760405162461bcd60e51b815260040161087e90613f31565b60008284816130ba57fe5b04949350505050565b60006108537f526577617264457363726f775632000000000000000000000000000000000000611d43565b60405180604001604052806002905b613105613174565b8152602001906001900390816130fd5790505090565b604051806101000160405280600067ffffffffffffffff168152602001600067ffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180604001604052806002906020820280388339509192915050565b80356106b581614191565b80516106b581614191565b80516106b5816141a8565b80516106b5816141b1565b80516106b5816141ba565b80356106b5816141b1565b80516106b5816141c3565b6000602082840312156131f157600080fd5b60006131fd8484613192565b949350505050565b60006020828403121561321757600080fd5b60006131fd848461319d565b6000806040838503121561323657600080fd5b60006132428585613192565b9250506020613253858286016131c9565b9150509250929050565b60006020828403121561326f57600080fd5b60006131fd84846131a8565b60006020828403121561328d57600080fd5b60006131fd84846131b3565b6000602082840312156132ab57600080fd5b60006131fd84846131be565b6000602082840312156132c957600080fd5b60006131fd84846131c9565b600080604083850312156132e857600080fd5b60006132f485856131b3565b9250506020613253858286016131a8565b6000806040838503121561331857600080fd5b600061324285856131c9565b600080600080600080600060e0888a03121561333f57600080fd5b600061334b8a8a6131c9565b975050602061335c8a828b016131c9565b965050604061336d8a828b016131c9565b955050606061337e8a828b016131c9565b945050608061338f8a828b016131c9565b93505060a06133a08a828b016131c9565b92505060c06133b18a828b016131c9565b91505092959891949750929550565b600080600080600060a086880312156133d857600080fd5b60006133e488886131d4565b95505060206133f5888289016131b3565b9450506040613406888289016131b3565b9350506060613417888289016131b3565b9250506080613428888289016131d4565b9150509295509295909350565b6000613441838361352b565b505060400190565b60006134558383613580565b505060200190565b6134668161411c565b82525050565b613466816140be565b613466613481826140be565b614170565b61348f816140ab565b61349981846105a4565b92506134a482610856565b8060005b83811015610f4b5781516134bc8782613435565b96506134c7836140a5565b9250506001016134a8565b60006134dd826140b1565b6134e781856140b5565b93506134f2836140a5565b8060005b8381101561352057815161350a8882613449565b9750613515836140a5565b9250506001016134f6565b509495945050505050565b613534816140ab565b61353e81846105a4565b925061354982610856565b8060005b83811015610f4b5781516135618782613449565b965061356c836140a5565b92505060010161354d565b613466816140c9565b61346681610856565b61346661359582610856565b610856565b60006135a5826140b1565b6135af81856140b5565b93506135bf818560208601614140565b6135c881614181565b9093019392505050565b613466816140ce565b61346681614127565b61346681614135565b60006135fa6027836140b5565b7f4d697373696e6720636f6e74726163743a204f696b6f73427269646765546f4f81527f7074696d69736d00000000000000000000000000000000000000000000000000602082015260400192915050565b60006136596017836140b5565b7f4f6e6c7920496e7465726e616c20436f6e747261637473000000000000000000815260200192915050565b60006136926035836140b5565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527f2063616e20616363657074206f776e6572736869700000000000000000000000602082015260400192915050565b60006136f1601d836140b5565b7f546f6f206561726c7920746f20636c6f73652066656520706572696f64000000815260200192915050565b600061372a6013836140b5565b7f4f776e6572206f6e6c792066756e6374696f6e00000000000000000000000000815260200192915050565b60006137636024836105a4565b7f46656573436c61696d656428616464726573732c75696e743235362c75696e7481527f3235362900000000000000000000000000000000000000000000000000000000602082015260240192915050565b60006137c2601b836140b5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006137fb601e836140b5565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613834601a836140b5565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061386d6040836140b5565b7f4e6f2066656573206f72207265776172647320617661696c61626c6520666f7281527f20706572696f642c206f72206665657320616c726561647920636c61696d6564602082015260400192915050565b60006138cc6011836105a4565b7f4d697373696e6720616464726573733a20000000000000000000000000000000815260110192915050565b60006139056018836140b5565b7f52657761726473446973747269627574696f6e206f6e6c790000000000000000815260200192915050565b600061393e6018836140b5565b7f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815260200192915050565b6000613977601f836140b5565b7f4e6f7420617070726f76656420746f20636c61696d206f6e20626568616c6600815260200192915050565b60006139b0602f836140b5565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681527f6f726d207468697320616374696f6e0000000000000000000000000000000000602082015260400192915050565b6000613a0f601f836140b5565b7f432d526174696f2062656c6f772070656e616c7479207468726573686f6c6400815260200192915050565b6000613a486021836140b5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000613aa7601b836140b5565b7f4f6e6c792076616c69642072656c617965722063616e2063616c6c0000000000815260200192915050565b6000613ae0601e836140b5565b7f412073796e7468206f72204f4b53207261746520697320696e76616c69640000815260200192915050565b6000613b196029836140b5565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e2064757281527f696e672073657475700000000000000000000000000000000000000000000000602082015260400192915050565b6000613b786019836105a4565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613bb16017836140b5565b7f4665652061646472657373206e6f7420616c6c6f776564000000000000000000815260200192915050565b6000613bea6018836140b5565b7f696e76616c69642066656520706572696f6420696e6465780000000000000000815260200192915050565b6000613c236018836105a4565b7f466565506572696f64436c6f7365642875696e74323536290000000000000000815260180192915050565b6000613c5c6017836140b5565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b6000613c95601b836140b5565b7f46656520506572696f64204475726174696f6e206e6f74207365740000000000815260200192915050565b613466816140d9565b613466816140fa565b61346681614107565b6000613ce88285613589565b602082019150613cf88284613475565b5060140192915050565b60006106b582613756565b6000613d18826138bf565b9150613d248284613589565b50602001919050565b6000613d1882613b6b565b60006106b582613c16565b602081016106b5828461346c565b602081016106b5828461345d565b60408101613d6d828561346c565b612a58602083018461346c565b60408101613d88828561346c565b612a586020830184613580565b60608101613da3828661346c565b613db06020830185613580565b6131fd6040830184613580565b608081016106b58284613486565b602080825281016106b281846134d2565b602081016106b58284613577565b602081016106b58284613580565b60408101613d6d8285613580565b60408101613d888285613580565b60408101613e228285613580565b81810360208301526131fd818461359a565b60408101613e428284613580565b81810360208301526106b2816135ed565b60c08082528101613e64818961359a565b9050613e7360208301886135e4565b613e806040830187613580565b613e8d60608301866135db565b613e9a60808301856135db565b613ea760a08301846135db565b979650505050505050565b602081016106b582846135d2565b602080825281016106b2818461359a565b602080825281016105a18161364c565b602080825281016105a181613685565b602080825281016105a1816136e4565b602080825281016105a18161371d565b602080825281016105a1816137b5565b602080825281016105a1816137ee565b602080825281016105a181613827565b602080825281016105a181613860565b602080825281016105a1816138f8565b602080825281016105a181613931565b602080825281016105a18161396a565b602080825281016105a1816139a3565b602080825281016105a181613a02565b602080825281016105a181613a3b565b602080825281016105a181613a9a565b602080825281016105a181613ad3565b602080825281016105a181613b0c565b602080825281016105a181613ba4565b602080825281016105a181613bdd565b602080825281016105a181613c4f565b602080825281016105a181613c88565b602081016106b58284613cc1565b60e0810161403d828a613cca565b61404a6020830189613cca565b6140576040830188613cca565b6140646060830187613580565b6140716080830186613580565b61407e60a0830185613580565b61408b60c0830184613580565b98975050505050505050565b602081016106b58284613cd3565b60200190565b50600290565b5190565b90815260200190565b60006105a1826140ee565b151590565b60006105a1826140be565b6fffffffffffffffffffffffffffffffff1690565b6001600160a01b031690565b67ffffffffffffffff1690565b60ff1690565b69ffffffffffffffffffff1690565b60006105a1826140ce565b60006105a161359583610856565b60006105a182610856565b60005b8381101561415b578181015183820152602001614143565b8381111561416a576000848401525b50505050565b60006105a18260006105a18261418b565b601f01601f191690565b60601b90565b61419a816140be565b81146141a557600080fd5b50565b61419a816140c9565b61419a81610856565b61419a816140ce565b61419a8161410d56fea365627a7a723158201561c5bb00b63714219df8d9d330383adea4b3c071dff6738c2275a74f79c1156c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feePeriodId",
							"type": "uint256"
						}
					],
					"name": "FeePeriodClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "oUSDAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "oksRewards",
							"type": "uint256"
						}
					],
					"name": "FeesClaimed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_ADDRESS",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_PERIOD_LENGTH",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allNetworksDebtSharesSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "sharesSupply",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "updatedAt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allNetworksOksBackedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "updatedAt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "claimFees",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "claimingForAddress",
							"type": "address"
						}
					],
					"name": "claimOnBehalf",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "closeCurrentFeePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "allNetworksOksBackedDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "allNetworksDebtSharesSupply",
							"type": "uint256"
						}
					],
					"name": "closeSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "period",
							"type": "uint256"
						}
					],
					"name": "effectiveDebtRatioForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePeriodDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "feesAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "feesByPeriod",
					"outputs": [
						{
							"internalType": "uint256[2][2]",
							"name": "results",
							"type": "uint256[2][2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_claimingAddress",
							"type": "address"
						}
					],
					"name": "getLastFeeWithdrawal",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getPenaltyThresholdRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "feePeriodIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feePeriodId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startTime",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesClaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsClaimed",
							"type": "uint256"
						}
					],
					"name": "importFeePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isFeesClaimable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "feesClaimable",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "recentFeePeriods",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "feePeriodId",
							"type": "uint64"
						},
						{
							"internalType": "uint64",
							"name": "unused",
							"type": "uint64"
						},
						{
							"internalType": "uint64",
							"name": "startTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "feesToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesClaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsClaimed",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "recordFeePaid",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setRewardsToDistribute",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "targetThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalFeesAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalRewardsAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd2acc0ea5cbb3da712050caeb4042eb08a5d4d6c95024c8e4e13e5a9607b10a1",
				"urls": [
					"bzz-raw://3ce6f2d31abc0b0011ed8204b693996acda19a2d9da49183ea49747bfb482630",
					"dweb:/ipfs/QmZnSXfyVbYfymrDfGKxfcbN2W8uViQUSu2JnHqHPkuNpi"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePool.sol": "FeePool"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 1500
					},
					"remappings": []
				},
				"sources": {
					"FeePool.sol": {
						"keccak256": "0xd2acc0ea5cbb3da712050caeb4042eb08a5d4d6c95024c8e4e13e5a9607b10a1",
						"urls": [
							"bzz-raw://3ce6f2d31abc0b0011ed8204b693996acda19a2d9da49183ea49747bfb482630",
							"dweb:/ipfs/QmZnSXfyVbYfymrDfGKxfcbN2W8uViQUSu2JnHqHPkuNpi"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolState": {
			"bytecode": "608060405234801561001057600080fd5b50604051610c75380380610c758339818101604052604081101561003357600080fd5b50805160209091015162375f00826001600160a01b03811661009c576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1504201600255600380546001600160a01b0319166001600160a01b039290921691909117905550610b4b8061012a6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80637de655451161008c578063ae2e933b11610066578063ae2e933b146102b5578063b326f84e146102bd578063cff2ddad146102e9578063d29c000a14610307576100cf565b80637de65545146102305780638da5cb5b1461027557806394e1a4481461027d576100cf565b80631627540c146100d457806319db2228146100fc57806339a3f63f1461012257806346ba2d90146101ea57806353a47bb71461020457806379ba509714610228575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b0316610333565b005b6100fa6004803603602081101561011257600080fd5b50356001600160a01b031661038f565b6100fa6004803603608081101561013857600080fd5b81019060208101813564010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184602083028401116401000000008311171561018757600080fd5b9193909290916020810190356401000000008111156101a557600080fd5b8201836020820111156101b757600080fd5b803590602001918460208302840111640100000000831117156101d957600080fd5b9193509150803590602001356103b9565b6101f2610593565b60408051918252519081900360200190f35b61020c610599565b604080516001600160a01b039092168252519081900360200190f35b6100fa6105a8565b61025c6004803603604081101561024657600080fd5b506001600160a01b038135169060200135610664565b6040805192835260208301919091528051918290030190f35b61020c610691565b6100fa6004803603608081101561029357600080fd5b506001600160a01b0381351690602081013590604081013590606001356106a0565b61020c610739565b61025c600480360360408110156102d357600080fd5b506001600160a01b038135169060200135610748565b6102f16107e9565b6040805160ff9092168252519081900360200190f35b61025c6004803603604081101561031d57600080fd5b506001600160a01b0381351690602001356107ee565b61033b6108d1565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6103976108d1565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6103c16108d1565b60025442106104015760405162461bcd60e51b8152600401808060200182810382526029815260200180610aee6029913960400191505060405180910390fd5b848314610447576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b8581101561058a5784848281811061045e57fe5b905060200201356004600089898581811061047557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002084600681106104b057fe5b600202015581600460008989858181106104c657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020846006811061050157fe5b600202016001018190555086868281811061051857fe5b905060200201356001600160a01b03166001600160a01b03167f3846bc3c5dca9c6ef89995aa7b28d43a5a99aa2e3ea230494da474b8d4b29aea86868481811061055e57fe5b9050602002013584604051808381526020018281526020019250505060405180910390a260010161044a565b50505050505050565b60025481565b6001546001600160a01b031681565b6001546001600160a01b031633146105f15760405162461bcd60e51b8152600401808060200182810382526035815260200180610a366035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6004602052816000526040600020816006811061067d57fe5b600202018054600190910154909250905082565b6000546001600160a01b031681565b6003546001600160a01b031633146106e95760405162461bcd60e51b8152600401808060200182810382526031815260200180610a8e6031913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902060010154811115610715576107158461091c565b506001600160a01b0392909216600090815260046020526040902090815560010155565b6003546001600160a01b031681565b6000806006831061078a5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a6b6023913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902083600681106107ad57fe5b60020201546001600160a01b038516600090815260046020526040902090925083600681106107d857fe5b600202016001015490509250929050565b600681565b6000806107f96109ee565b6001600160a01b038516600090815260046020526040808220815160c081019092529091600690835b8282101561085e578382600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610822565b509293506000925050505b60068110156108c75781816006811061087e57fe5b60200201516020015185106108bf5781816006811061089957fe5b6020020151518282600681106108ab57fe5b6020020151602001519350935050506108ca565b600101610869565b50505b9250929050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610abf602f913960400191505060405180910390fd5b565b60045b60068110156109ea576001600160a01b03821660009081526004602052604090206001820190826006811061095057fe5b60020201546001600160a01b0384166000908152600460205260409020826006811061097857fe5b60020201556001600160a01b038316600090815260046020526040902082600681106109a057fe5b600202016001015460046000856001600160a01b03166001600160a01b0316815260200190815260200160002082600681106109d857fe5b6002020160010155506000190161091f565b5050565b6040518060c001604052806006905b610a05610a1b565b8152602001906001900390816109fd5790505090565b60405180604001604052806000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970696e646578206578636565647320746865204645455f504552494f445f4c454e4754484f6e6c792074686520466565506f6f6c20636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820eadcfed73287d8117f0e101ad55b9856f2ffd28458977f87187d9d3e60547c2864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feePeriodCloseIndex",
							"type": "uint256"
						}
					],
					"name": "IssuanceDebtRatioEntry",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_PERIOD_LENGTH",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountIssuanceLedger",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtPercentage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "currentPeriodStartDebtIndex",
							"type": "uint256"
						}
					],
					"name": "appendAccountIssuanceRecord",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "closingDebtIndex",
							"type": "uint256"
						}
					],
					"name": "applicableIssuanceData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePool",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getAccountsDebtEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtPercentage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "ratios",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256",
							"name": "periodToInsert",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feePeriodCloseIndex",
							"type": "uint256"
						}
					],
					"name": "importIssuerData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"name": "setFeePool",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x5c522039831a80b1b59d4a2f85f9eb6ed4becb04025f37feb26f8e3e0b375022",
				"urls": [
					"bzz-raw://ed54e5346a3c6f1a827fb18b4896dacb9602a06962b03df2c082f71835f2ddca",
					"dweb:/ipfs/QmbUsp3R1ZuqXZ3hNacXbRFtvSkyyLqtns3PzBWKiKsJfp"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePoolState.sol": "FeePoolState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FeePoolState.sol": {
						"keccak256": "0x5c522039831a80b1b59d4a2f85f9eb6ed4becb04025f37feb26f8e3e0b375022",
						"urls": [
							"bzz-raw://ed54e5346a3c6f1a827fb18b4896dacb9602a06962b03df2c082f71835f2ddca",
							"dweb:/ipfs/QmbUsp3R1ZuqXZ3hNacXbRFtvSkyyLqtns3PzBWKiKsJfp"
						]
					}
				},
				"version": 1
			}
		},
		"RewardsDistribution": {
			"bytecode": "608060405234801561001057600080fd5b50604051611293380380611293833981810160405260a081101561003357600080fd5b50805160208201516040830151606084015160809094015192939192909190846001600160a01b0381166100ae576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039586166001600160a01b03199182161790915560038054948616948216949094179093556004805492851692841692909217909155600580549190931691161790555061112e806101656000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80637a9e5e4b116100a2578063bf7e214f11610071578063bf7e214f146102c5578063c9e9cc4d146102cd578063d8297e44146102d5578063e54c1671146102fb578063ebd50faa1461032d57610116565b80637a9e5e4b14610272578063817a6951146102985780638da5cb5b146102b5578063a430be6c146102bd57610116565b806353a47bb7116100e957806353a47bb7146101c357806359974e38146101e75780635de399341461021857806360eb3ff21461023e57806379ba50971461026a57610116565b8063060ca2501461011b5780631627540c146101355780632d122dc61461015d5780634487d3df14610183575b600080fd5b610123610335565b60408051918252519081900360200190f35b61015b6004803603602081101561014b57600080fd5b50356001600160a01b031661033c565b005b61015b6004803603602081101561017357600080fd5b50356001600160a01b0316610398565b6101a06004803603602081101561019957600080fd5b50356103c2565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6101cb6103f7565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360208110156101fd57600080fd5b5035610406565b604080519115158252519081900360200190f35b61015b6004803603602081101561022e57600080fd5b50356001600160a01b0316610a51565b6102046004803603604081101561025457600080fd5b506001600160a01b038135169060200135610a7b565b61015b610c1e565b61015b6004803603602081101561028857600080fd5b50356001600160a01b0316610cda565b61015b600480360360208110156102ae57600080fd5b5035610d04565b6101cb610def565b6101cb610dfe565b6101cb610e0d565b6101cb610e1c565b61015b600480360360208110156102eb57600080fd5b50356001600160a01b0316610e2b565b6102046004803603606081101561031157600080fd5b508035906001600160a01b036020820135169060400135610e55565b6101cb610f21565b6006545b90565b610344610f30565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6103a0610f30565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600681815481106103cf57fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6001546001600160a01b031681565b6000808211610454576040805162461bcd60e51b81526020600482015260156024820152744e6f7468696e6720746f206469737472696275746560581b604482015290519081900360640190fd5b6002546001600160a01b031633146104b3576040805162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420617574686f72697365640000000000000000604482015290519081900360640190fd5b6004546001600160a01b0316610510576040805162461bcd60e51b815260206004820152601760248201527f526577617264457363726f77206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0316610565576040805162461bcd60e51b815260206004820152601560248201527413da5adbdcd41c9bde1e481a5cc81b9bdd081cd95d605a1b604482015290519081900360640190fd5b6005546001600160a01b03166105c2576040805162461bcd60e51b815260206004820152601760248201527f466565506f6f6c50726f7879206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b600354604080516370a0823160e01b8152306004820152905184926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561060c57600080fd5b505afa158015610620573d6000803e3d6000fd5b505050506040513d602081101561063657600080fd5b505110156106755760405162461bcd60e51b81526004018080602001828103825260468152602001806110856046913960600191505060405180910390fd5b8160005b6006548110156109285760006001600160a01b03166006828154811061069b57fe5b60009182526020909120600290910201546001600160a01b03161415806106e15750600681815481106106ca57fe5b906000526020600020906002020160010154600014155b1561092057610717600682815481106106f657fe5b90600052602060002090600202016001015483610f7b90919063ffffffff16565b600354600680549294506001600160a01b039091169163a9059cbb91908490811061073e57fe5b6000918252602090912060029091020154600680546001600160a01b03909216918590811061076957fe5b9060005260206000209060020201600101546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050506040513d60208110156107f457600080fd5b505060068054606091908390811061080857fe5b60009182526020808320600160029093020191909101546040805160248082019390935281518082039093018352604401905290810180516001600160e01b0316633c6b16ab60e01b17905260068054919350908490811061086657fe5b60009182526020918290206002909102015460405184516001600160a01b0390921692859282918401908083835b602083106108b35780518252601f199092019160209182019101610894565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610915576040519150601f19603f3d011682016040523d82523d6000602084013e61091a565b606091505b50505050505b600101610679565b50600354600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018590525192169163a9059cbb916044808201926020929091908290030181600087803b15801561098357600080fd5b505af1158015610997573d6000803e3d6000fd5b505050506040513d60208110156109ad57600080fd5b50506005546040805163fd1f498d60e01b81526004810184905290516001600160a01b039092169163fd1f498d9160248082019260009290919082900301818387803b1580156109fc57600080fd5b505af1158015610a10573d6000803e3d6000fd5b50506040805186815290517f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be4429350908190036020019150a150600192915050565b610a59610f30565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a85610f30565b6001600160a01b038316610ae0576040805162461bcd60e51b815260206004820152601760248201527f43616e74206164642061207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b81610b2b576040805162461bcd60e51b815260206004820152601660248201527510d85b9d081859190818481e995c9bc8185b5bdd5b9d60521b604482015290519081900360640190fd5b610b33610fd8565b506040805180820182526001600160a01b03858116808352602080840187815260068054600181018255600082905286517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290920291820180546001600160a01b031916919097161790955590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909401939093559154845160001991909101815291820152808301859052915190917f08fff3cb767a84a8039ea0f84053799c5cdca0e8efb031eeb6b05b9c174aa208916060918190039190910190a15060019392505050565b6001546001600160a01b03163314610c675760405162461bcd60e51b81526004018080602001828103825260358152602001806110506035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610ce2610f30565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610d0c610f30565b60065460001901811115610d5d576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b805b60065460001901811015610dd75760068160010181548110610d7d57fe5b906000526020600020906002020160068281548110610d9857fe5b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b039092169190911781556001918201549082015501610d5f565b506006805490610deb906000198301610fef565b5050565b6000546001600160a01b031681565b6004546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031681565b610e33610f30565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e5f610f30565b60065460001901841115610eb0576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b8260068581548110610ebe57fe5b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160068581548110610f0157fe5b906000526020600020906002020160010181905550600190509392505050565b6003546001600160a01b031681565b6000546001600160a01b03163314610f795760405162461bcd60e51b815260040180806020018281038252602f8152602001806110cb602f913960400191505060405180910390fd5b565b600082821115610fd2576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080518082019091526000808252602082015290565b81548183558181111561101b5760020281600202836000526020600020918201910161101b9190611020565b505050565b61033991905b8082111561104b5780546001600160a01b031916815560006001820155600201611026565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697052657761726473446973747269627574696f6e20636f6e747261637420646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f20646973747269627574654f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582061e848f174b8c5f6066e225c42e14916d978f7f8441ae548dce1d04147c41be164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_authority",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_oikosProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_rewardEscrow",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_feePoolProxy",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardDistributionAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardsDistributed",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "addRewardDistribution",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "authority",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "distributeRewards",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "distributions",
					"outputs": [
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "distributionsLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "editRewardDistribution",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePoolProxy",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oikosProxy",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "removeRewardDistribution",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardEscrow",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_authority",
							"type": "address"
						}
					],
					"name": "setAuthority",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_feePoolProxy",
							"type": "address"
						}
					],
					"name": "setFeePoolProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_oikosProxy",
							"type": "address"
						}
					],
					"name": "setOikosProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_rewardEscrow",
							"type": "address"
						}
					],
					"name": "setRewardEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x8ac7870a0b2e43123dcdee97e836f25029d6c0629bf96f899a6a2f643007282e",
				"urls": [
					"bzz-raw://ef67ba419f041dc42f66622501ffb3f8f8a43a0b76ac04a1c504a59c7ad4f09c",
					"dweb:/ipfs/QmcMtpXr7rnpWfbFfYras6fdshfAPcSEWf9tsiyDay1r3L"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardsDistribution.sol": "RewardsDistribution"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardsDistribution.sol": {
						"keccak256": "0x8ac7870a0b2e43123dcdee97e836f25029d6c0629bf96f899a6a2f643007282e",
						"urls": [
							"bzz-raw://ef67ba419f041dc42f66622501ffb3f8f8a43a0b76ac04a1c504a59c7ad4f09c",
							"dweb:/ipfs/QmcMtpXr7rnpWfbFfYras6fdshfAPcSEWf9tsiyDay1r3L"
						]
					}
				},
				"version": 1
			}
		},
		"ProxyERC20": {
			"bytecode": "608060405234801561001057600080fd5b50604051610f7f380380610f7f8339818101604052602081101561003357600080fd5b505180806001600160a01b038116610092576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505050610e83806100fc6000396000f3fe6080604052600436106100f35760003560e01c8063776d1a011161008a57806395d89b411161005957806395d89b4114610473578063a9059cbb14610488578063d4b83992146104c1578063dd62ed3e146104d6576100f3565b8063776d1a011461038157806379ba5097146103b45780638da5cb5b146103c9578063907dff97146103de576100f3565b806323b872dd116100c657806323b872dd146102af578063313ce567146102f257806353a47bb71461031d57806370a082311461034e576100f3565b806306fdde031461017c578063095ea7b3146102065780631627540c1461025357806318160ddd14610288575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e80610178573d82fd5b3d82f35b34801561018857600080fd5b50610191610511565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cb5781810151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061023f6004803603604081101561022957600080fd5b506001600160a01b038135169060200135610648565b604080519115158252519081900360200190f35b34801561025f57600080fd5b506102866004803603602081101561027657600080fd5b50356001600160a01b0316610736565b005b34801561029457600080fd5b5061029d610792565b60408051918252519081900360200190f35b3480156102bb57600080fd5b5061023f600480360360608110156102d257600080fd5b506001600160a01b03813581169160208101359091169060400135610808565b3480156102fe57600080fd5b506103076108ff565b6040805160ff9092168252519081900360200190f35b34801561032957600080fd5b50610332610944565b604080516001600160a01b039092168252519081900360200190f35b34801561035a57600080fd5b5061029d6004803603602081101561037157600080fd5b50356001600160a01b0316610953565b34801561038d57600080fd5b50610286600480360360208110156103a457600080fd5b50356001600160a01b03166109d6565b3480156103c057600080fd5b50610286610a32565b3480156103d557600080fd5b50610332610aee565b3480156103ea57600080fd5b50610286600480360360c081101561040157600080fd5b81019060208101813564010000000081111561041c57600080fd5b82018360208201111561042e57600080fd5b8035906020019184600183028401116401000000008311171561045057600080fd5b919350915080359060208101359060408101359060608101359060800135610afd565b34801561047f57600080fd5b50610191610c06565b34801561049457600080fd5b5061023f600480360360408110156104ab57600080fd5b506001600160a01b038135169060200135610c4b565b3480156104cd57600080fd5b50610332610d04565b3480156104e257600080fd5b5061029d600480360360408110156104f957600080fd5b506001600160a01b0381358116916020013516610d13565b600254604080516306fdde0360e01b815290516060926001600160a01b0316916306fdde03916004808301926000929190829003018186803b15801561055657600080fd5b505afa15801561056a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561059357600080fd5b81019080805160405193929190846401000000008211156105b357600080fd5b9083019060208201858111156105c857600080fd5b82516401000000008111828201881017156105e257600080fd5b82525081516020918201929091019080838360005b8381101561060f5781810151838201526020016105f7565b50505050905090810190601f16801561063c5780820380516001836020036101000a031916815260200191505b50604052505050905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b50506002546040805163095ea7b360e01b81526001600160a01b03888116600483015260248201889052915191909216935063095ea7b3925060448083019260209291908290030181600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b505050506040513d602081101561072b57600080fd5b506001949350505050565b61073e610d9f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d602081101561080157600080fd5b5051905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561085357600080fd5b505af1158015610867573d6000803e3d6000fd5b5050600254604080516323b872dd60e01b81526001600160a01b03898116600483015288811660248301526044820188905291519190921693506323b872dd925060648083019260209291908290030181600087803b1580156108c957600080fd5b505af11580156108dd573d6000803e3d6000fd5b505050506040513d60208110156108f357600080fd5b50600195945050505050565b6002546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b1580156107d757600080fd5b6001546001600160a01b031681565b600254604080516370a0823160e01b81526001600160a01b038481166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505192915050565b6109de610d9f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b03163314610a7b5760405162461bcd60e51b8152600401808060200182810382526035815260200180610deb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b03163314610b53576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a908490819084018382808284376000920191909152509293508992505081159050610bbd5760018114610bc85760028114610bd45760038114610be15760048114610bef57610bfa565b8260208301a0610bfa565b868360208401a1610bfa565b85878460208501a2610bfa565b8486888560208601a3610bfa565b838587898660208701a45b50505050505050505050565b600254604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b41916004808301926000929190829003018186803b15801561055657600080fd5b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b158015610c9657600080fd5b505af1158015610caa573d6000803e3d6000fd5b50506002546040805163a9059cbb60e01b81526001600160a01b03888116600483015260248201889052915191909216935063a9059cbb925060448083019260209291908290030181600087803b15801561070157600080fd5b6002546001600160a01b031681565b60025460408051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301529151600093929092169163dd62ed3e91604480820192602092909190829003018186803b158015610d6c57600080fd5b505afa158015610d80573d6000803e3d6000fd5b505050506040513d6020811015610d9657600080fd5b50519392505050565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040180806020018281038252602f815260200180610e20602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820b380ef87664c082ad30e97d2cd8dbadab67c24938635ccae89565ca35ba986cb64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "contract Proxyable",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes",
							"name": "callData",
							"type": "bytes"
						},
						{
							"internalType": "uint256",
							"name": "numTopics",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "topic1",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic2",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic3",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic4",
							"type": "bytes32"
						}
					],
					"name": "_emit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract Proxyable",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "contract Proxyable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x3a5f26e6936609cdb11a2ad9e714d6b3852def2b7d92ac494f1d4a389175828e",
				"urls": [
					"bzz-raw://457861586c2eea48a5fd5c7f718d86cfd0aebcb8726bc2477e738cd076147c12",
					"dweb:/ipfs/QmYVT8Z3rrTukMk5qPvRq5z9VtMFsFN729PXvTqBFZ5r1L"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ProxyERC20.sol": "ProxyERC20"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ProxyERC20.sol": {
						"keccak256": "0x3a5f26e6936609cdb11a2ad9e714d6b3852def2b7d92ac494f1d4a389175828e",
						"urls": [
							"bzz-raw://457861586c2eea48a5fd5c7f718d86cfd0aebcb8726bc2477e738cd076147c12",
							"dweb:/ipfs/QmYVT8Z3rrTukMk5qPvRq5z9VtMFsFN729PXvTqBFZ5r1L"
						]
					}
				},
				"version": 1
			}
		},
		"LegacyTokenState": {
			"bytecode": "608060405234801561001057600080fd5b5060405161050e38038061050e8339818101604052604081101561003357600080fd5b508051602091820151600080546001600160a01b038085166001600160a01b0319928316179092556002805492841692909116821790556040805191825251929391927f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03929181900390910190a1505061045c806100b26000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610155578063aefc4ccb1461015d578063b46310f614610165578063da46098c14610191578063dd62ed3e146101c75761009e565b806352f445ca146100a357806353a47bb7146100cb5780635b94db27146100ef57806370a082311461011557806379ba50971461014d575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b03166101f5565b005b6100d3610260565b604080516001600160a01b039092168252519081900360200190f35b6100c96004803603602081101561010557600080fd5b50356001600160a01b031661026f565b61013b6004803603602081101561012b57600080fd5b50356001600160a01b03166102da565b60408051918252519081900360200190f35b6100c96102ec565b6100d3610376565b6100d3610385565b6100c96004803603604081101561017b57600080fd5b506001600160a01b038135169060200135610394565b6100c9600480360360608110156101a757600080fd5b506001600160a01b038135811691602081013590911690604001356103c7565b61013b600480360360408110156101dd57600080fd5b506001600160a01b038135811691602001351661040a565b6000546001600160a01b0316331461020c57600080fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6000546001600160a01b0316331461028657600080fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60036020526000908152604090205481565b6001546001600160a01b0316331461030357600080fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6002546001600160a01b031633146103ab57600080fd5b6001600160a01b03909116600090815260036020526040902055565b6002546001600160a01b031633146103de57600080fd5b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b60046020908152600092835260408084209091529082529020548156fea265627a7a72315820b2f25139711ce5dfb09729d77980981950162e07ebcd429427f0317c0b7af23164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenOwner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setAllowance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setBalanceOf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x86705101396070ce1aae1937f3018535a85f6994d34ad401a23c2b3843a57d41",
				"urls": [
					"bzz-raw://a41ec529508438fbbc75538c464249129e052db02e39e994921a9dc25522edd7",
					"dweb:/ipfs/Qmcmed4XjCmp7CU3Sredzb4VZPpvD1pg53V7yiJEMjvDRs"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"legacy/LegacyTokenState.sol": "LegacyTokenState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"legacy/LegacyTokenState.sol": {
						"keccak256": "0x86705101396070ce1aae1937f3018535a85f6994d34ad401a23c2b3843a57d41",
						"urls": [
							"bzz-raw://a41ec529508438fbbc75538c464249129e052db02e39e994921a9dc25522edd7",
							"dweb:/ipfs/Qmcmed4XjCmp7CU3Sredzb4VZPpvD1pg53V7yiJEMjvDRs"
						]
					}
				},
				"version": 1
			}
		},
		"Oikos": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162004bb938038062004bb9833981016040819052620000349162000315565b84848484848085856040518060400160405280601381526020017f4f696b6f73204e6574776f726b20546f6b656e00000000000000000000000000815250604051806040016040528060038152602001624f4b5360e81b81525086601289868160006001600160a01b0316816001600160a01b03161415620000d35760405162461bcd60e51b8152600401620000ca9062000463565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620001209184906200042b565b60405180910390a1506000546001600160a01b0316620001545760405162461bcd60e51b8152600401620000ca9062000451565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e90620001a19083906200041b565b60405180910390a150600480546001600160a01b0319166001600160a01b0388161790558451620001da90600590602088019062000243565b508351620001f090600690602087019062000243565b50506007919091556008805460ff191660ff90921691909117610100600160a81b0319166101006001600160a01b0397909716969096029590951790945550620004e19c50505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028657805160ff1916838001178555620002b6565b82800160010185558215620002b6579182015b82811115620002b657825182559160200191906001019062000299565b50620002c4929150620002c8565b5090565b620002e591905b80821115620002c45760008155600101620002cf565b90565b8051620002f581620004b1565b92915050565b8051620002f581620004cb565b8051620002f581620004d6565b600080600080600060a086880312156200032e57600080fd5b60006200033c8888620002e8565b95505060206200034f88828901620002fb565b94505060406200036288828901620002e8565b9350506060620003758882890162000308565b92505060806200038888828901620002e8565b9150509295509295909350565b620003a081620004a4565b82525050565b620003a0816200047e565b6000620003c060118362000475565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620003ef60198362000475565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60208101620002f5828462000395565b604081016200043b828562000395565b6200044a6020830184620003a6565b9392505050565b60208082528101620002f581620003b1565b60208082528101620002f581620003e0565b90815260200190565b6000620002f58262000498565b6000620002f5826200047e565b6001600160a01b031690565b6000620002f5826200048b565b620004bc816200047e565b8114620004c857600080fd5b50565b620004bc816200048b565b620004bc81620002e5565b6146c880620004f16000396000f3fe608060405234801561001057600080fd5b50600436106104125760003560e01c806372cb051f11610220578063ace88afd11610130578063d8a1f76f116100b8578063e8e09b8b11610087578063e8e09b8b14610865578063e90dd9e214610878578063ec55688914610880578063edef719a14610638578063ee52a2f31461088857610412565b8063d8a1f76f14610824578063dbf6334014610837578063dd62ed3e1461083f578063e6203ed11461085257610412565b8063c2bf3880116100ff578063c2bf3880146107d0578063c62e5df8146107e3578063c836fa0a146107f6578063d37c4d8b14610809578063d67bdd251461081c57610412565b8063ace88afd1461078f578063af086c7e146107a2578063b4fb3a81146107aa578063bc67f832146107bd57610412565b806391e56b68116101b3578063987757dd11610182578063987757dd146107305780639f76980714610743578063a311c7c214610756578063a5fdc5de14610769578063a9059cbb1461077c57610412565b806391e56b68146106fa57806395d89b411461070d57806397107d6d146107155780639741fb221461072857610412565b806383d625d4116101ef57806383d625d4146106c4578063899ffef4146106d75780638a290014146106df5780638da5cb5b146106f257610412565b806372cb051f1461068c57806374185360146106a157806379ba5097146106a9578063835e119c146106b157610412565b80632d3169eb1161032657806353a47bb7116102ae578063666ed4f11161027d578063666ed4f1146106385780636b76222f1461064b5780636c00f310146106535780636f01a9861461066657806370a082311461067957610412565b806353a47bb7146106005780635802a172146106155780635af090ef1461061d578063614d08f81461063057610412565b8063313ce567116102f5578063313ce567146105b757806331d80b82146105bf578063320223db146105c757806332608039146105da5780633e89b9e5146105ed57610412565b80632d3169eb146105695780632e0f26251461057c5780632f7206ce1461059157806330ead760146105a457610412565b806316b2213f116103a957806323b872dd1161037857806323b872dd14610520578063295da87d146105335780632a905318146105465780632af64bd31461054e5780632c955fa71461055657610412565b806316b2213f146104ea57806318160ddd146104fd57806318821400146105055780631fce304d1461050d57610412565b80630e30963c116103e55780630e30963c1461048a5780631137aedf146104ab5780631249c58b146104cd5780631627540c146104d557610412565b806304f3bcec1461041757806305b3c1c91461043557806306fdde0314610455578063095ea7b31461046a575b600080fd5b61041f61089b565b60405161042c9190614455565b60405180910390f35b61044861044336600461340f565b6108af565b60405161042c91906142b4565b61045d61093a565b60405161042c9190614463565b61047d6104783660046134d2565b6109c8565b60405161042c91906142a6565b61049d610498366004613725565b610a53565b60405161042c929190614544565b6104be6104b936600461340f565b610b62565b60405161042c93929190614365565b61047d610bf7565b6104e86104e336600461340f565b610fba565b005b6104486104f836600461340f565b611018565b61044861104d565b61045d611053565b61047d61051b3660046136e9565b611082565b61047d61052e366004613485565b611117565b6104e86105413660046136e9565b611156565b61045d6111d7565b61047d6111f6565b6104e861056436600461340f565b611312565b6104e8610577366004613725565b61135e565b610584611414565b60405161042c919061456d565b6104e861059f36600461361c565b611419565b6104486105b2366004613768565b6114db565b610584611599565b61047d6115a2565b6104e86105d536600461340f565b611621565b61041f6105e83660046136e9565b61166d565b6104486105fb3660046136e9565b6116f2565b61060861172a565b60405161042c91906140c0565b610448611739565b61044861062b366004613768565b611744565b6104486117a4565b6104e86106463660046134d2565b6117b0565b6104e86117bc565b6104e861066136600461361c565b611867565b6104e8610674366004613502565b6118ba565b61044861068736600461340f565b611973565b6106946119a5565b60405161042c9190614295565b6104e8611a23565b6104e8611b75565b61041f6106bf3660046136e9565b611c11565b6104486106d23660046136e9565b611c46565b610694611c7e565b6104e86106ed3660046136e9565b611d3f565b610608611d89565b610448610708366004613595565b611d98565b61045d611e58565b6104e861072336600461340f565b611eb3565b6104e8611f06565b6104be61073e3660046136e9565b611f84565b6104e86107513660046137fb565b611ffa565b61044861076436600461340f565b612026565b61044861077736600461340f565b61205b565b61047d61078a3660046134d2565b612090565b6104e861079d366004613502565b6120d0565b6104e861211d565b6104486107b836600461340f565b612166565b6104e86107cb36600461340f565b61226e565b6104e86107de3660046134d2565b612298565b6104486107f1366004613725565b61231c565b610448610804366004613534565b6123d2565b6104486108173660046134d2565b612490565b610608612517565b6104e86108323660046136e9565b612526565b61044861252e565b61044861084d36600461344b565b6125a8565b61047d6108603660046134d2565b6125dc565b6104e86108733660046134d2565b6126bf565b61041f61270d565b61041f61271c565b610448610896366004613747565b61272b565b60085461010090046001600160a01b031681565b60006108b96127e7565b6001600160a01b03166305b3c1c9836040518263ffffffff1660e01b81526004016108e491906140c0565b60206040518083038186803b1580156108fc57600080fd5b505afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109349190810190613707565b92915050565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109c05780601f10610995576101008083540402835291602001916109c0565b820191906000526020600020905b8154815290600101906020018083116109a357829003601f168201915b505050505081565b60006109d26127fb565b60035460048054604051633691826360e21b81526001600160a01b03938416939091169163da46098c91610a0c91859189918991016141e8565b600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b50505050610a4981858561283a565b5060019392505050565b6000808584610a6282826128ba565b610a6a6127fb565b610a7261291b565b6001600160a01b0316634f8633d2600360009054906101000a90046001600160a01b0316600360009054906101000a90046001600160a01b03168b8b8b600360009054906101000a90046001600160a01b03166001600360009054906101000a90046001600160a01b03168e6040518a63ffffffff1660e01b8152600401610b0299989796959493929190614198565b6040805180830381600087803b158015610b1b57600080fd5b505af1158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b539190810190613849565b93509350505094509492505050565b6000806000610b6f6127e7565b6001600160a01b0316631137aedf856040518263ffffffff1660e01b8152600401610b9a91906140c0565b60606040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bea91908101906138a9565b9250925092509193909250565b6000610c01612932565b6000610c0b612986565b6001600160a01b03161415610c3b5760405162461bcd60e51b8152600401610c32906144e4565b60405180910390fd5b6000610c456129a7565b90506000610c51612986565b90506000826001600160a01b031663cc5c095c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8e57600080fd5b505afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cc69190810190613707565b905060008111610ce85760405162461bcd60e51b8152600401610c3290614524565b610cf4600030836129c3565b604051637e7961d760e01b81526000906001600160a01b03851690637e7961d790610d239085906004016142b4565b602060405180830381600087803b158015610d3d57600080fd5b505af1158015610d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d759190810190613707565b90506000610d89838363ffffffff612a0616565b600480546040516370a0823160e01b81529293506001600160a01b03169163b46310f6918791610e2591869186916370a0823191610dc9918791016140c0565b60206040518083038186803b158015610de157600080fd5b505afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e199190810190613707565b9063ffffffff612a2e16565b6040518363ffffffff1660e01b8152600401610e42929190614210565b600060405180830381600087803b158015610e5c57600080fd5b505af1158015610e70573d6000803e3d6000fd5b50505050610e7f3085836129c3565b604051630b32e9c760e31b81526001600160a01b038516906359974e3890610eab9084906004016142b4565b602060405180830381600087803b158015610ec557600080fd5b505af1158015610ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610efd91908101906136cb565b50600480546040516370a0823160e01b81526001600160a01b039091169163b46310f6913391610f3d91879186916370a0823191610dc9918791016140ce565b6040518363ffffffff1660e01b8152600401610f5a9291906140dc565b600060405180830381600087803b158015610f7457600080fd5b505af1158015610f88573d6000803e3d6000fd5b50505050610f973033846129c3565b600754610faa908463ffffffff612a2e16565b6007555060019450505050505b90565b610fc2612a53565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061100d9083906140c0565b60405180910390a150565b60006110226127e7565b6001600160a01b03166316b2213f836040518263ffffffff1660e01b81526004016108e491906140c0565b60075481565b6040518060400160405280601381526020017227b4b5b7b9902732ba3bb7b935902a37b5b2b760691b81525081565b60008061108d61291b565b6003546040516301670a7b60e21b81526001600160a01b039283169263059c29ec926110c0929116908790600401614210565b60206040518083038186803b1580156110d857600080fd5b505afa1580156110ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111109190810190613707565b1192915050565b60006111216127fb565b611129612a7d565b6111338483612abd565b5060035461114c906001600160a01b0316858585612ca2565b90505b9392505050565b61115e612932565b6111666127fb565b61116e6127e7565b60035460405163b06e8c6560e01b81526001600160a01b039283169263b06e8c65926111a1929116908590600401614210565b600060405180830381600087803b1580156111bb57600080fd5b505af11580156111cf573d6000803e3d6000fd5b505050505b50565b604051806040016040528060038152602001624f4b5360e81b81525081565b60006060611202611c7e565b905060005b815181101561130957600082828151811061121e57fe5b602090810291909101810151600081815260099092526040918290205460085492516321f8a72160e01b81529193506001600160a01b0390811692610100900416906321f8a721906112749085906004016142b4565b60206040518083038186803b15801561128c57600080fd5b505afa1580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112c4919081019061342d565b6001600160a01b03161415806112ef57506000818152600960205260409020546001600160a01b0316155b156113005760009350505050610fb7565b50600101611207565b50600191505090565b61131a612932565b6113226127fb565b61132a6127e7565b60035460405163159fa0d560e11b81526001600160a01b0392831692632b3f41aa926111a1928692909116906004016140f7565b611366612daa565b6002546040516001600160a01b039091169063907dff979061139090869086908690602001614365565b60405160208183030381529060405260026040516113ad90614048565b6040519081900381206001600160e01b031960e086901b1682526113dc9392918a9060009081906004016143d4565b600060405180830381600087803b1580156113f657600080fd5b505af115801561140a573d6000803e3d6000fd5b5050505050505050565b601281565b611421612daa565b6002546040516001600160a01b039091169063907dff979061144f9088908890889088908890602001614319565b604051602081830303815290604052600260405161146c90614032565b604051809103902061147d8b612de2565b6000806040518763ffffffff1660e01b81526004016114a1969594939291906143d4565b600060405180830381600087803b1580156114bb57600080fd5b505af11580156114cf573d6000803e3d6000fd5b50505050505050505050565b600085846114e982826128ba565b6114f16127fb565b6114f961291b565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d29261153b9291169081908d908d908d9084906000908f908f90600401614198565b6040805180830381600087803b15801561155457600080fd5b505af1158015611568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061158c9190810190613849565b5098975050505050505050565b60085460ff1681565b60006115ac6127e7565b6001600160a01b03166331d80b826040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e457600080fd5b505afa1580156115f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061161c91908101906136cb565b905090565b611629612932565b6116316127fb565b6116396127e7565b60035460405163fd864ccf60e01b81526001600160a01b039283169263fd864ccf926111a1928692909116906004016140f7565b60006116776127e7565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004016116a291906142b4565b60206040518083038186803b1580156116ba57600080fd5b505afa1580156116ce573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061093491908101906137dd565b60006116fc6127e7565b6001600160a01b0316637b1001b78360016040518363ffffffff1660e01b81526004016108e49291906142d0565b6001546001600160a01b031681565b631bd554d160e21b81565b6000858461175282826128ba565b61175a6127fb565b61176261291b565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d29261153b9291169081908d908d908d9032906000908f908f90600401614112565b644f696b6f7360d81b81565b6117b8612dee565b5050565b6117c4612a53565b6004546000906001600160a01b03166370a082316117e0612e06565b6040518263ffffffff1660e01b81526004016117fc91906140c0565b60206040518083038186803b15801561181457600080fd5b505afa158015611828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061184c9190810190613707565b90506117b8611859612e06565b611861612e20565b83612e3c565b61186f612daa565b6002546040516001600160a01b039091169063907dff979061189d9088908890889088908890602001614319565b604051602081830303815290604052600260405161146c90614073565b6118c2612daa565b6002546040516001600160a01b039091169063907dff97906118ea90859085906020016142eb565b604051602081830303815290604052600260405161190790614089565b604051809103902061191888612de2565b6000806040518763ffffffff1660e01b815260040161193c969594939291906143d4565b600060405180830381600087803b15801561195657600080fd5b505af115801561196a573d6000803e3d6000fd5b50505050505050565b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a08231916108e4918691016140c0565b60606119af6127e7565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156119e757600080fd5b505afa1580156119fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161c9190810190613696565b6060611a2d611c7e565b905060005b81518110156117b8576000828281518110611a4957fe5b602002602001015190506000600860019054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001611a8b91906140aa565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611ab79291906142f9565b60206040518083038186803b158015611acf57600080fd5b505afa158015611ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b07919081019061342d565b6000838152600960205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890611b6390849084906142c2565b60405180910390a15050600101611a32565b6001546001600160a01b03163314611b9f5760405162461bcd60e51b8152600401610c3290614484565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611be2926001600160a01b03918216929116906140f7565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000611c1b6127e7565b6001600160a01b031663835e119c836040518263ffffffff1660e01b81526004016116a291906142b4565b6000611c506127e7565b6001600160a01b0316637b1001b78360006040518363ffffffff1660e01b81526004016108e49291906142d0565b606080611c89612fbc565b60408051600380825260808201909252919250606091906020820183803883390190505090506b526577617264457363726f7760a01b81600081518110611ccc57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600181518110611cf757fe5b6020026020010181815250506d537570706c795363686564756c6560901b81600281518110611d2257fe5b602002602001018181525050611d388282613084565b9250505090565b611d47612932565b611d4f6127fb565b611d576127e7565b6003546040516285c0d160e31b81526001600160a01b039283169263042e0688926111a1929116908590600401614210565b6000546001600160a01b031681565b60008584611da682826128ba565b611dae6127fb565b611db661291b565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d292611df9928e92909116908d908d908d9085906000908f908f90600401614198565b6040805180830381600087803b158015611e1257600080fd5b505af1158015611e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e4a9190810190613849565b509998505050505050505050565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109c05780601f10610995576101008083540402835291602001916109c0565b611ebb612a53565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9061100d9083906140ce565b611f0e612932565b611f166127fb565b611f1e6127e7565b6003546040516324beb82560e11b81526001600160a01b039283169263497d704a92611f4f929116906004016140c0565b600060405180830381600087803b158015611f6957600080fd5b505af1158015611f7d573d6000803e3d6000fd5b505050505b565b6000806000611f916127fb565b611f9961291b565b6003546040516306c5a00b60e21b81526001600160a01b0392831692631b16802c92611fcc929116908890600401614210565b606060405180830381600087803b158015611fe657600080fd5b505af1158015610bc6573d6000803e3d6000fd5b612002613139565b600480546001600160a01b0319166001600160a01b0383161790556111d4816131a7565b60006120306127e7565b6001600160a01b031663a311c7c2836040518263ffffffff1660e01b81526004016108e491906140c0565b60006120656127e7565b6001600160a01b031663a5fdc5de836040518263ffffffff1660e01b81526004016108e491906140c0565b600061209a6127fb565b6120a2612a7d565b6003546120b8906001600160a01b031683612abd565b50600354610a49906001600160a01b03168484613219565b6120d8612daa565b6002546040516001600160a01b039091169063907dff979061210090859085906020016142eb565b60405160208183030381529060405260026040516119079061403d565b612125612932565b61212d6127fb565b6121356127e7565b60035460405163644bb89960e11b81526001600160a01b039283169263c897713292611f4f929116906004016140c0565b60006121706127e7565b600480546040516370a0823160e01b81526001600160a01b0393841693638ab7bbd6938793909116916370a08231916121ab918591016140c0565b60206040518083038186803b1580156121c357600080fd5b505afa1580156121d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121fb9190810190613707565b6040518363ffffffff1660e01b8152600401612218929190614210565b604080518083038186803b15801561222f57600080fd5b505afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122679190810190613819565b5092915050565b612276613226565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6122a0612932565b6122a86127fb565b6122b06127e7565b600354604051632694552d60e21b81526001600160a01b0392831692639a5154b4926122e69287929091169086906004016141e8565b600060405180830381600087803b15801561230057600080fd5b505af1158015612314573d6000803e3d6000fd5b505050505050565b6000848361232a82826128ba565b6123326127fb565b61233a61291b565b60035460405163104849bf60e01b81526001600160a01b039283169263104849bf92612375929116908b908b908b9084908c9060040161421e565b602060405180830381600087803b15801561238f57600080fd5b505af11580156123a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123c79190810190613707565b979650505050505050565b600083826123e082826128ba565b6123e86127fb565b6123f061291b565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d292612433928c92909116908b908b908b90859060009082908290600401614198565b6040805180830381600087803b15801561244c57600080fd5b505af1158015612460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124849190810190613849565b50979650505050505050565b600061249a6127e7565b6001600160a01b031663d37c4d8b84846040518363ffffffff1660e01b81526004016124c7929190614210565b60206040518083038186803b1580156124df57600080fd5b505afa1580156124f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061114f9190810190613707565b6003546001600160a01b031681565b6111d4612dee565b60006125386127e7565b6001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b15801561257057600080fd5b505afa158015612584573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061161c9190810190613707565b60048054604051636eb1769f60e11b81526000926001600160a01b039092169163dd62ed3e916124c79187918791016140f7565b60006125e6612a7d565b6125ee6127fb565b6000806125f96127e7565b60035460405163298f137d60e21b81526001600160a01b039283169263a63c4df49261262d928a928a92169060040161426d565b6040805180830381600087803b15801561264657600080fd5b505af115801561265a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061267e9190810190613879565b600354919350915061269e908690849084906001600160a01b0316613250565b6003546126b69086906001600160a01b031684613219565b95945050505050565b6126c7612932565b6126cf6127fb565b6126d76127e7565b60035460405163227635b160e11b81526001600160a01b03928316926344ec6b62926122e69287929091169086906004016141e8565b6004546001600160a01b031681565b6002546001600160a01b031681565b6000838261273982826128ba565b6127416127fb565b61274961291b565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d29261278b9291169081908b908b908b90849060009082908290600401614198565b6040805180830381600087803b1580156127a457600080fd5b505af11580156127b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127dc9190810190613849565b509695505050505050565b600061161c6524b9b9bab2b960d11b6132cc565b6002546001600160a01b0316331480159061282157506003546001600160a01b03163314155b15611f8257600380546001600160a01b03191633179055565b6002546040516001600160a01b039091169063907dff97906128609084906020016142b4565b604051602081830303815290604052600360405161287d9061407e565b604051809103902061288e88612de2565b61289788612de2565b60006040518763ffffffff1660e01b815260040161193c9695949392919061440e565b6128c2613329565b6001600160a01b0316631ce00ba283836040518363ffffffff1660e01b81526004016128ef9291906142eb565b60006040518083038186803b15801561290757600080fd5b505afa158015612314573d6000803e3d6000fd5b600061161c6822bc31b430b733b2b960b91b6132cc565b61293a613329565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561297257600080fd5b505afa158015611f7d573d6000803e3d6000fd5b600061161c722932bbb0b93239a234b9ba3934b13aba34b7b760691b6132cc565b600061161c6d537570706c795363686564756c6560901b6132cc565b6002546040516001600160a01b039091169063907dff97906129e99084906020016142b4565b604051602081830303815290604052600360405161287d906140b5565b600082821115612a285760405162461bcd60e51b8152600401610c32906144c4565b50900390565b60008282018381101561114f5760405162461bcd60e51b8152600401610c32906144b4565b6000546001600160a01b03163314611f825760405162461bcd60e51b8152600401610c32906144f4565b612a85613329565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561297257600080fd5b600080612ac86127e7565b6001600160a01b031663d37c4d8b85631bd554d160e21b6040518363ffffffff1660e01b8152600401612afc929190614210565b60206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b4c9190810190613707565b1115612c9957600080612b5d6127e7565b600480546040516370a0823160e01b81526001600160a01b0393841693638ab7bbd6938a93909116916370a0823191612b98918591016140c0565b60206040518083038186803b158015612bb057600080fd5b505afa158015612bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612be89190810190613707565b6040518363ffffffff1660e01b8152600401612c05929190614210565b604080518083038186803b158015612c1c57600080fd5b505afa158015612c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c549190810190613819565b9150915081841115612c785760405162461bcd60e51b8152600401610c3290614504565b8015612c965760405162461bcd60e51b8152600401610c3290614514565b50505b50600192915050565b60048054604051636eb1769f60e11b81526000926001600160a01b039092169163da46098c9187918991612d44918891879163dd62ed3e91612ce89188918891016140f7565b60206040518083038186803b158015612d0057600080fd5b505afa158015612d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d389190810190613707565b9063ffffffff612a0616565b6040518463ffffffff1660e01b8152600401612d62939291906141e8565b600060405180830381600087803b158015612d7c57600080fd5b505af1158015612d90573d6000803e3d6000fd5b50505050612d9f848484612e3c565b90505b949350505050565b612db261291b565b6001600160a01b0316336001600160a01b031614611f825760405162461bcd60e51b8152600401610c32906144a4565b6001600160a01b031690565b60405162461bcd60e51b8152600401610c32906144d4565b600061161c6b526577617264457363726f7760a01b6132cc565b600061161c6d2932bbb0b93222b9b1b937bbab1960911b6132cc565b60006001600160a01b03831615801590612e5f57506001600160a01b0383163014155b8015612e7957506002546001600160a01b03848116911614155b612e955760405162461bcd60e51b8152600401610c3290614474565b600480546040516370a0823160e01b81526001600160a01b039091169163b46310f6918791612ed491879186916370a0823191612ce8918791016140c0565b6040518363ffffffff1660e01b8152600401612ef1929190614210565b600060405180830381600087803b158015612f0b57600080fd5b505af1158015612f1f573d6000803e3d6000fd5b5050600480546040516370a0823160e01b81526001600160a01b03909116935063b46310f692508691612f6291879186916370a0823191610dc9918791016140c0565b6040518363ffffffff1660e01b8152600401612f7f929190614210565b600060405180830381600087803b158015612f9957600080fd5b505af1158015612fad573d6000803e3d6000fd5b50505050610a498484846129c3565b60408051600480825260a08201909252606091602082016080803883390190505090506b53797374656d53746174757360a01b81600081518110612ffc57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061302257fe5b6020026020010181815250506524b9b9bab2b960d11b8160028151811061304557fe5b602002602001018181525050722932bbb0b93239a234b9ba3934b13aba34b7b760691b8160038151811061307557fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156130b4578160200160208202803883390190505b50905060005b83518110156130f6578381815181106130cf57fe5b60200260200101518282815181106130e357fe5b60209081029190910101526001016130ba565b5060005b82518110156122675782818151811061310f57fe5b602002602001015182828651018151811061312657fe5b60209081029190910101526001016130fa565b6002546001600160a01b0316331480159061315f57506003546001600160a01b03163314155b1561317757600380546001600160a01b031916331790555b6000546003546001600160a01b03908116911614611f825760405162461bcd60e51b8152600401610c3290614494565b6002546040516001600160a01b039091169063907dff97906131cd9084906020016140c0565b60405160208183030381529060405260016040516131ea90614094565b6040519081900381206001600160e01b031960e086901b1682526111a193929160009081908190600401614380565b600061114c848484612e3c565b6002546001600160a01b03163314611f825760405162461bcd60e51b8152600401610c3290614534565b6002546040516001600160a01b039091169063907dff979061327a9086908690869060200161455f565b60405160208183030381529060405260026040516132979061409f565b60405180910390206132a889612de2565b6000806040518763ffffffff1660e01b81526004016113dc969594939291906143d4565b60008181526009602090815260408083205490516001600160a01b0390911691821515916132fc91869101614053565b604051602081830303815290604052906122675760405162461bcd60e51b8152600401610c329190614463565b600061161c6b53797374656d53746174757360a01b6132cc565b803561093481614656565b805161093481614656565b600082601f83011261336a57600080fd5b815161337d613378826145a2565b61457b565b915081818352602084019350602081019050838560208402820111156133a257600080fd5b60005b838110156133ce57816133b888826133ee565b84525060209283019291909101906001016133a5565b5050505092915050565b80516109348161466a565b803561093481614673565b805161093481614673565b80516109348161467c565b80356109348161467c565b60006020828403121561342157600080fd5b6000612da28484613343565b60006020828403121561343f57600080fd5b6000612da2848461334e565b6000806040838503121561345e57600080fd5b600061346a8585613343565b925050602061347b85828601613343565b9150509250929050565b60008060006060848603121561349a57600080fd5b60006134a68686613343565b93505060206134b786828701613343565b92505060406134c8868287016133e3565b9150509250925092565b600080604083850312156134e557600080fd5b60006134f18585613343565b925050602061347b858286016133e3565b60008060006060848603121561351757600080fd5b60006135238686613343565b93505060206134b7868287016133e3565b6000806000806080858703121561354a57600080fd5b60006135568787613343565b9450506020613567878288016133e3565b9350506040613578878288016133e3565b9250506060613589878288016133e3565b91505092959194509250565b60008060008060008060c087890312156135ae57600080fd5b60006135ba8989613343565b96505060206135cb89828a016133e3565b95505060406135dc89828a016133e3565b94505060606135ed89828a016133e3565b93505060806135fe89828a01613343565b92505060a061360f89828a016133e3565b9150509295509295509295565b60008060008060008060c0878903121561363557600080fd5b60006136418989613343565b965050602061365289828a016133e3565b955050604061366389828a016133e3565b945050606061367489828a016133e3565b935050608061368589828a016133e3565b92505060a061360f89828a01613343565b6000602082840312156136a857600080fd5b815167ffffffffffffffff8111156136bf57600080fd5b612da284828501613359565b6000602082840312156136dd57600080fd5b6000612da284846133d8565b6000602082840312156136fb57600080fd5b6000612da284846133e3565b60006020828403121561371957600080fd5b6000612da284846133ee565b6000806000806080858703121561373b57600080fd5b600061355687876133e3565b60008060006060848603121561375c57600080fd5b600061352386866133e3565b600080600080600060a0868803121561378057600080fd5b600061378c88886133e3565b955050602061379d888289016133e3565b94505060406137ae888289016133e3565b93505060606137bf88828901613343565b92505060806137d0888289016133e3565b9150509295509295909350565b6000602082840312156137ef57600080fd5b6000612da284846133f9565b60006020828403121561380d57600080fd5b6000612da28484613404565b6000806040838503121561382c57600080fd5b600061383885856133ee565b925050602061347b858286016133d8565b6000806040838503121561385c57600080fd5b600061386885856133ee565b925050602061347b858286016133f9565b6000806040838503121561388c57600080fd5b600061389885856133ee565b925050602061347b858286016133ee565b6000806000606084860312156138be57600080fd5b60006138ca86866133ee565b93505060206138db868287016133ee565b92505060406134c8868287016133ee565b60006138f8838361397a565b505060200190565b613909816145fc565b82525050565b613909816145db565b6000613923826145c9565b61392d81856145cd565b9350613938836145c3565b8060005b8381101561396657815161395088826138ec565b975061395b836145c3565b92505060010161393c565b509495945050505050565b613909816145e6565b61390981610fb7565b61390961398f82610fb7565b610fb7565b600061399f826145c9565b6139a981856145cd565b93506139b9818560208601614620565b6139c28161464c565b9093019392505050565b613909816145eb565b61390981614607565b61390981614615565b60006139f4601f836145cd565b7f43616e6e6f74207472616e7366657220746f2074686973206164647265737300815260200192915050565b6000613a2d6035836145cd565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613a846013836145cd565b7227bbb732b91037b7363c90333ab731ba34b7b760691b815260200192915050565b6000613ab3601e836145cd565b7f4f6e6c792045786368616e6765722063616e20696e766f6b6520746869730000815260200192915050565b6000613aec6044836145d6565b7f41746f6d696353796e746845786368616e676528616464726573732c6279746581527f7333322c75696e743235362c627974657333322c75696e743235362c616464726020820152636573732960e01b604082015260440192915050565b6000613b58601b836145cd565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613b916028836145d6565b7f45786368616e67655265636c61696d28616464726573732c627974657333322c81526775696e743235362960c01b602082015260280192915050565b6000613bdb601e836145cd565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613c14601b836145cd565b7f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000815260200192915050565b6000613c4d6031836145d6565b7f45786368616e6765547261636b696e6728627974657333322c627974657333328152702c75696e743235362c75696e743235362960781b602082015260310192915050565b6000613ca06011836145d6565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000613ccd603e836145d6565b7f53796e746845786368616e676528616464726573732c627974657333322c756981527f6e743235362c627974657333322c75696e743235362c616464726573732900006020820152603e0192915050565b6000613d2c601b836145cd565b7f52657761726473446973747269627574696f6e206e6f74207365740000000000815260200192915050565b6000613d65602f836145cd565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613db66021836145d6565b7f417070726f76616c28616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b6000613df96027836145d6565b7f45786368616e676552656261746528616464726573732c627974657333322c75815266696e743235362960c81b602082015260270192915050565b6000613e426026836145cd565b7f43616e6e6f74207472616e73666572207374616b6564206f7220657363726f778152656564204f4b5360d01b602082015260400192915050565b6000613e8a601e836145cd565b7f412073796e7468206f72204f4b53207261746520697320696e76616c69640000815260200192915050565b6000613ec3601a836145d6565b7f546f6b656e5374617465557064617465642861646472657373290000000000008152601a0192915050565b6000613efc6032836145d6565b7f4163636f756e744c69717569646174656428616464726573732c75696e743235815271362c75696e743235362c616464726573732960701b602082015260320192915050565b6000613f506019836145d6565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613f896015836145cd565b744e6f20737570706c79206973206d696e7461626c6560581b815260200192915050565b6000613fba6021836145d6565b7f5472616e7366657228616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b6000613ffd6017836145cd565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b613909816145f6565b600061093482613adf565b600061093482613b84565b600061093482613c40565b600061405e82613c93565b915061406a8284613983565b50602001919050565b600061093482613cc0565b600061093482613da9565b600061093482613dec565b600061093482613eb6565b600061093482613eef565b600061405e82613f43565b600061093482613fad565b60208101610934828461390f565b602081016109348284613900565b604081016140ea8285613900565b61114f602083018461397a565b60408101614105828561390f565b61114f602083018461390f565b6101208101614121828c61390f565b61412e602083018b61390f565b61413b604083018a61397a565b614148606083018961397a565b614155608083018861397a565b61416260a0830187613900565b61416f60c0830186613971565b61417c60e083018561390f565b61418a61010083018461397a565b9a9950505050505050505050565b61012081016141a7828c61390f565b6141b4602083018b61390f565b6141c1604083018a61397a565b6141ce606083018961397a565b6141db608083018861397a565b61416260a083018761390f565b606081016141f6828661390f565b614203602083018561390f565b612da2604083018461397a565b604081016140ea828561390f565b60c0810161422c828961390f565b614239602083018861397a565b614246604083018761397a565b614253606083018661397a565b614260608083018561390f565b6123c760a083018461397a565b6060810161427b828661390f565b614288602083018561397a565b612da2604083018461390f565b6020808252810161114f8184613918565b602081016109348284613971565b60208101610934828461397a565b60408101614105828561397a565b604081016142de828561397a565b61114f6020830184613971565b604081016140ea828561397a565b60408101614307828561397a565b818103602083015261114c8184613994565b60a08101614327828861397a565b614334602083018761397a565b614341604083018661397a565b61434e606083018561397a565b61435b608083018461390f565b9695505050505050565b60608101614373828661397a565b614203602083018561397a565b60c080825281016143918189613994565b90506143a060208301886139de565b6143ad604083018761397a565b6143ba60608301866139d5565b6143c760808301856139d5565b6123c760a08301846139d5565b60c080825281016143e58189613994565b90506143f460208301886139de565b614401604083018761397a565b6143ba606083018661397a565b60c0808252810161441f8189613994565b905061442e60208301886139de565b61443b604083018761397a565b614448606083018661397a565b6143c7608083018561397a565b6020810161093482846139cc565b6020808252810161114f8184613994565b60208082528101610934816139e7565b6020808252810161093481613a20565b6020808252810161093481613a77565b6020808252810161093481613aa6565b6020808252810161093481613b4b565b6020808252810161093481613bce565b6020808252810161093481613c07565b6020808252810161093481613d1f565b6020808252810161093481613d58565b6020808252810161093481613e35565b6020808252810161093481613e7d565b6020808252810161093481613f7c565b6020808252810161093481613ff0565b60408101614552828561397a565b61114f60208301846139cc565b6060810161427b828661397a565b602081016109348284614029565b60405181810167ffffffffffffffff8111828210171561459a57600080fd5b604052919050565b600067ffffffffffffffff8211156145b957600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b600061093482612de2565b151590565b6000610934826145db565b60ff1690565b6000610934826145eb565b600061093461398f83610fb7565b600061093482610fb7565b60005b8381101561463b578181015183820152602001614623565b83811115611f7d5750506000910152565b601f01601f191690565b61465f816145db565b81146111d457600080fd5b61465f816145e6565b61465f81610fb7565b61465f816145eb56fea365627a7a723158208850557d7ba8358c51f548f086b14394d51fb41bb688d2c5eead52cff38ec8b56c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "oksRedeemed",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "AccountLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "AtomicSynthExchange",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "ExchangeRebate",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "ExchangeReclaim",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						}
					],
					"name": "ExchangeTracking",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "SynthExchange",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTokenState",
							"type": "address"
						}
					],
					"name": "TokenStateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECIMALS",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TOKEN_NAME",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TOKEN_SYMBOL",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "anySynthOrOKSRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableSynthCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "availableSynths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "burnSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "burnSynthsToTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						}
					],
					"name": "burnSynthsToTargetOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "collateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "debtBalanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "emitAtomicSynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "emitExchangeRebate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "emitExchangeReclaim",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						}
					],
					"name": "emitExchangeTracking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "emitSynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeAtomically",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "rewardAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalfWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "rewardAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "rewardAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithTrackingForInitiator",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithVirtual",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "contract IVirtualSynth",
							"name": "vSynth",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isWaitingPeriod",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "issueMaxSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						}
					],
					"name": "issueMaxSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "susdAmount",
							"type": "uint256"
						}
					],
					"name": "liquidateDelinquentAccount",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "maxIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "migrateEscrowBalanceToRewardEscrowV2",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "mint",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "mintSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "mintSecondaryRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oUSD",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "remainingIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyIssued",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalSystemDebt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						}
					],
					"name": "setTokenState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settle",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntriesSettled",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "synthAddress",
							"type": "address"
						}
					],
					"name": "synthsByAddress",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tokenState",
					"outputs": [
						{
							"internalType": "contract TokenState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedSynthsExcludeOtherCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "transferableOikos",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x91bc09eff1653e95cf8f65314278c21c26316d7660978a4525f3352f4e937c8e",
				"urls": [
					"bzz-raw://e97f41142c0e39151ab0e2c91ccdbaaf7dbd4c45a1a3431031a11b7ac7e3cfc4",
					"dweb:/ipfs/QmXRK6c44XrZ8EZTwTPRVkf7WrM5yMUk5SXx6SAXbnLeoX"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Oikos.sol": "Oikos"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Oikos.sol": {
						"keccak256": "0x91bc09eff1653e95cf8f65314278c21c26316d7660978a4525f3352f4e937c8e",
						"urls": [
							"bzz-raw://e97f41142c0e39151ab0e2c91ccdbaaf7dbd4c45a1a3431031a11b7ac7e3cfc4",
							"dweb:/ipfs/QmXRK6c44XrZ8EZTwTPRVkf7WrM5yMUk5SXx6SAXbnLeoX"
						]
					}
				},
				"version": 1
			}
		},
		"DebtCache": {
			"bytecode": "60806040526008805461ff001960ff1990911660011716905534801561002457600080fd5b5060405161343d38038061343d8339818101604052604081101561004757600080fd5b50805160209091015181818080836001600160a01b0381166100b0576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b031990921691909117905550505050506132ff8061013e6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063759076e51161010f578063b13cd785116100a2578063d0fffafd11610071578063d0fffafd14610707578063d685743a1461070f578063e3476cd414610732578063fc5247731461073a576101e5565b8063b13cd785146105f5578063b7224ec714610663578063b8d86d2e14610691578063cda218c714610699576101e5565b80638dd5bfbc116100de5780638dd5bfbc146105a55780639e3b92ca146105c2578063a5f27edb146105e5578063af5355d8146105ed576101e5565b8063759076e51461056c57806379ba50971461058d578063899ffef4146105955780638da5cb5b1461059d576101e5565b80632af64bd31161018757806353a47bb71161015657806353a47bb714610479578063614d08f8146104815780636bf7c435146104895780637418536014610564576101e5565b80632af64bd314610408578063392e53cd146104245780633a900a2e1461042c5780634b964fa71461045c576101e5565b806307619a5f116101c357806307619a5f146102495780630fb38465146103075780631627540c1461032457806317b38db41461034a576101e5565b806304bd11e5146101ea57806304f3bcec1461020b578063053932621461022f575b600080fd5b6102096004803603602081101561020057600080fd5b50351515610742565b005b610213610756565b604080516001600160a01b039092168252519081900360200190f35b610237610765565b60408051918252519081900360200190f35b6102b76004803603602081101561025f57600080fd5b810190602081018135600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b50909250905061076c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102f35781810151838201526020016102db565b505050509050019250505060405180910390f35b6102376004803603602081101561031d57600080fd5b50356107b3565b6102096004803603602081101561033a57600080fd5b50356001600160a01b03166107c5565b6102096004803603604081101561036057600080fd5b810190602081018135600160201b81111561037a57600080fd5b82018360208201111561038c57600080fd5b803590602001918460208302840111600160201b831117156103ad57600080fd5b919390929091602081019035600160201b8111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460208302840111600160201b831117156103fd57600080fd5b509092509050610821565b61041061089c565b604080519115158252519081900360200190f35b6104106109a6565b6104346109b4565b6040805194855260208501939093529015158383015215156060830152519081900360800190f35b6102096004803603602081101561047257600080fd5b50356109e5565b610213610b0e565b610237610b1d565b6104f76004803603602081101561049f57600080fd5b810190602081018135600160201b8111156104b957600080fd5b8201836020820111156104cb57600080fd5b803590602001918460208302840111600160201b831117156104ec57600080fd5b509092509050610b2d565b604051808060200185815260200184815260200183151515158152602001828103825286818151815260200191508051906020019060200280838360005b8381101561054d578181015183820152602001610535565b505050509050019550505050505060405180910390f35b610209610b80565b610574610d48565b6040805192835290151560208301528051918290030190f35b610209610d5b565b6102b7610e17565b610213610fab565b610209600480360360208110156105bb57600080fd5b5035610fba565b610209600480360360408110156105d857600080fd5b5080359060200135611096565b610410611104565b61023761110d565b6102b76004803603602081101561060b57600080fd5b810190602081018135600160201b81111561062557600080fd5b82018360208201111561063757600080fd5b803590602001918460208302840111600160201b8311171561065857600080fd5b50909250905061111c565b6102096004803603604081101561067957600080fd5b506001600160a01b038135811691602001351661115a565b610574611525565b610209600480360360208110156106af57600080fd5b810190602081018135600160201b8111156106c957600080fd5b8201836020820111156106db57600080fd5b803590602001918460208302840111600160201b831117156106fc57600080fd5b5090925090506117aa565b61023761193f565b6102096004803603604081101561072557600080fd5b5080359060200135611945565b6102096119d2565b610410611c84565b61074a611c91565b61075381611cf7565b50565b6002546001600160a01b031681565b6004545b90565b60606107aa838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611d4492505050565b90505b92915050565b60009081526005602052604090205490565b6107cd611dd4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610829611e1d565b6108968484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201829052509250611e97915050565b50505050565b600060606108a8610e17565b905060005b815181101561099d5760008282815181106108c457fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561092c57600080fd5b505afa158015610940573d6000803e3d6000fd5b505050506040513d602081101561095657600080fd5b50516001600160a01b031614158061098357506000818152600360205260409020546001600160a01b0316155b156109945760009350505050610769565b506001016108ad565b50600191505090565b600854610100900460ff1681565b6007546004546008546000928392839283929190829060ff166109d68261200d565b94509450945094505090919293565b6109ed611c91565b60006109f882612026565b90506000821315610a6e57631bd554d160e21b60005260056020526000805160206132ab83398151915254610a33908263ffffffff61203116565b631bd554d160e21b60005260056020526000805160206132ab83398151915255600454610a66908263ffffffff61203116565b600455610ad5565b631bd554d160e21b60005260056020526000805160206132ab83398151915254610a9e908263ffffffff61208b16565b631bd554d160e21b60005260056020526000805160206132ab83398151915255600454610ad1908263ffffffff61208b16565b6004555b60045460408051918252517f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be5999181900360200190a15050565b6001546001600160a01b031681565b6844656274436163686560b81b81565b60606000806000610b708686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506120e892505050565b9299919850965090945092505050565b6060610b8a610e17565b905060005b8151811015610d44576000828281518110610ba657fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610c5c578181015183820152602001610c44565b50505050905090810190601f168015610c895780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610ca757600080fd5b505afa158015610cbb573d6000803e3d6000fd5b505050506040513d6020811015610cd157600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610b8f565b5050565b600080610d53612314565b915091509091565b6001546001600160a01b03163314610da45760405162461bcd60e51b81526004018080602001828103825260358152602001806132056035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610e226126b4565b60408051600880825261012082019092529192506060919060208201610100803883390190505090506524b9b9bab2b960d11b81600081518110610e6257fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110610e8857fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110610eb257fe5b6020026020010181815250506b53797374656d53746174757360a01b81600381518110610edb57fe5b6020026020010181815250507021b7b63630ba32b930b626b0b730b3b2b960791b81600481518110610f0957fe5b6020026020010181815250506d57726170706572466163746f727960901b81600581518110610f3457fe5b6020026020010181815250506b22ba3432b92bb930b83832b960a11b81600681518110610f5d57fe5b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b81600781518110610f8e57fe5b602002602001018181525050610fa48282612705565b9250505090565b6000546001600160a01b031681565b610fc2611dd4565b6000610fcc6127c1565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561100f57600080fd5b505afa158015611023573d6000803e3d6000fd5b505050506040513d602081101561103957600080fd5b50516001600160a01b031614611085576040805162461bcd60e51b815260206004820152600c60248201526b53796e74682065786973747360a01b604482015290519081900360640190fd5b600090815260056020526040812055565b61109e6127d5565b6000828152600660205260408120548201908112156110ee5760405162461bcd60e51b81526004018080602001828103825260248152602001806131e16024913960400191505060405180910390fd5b6000928352600660205260409092209190915550565b60085460ff1690565b60006111176128cb565b905090565b60606107aa83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061297a92505050565b611162611dd4565b600854610100900460ff16156111b5576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b6008805461ff001916610100179055604080516372cb051f60e01b815290516060916001600160a01b038416916372cb051f91600480820192600092909190829003018186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561124557600080fd5b8101908080516040519392919084600160201b82111561126457600080fd5b90830190602082018581111561127957600080fd5b82518660208202830111600160201b8211171561129557600080fd5b82525081516020918201928201910280838360005b838110156112c25781810151838201526020016112aa565b5050505090500160405250505090506000815111611327576040805162461bcd60e51b815260206004820152601d60248201527f70726576696f75732049737375657220686173206e6f2073796e746873000000604482015290519081900360640190fd5b6060836001600160a01b03166307619a5f836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015611388578181015183820152602001611370565b505050509050019250505060006040518083038186803b1580156113ab57600080fd5b505afa1580156113bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156113e857600080fd5b8101908080516040519392919084600160201b82111561140757600080fd5b90830190602082018581111561141c57600080fd5b82518660208202830111600160201b8211171561143857600080fd5b82525081516020918201928201910280838360005b8381101561146557818101518382015260200161144d565b50505050905001604052505050905060008090505b825181101561151e57600082828151811061149157fe5b60200260200101511115611516576114eb8282815181106114ae57fe5b6020026020010151600660008685815181106114c657fe5b602002602001015181526020019081526020016000205461203190919063ffffffff16565b600660008584815181106114fb57fe5b60200260200101518152602001908152602001600020819055505b60010161147a565b5050505050565b60008060606115326127c1565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561156a57600080fd5b505afa15801561157e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156115a757600080fd5b8101908080516040519392919084600160201b8211156115c657600080fd5b9083019060208201858111156115db57600080fd5b82518660208202830111600160201b821117156115f757600080fd5b82525081516020918201928201910280838360005b8381101561162457818101518382015260200161160c565b5050505090500160405250505090506060600061163f612a02565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b8381101561169d578181015183820152602001611685565b505050509050019250505060006040518083038186803b1580156116c057600080fd5b505afa1580156116d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156116fd57600080fd5b8101908080516040519392919084600160201b82111561171c57600080fd5b90830190602082018581111561173157600080fd5b82518660208202830111600160201b8211171561174d57600080fd5b82525081516020918201928201910280838360005b8381101561177a578181015183820152602001611762565b5050505091909101604052506020015192945091925061179f91508490508383612a1d565b945094505050509091565b6117b2612c36565b606060006117be612a02565b6001600160a01b031663c8e5bbd585856040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801561183057600080fd5b505afa158015611844573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561186d57600080fd5b8101908080516040519392919084600160201b82111561188c57600080fd5b9083019060208201858111156118a157600080fd5b82518660208202830111600160201b821117156118bd57600080fd5b82525081516020918201928201910280838360005b838110156118ea5781810151838201526020016118d2565b505050509190910160408181526020938401518a850280840186019092528a8352969850959650610896959094508993508892839250850190849080828437600092019190915250869250859150611e979050565b60075490565b61194d611c91565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061197d57fe5b602090810291909101015260408051600180825281830190925260609181602001602082028038833901905050905082816000815181106119ba57fe5b60200260200101818152505061089682826000611e97565b6119da612c36565b60606119e46127c1565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611a5957600080fd5b8101908080516040519392919084600160201b821115611a7857600080fd5b908301906020820185811115611a8d57600080fd5b82518660208202830111600160201b82111715611aa957600080fd5b82525081516020918201928201910280838360005b83811015611ad6578181015183820152602001611abe565b50505050905001604052505050905060606000806000611af5856120e8565b6b11955515549154d7d111509560a21b600090815260056020527fb03402a6fc396b42a4a74df8120873f820800f1398191168ef707a9051d6d76e849055845194985092965090945092508491905b81811015611bae576000878281518110611b5a57fe5b60200260200101519050611b77818561203190919063ffffffff16565b935080600560008b8581518110611b8a57fe5b60209081029190910181015182528101919091526040016000205550600101611b44565b506c115610d31551115117d1115095609a1b600090815260056020527fbca14b7b4212dd98a4b255832d862779dccd9aba14592c2e2c4e62d4efc07bc7859055611bfe838663ffffffff612c9c16565b6004819055426007556040805182815290519192507f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be599919081900360200190a16040805142815290517fc481e742c89630d4b1a5ed3a0fc624c1c41ed463bd00ac26a7e93c71e932126f9181900360200190a1611c7a84611cf7565b5050505050505050565b600061111760075461200d565b611c996127c1565b6001600160a01b0316336001600160a01b031614611cf5576040805162461bcd60e51b815260206004820152601460248201527329b2b73232b91034b9903737ba1024b9b9bab2b960611b604482015290519081900360640190fd5b565b60085460ff16151581151514610753576008805460ff19168215159081179091556040517f8eebec690c34bbf0fe0d5b93e442beaf16bdaf99052569581de2dcb3e31a53a790600090a250565b6060600082519050606081604051908082528060200260200182016040528015611d78578160200160208202803883390190505b50905060005b82811015611dcc5760066000868381518110611d9657fe5b6020026020010151815260200190815260200160002054828281518110611db957fe5b6020908102919091010152600101611d7e565b509392505050565b6000546001600160a01b03163314611cf55760405162461bcd60e51b815260040180806020018281038252602f81526020018061325b602f913960400191505060405180910390fd5b611e256127c1565b6001600160a01b0316336001600160a01b03161480611e5c5750611e47612cb7565b6001600160a01b0316336001600160a01b0316145b611cf55760405162461bcd60e51b815260040180806020018281038252602181526020018061323a6021913960400191505060405180910390fd5b825182518114611eee576040805162461bcd60e51b815260206004820152601a60248201527f496e707574206172726179206c656e6774687320646966666572000000000000604482015290519081900360640190fd5b6000806060611efd8787612cce565b905060005b84811015611f8c576000888281518110611f1857fe5b602002602001015190506000838381518110611f3057fe5b60200260200101519050611f6060056000848152602001908152602001600020548761203190919063ffffffff16565b9550611f72858263ffffffff61203116565b600092835260056020526040909220559250600101611f02565b50818314611ff557600454611fb784611fab838663ffffffff61203116565b9063ffffffff61208b16565b60048190556040805182815290519192507f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be599919081900360200190a1505b84156120045761200485611cf7565b50505050505050565b600081420361201a6128cb565b10806107ad5750501590565b60006107ad82612f99565b6000828201838110156107aa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000828211156120e2576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60606000806000606060006120fb612a02565b6001600160a01b031663c8e5bbd5886040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015612159578181015183820152602001612141565b505050509050019250505060006040518083038186803b15801561217c57600080fd5b505afa158015612190573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156121b957600080fd5b8101908080516040519392919084600160201b8211156121d857600080fd5b9083019060208201858111156121ed57600080fd5b82518660208202830111600160201b8211171561220957600080fd5b82525081516020918201928201910280838360005b8381101561223657818101518382015260200161221e565b505050509190910160405250602001519294509192506060915061225c90508884612cce565b905060008061226c8a8686612a1d565b9150915060008061227b612faf565b6001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401604080518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d60408110156122dc57600080fd5b508051602090910151909250905084828588806122f65750835b806122fe5750855b9a509a509a509a50505050505050509193509193565b60008060606123216127c1565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561235957600080fd5b505afa15801561236d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561239657600080fd5b8101908080516040519392919084600160201b8211156123b557600080fd5b9083019060208201858111156123ca57600080fd5b82518660208202830111600160201b821117156123e657600080fd5b82525081516020918201928201910280838360005b838110156124135781810151838201526020016123fb565b5050505090500160405250505090506060600061242e612a02565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b8381101561248c578181015183820152602001612474565b505050509050019250505060006040518083038186803b1580156124af57600080fd5b505afa1580156124c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156124ec57600080fd5b8101908080516040519392919084600160201b82111561250b57600080fd5b90830190602082018581111561252057600080fd5b82518660208202830111600160201b8211171561253c57600080fd5b82525081516020918201928201910280838360005b83811015612569578181015183820152602001612551565b505050509190910160405250602001519294509192506060915061258f90508484612cce565b905060008061259f868686612a1d565b845191935091506000805b828110156125e2576125d88682815181106125c157fe5b60200260200101518361203190919063ffffffff16565b91506001016125aa565b506000806125ee612faf565b6001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401604080518083038186803b15801561262557600080fd5b505afa158015612639573d6000803e3d6000fd5b505050506040513d604081101561264f57600080fd5b508051602090910151909250905061266d838363ffffffff61203116565b925085831061268b57612686838763ffffffff61208b16565b61268e565b60005b925082888061269a5750815b806126a25750855b9b509b50505050505050505050509091565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106126f657fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015612735578160200160208202803883390190505b50905060005b83518110156127775783818151811061275057fe5b602002602001015182828151811061276457fe5b602090810291909101015260010161273b565b5060005b82518110156127ba5782818151811061279057fe5b60200260200101518282865101815181106127a757fe5b602090810291909101015260010161277b565b5092915050565b60006111176524b9b9bab2b960d11b612fcd565b60006127df6130aa565b6001600160a01b031663e0aa2797336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561283457600080fd5b505afa158015612848573d6000803e3d6000fd5b505050506040513d602081101561285e57600080fd5b50516000549091506001600160a01b03163314808061287a5750815b610d44576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920646562742069737375657273206d61792063616c6c207468697300604482015290519081900360640190fd5b60006128d56130c6565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561294957600080fd5b505afa15801561295d573d6000803e3d6000fd5b505050506040513d602081101561297357600080fd5b5051905090565b60606000825190506060816040519080825280602002602001820160405280156129ae578160200160208202803883390190505b50905060005b82811015611dcc57600560008683815181106129cc57fe5b60200260200101518152602001908152602001600020548282815181106129ef57fe5b60209081029190910101526001016129b4565b60006111176c45786368616e6765526174657360981b612fcd565b600080600080612a2b6130e3565b6001600160a01b0316631e33fc6b6040518163ffffffff1660e01b8152600401604080518083038186803b158015612a6257600080fd5b505afa158015612a76573d6000803e3d6000fd5b505050506040513d6040811015612a8c57600080fd5b5080516020909101519092509050600080612aa56130e3565b6001600160a01b031663ad79a8586040518163ffffffff1660e01b8152600401604080518083038186803b158015612adc57600080fd5b505afa158015612af0573d6000803e3d6000fd5b505050506040513d6040811015612b0657600080fd5b50805160209091015190925090508680612b1d5750825b80612b255750805b9450612b37848363ffffffff61203116565b9550612bb5612b44613102565b6001600160a01b031663ee5f3f5c6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b7c57600080fd5b505afa158015612b90573d6000803e3d6000fd5b505050506040513d6020811015612ba657600080fd5b5051879063ffffffff61203116565b955060005b8951811015612c2957612c1f612c128a8381518110612bd557fe5b6020026020010151600660008e8681518110612bed57fe5b602002602001015181526020019081526020016000205461311c90919063ffffffff16565b889063ffffffff61203116565b9650600101612bba565b5050505050935093915050565b6000546001600160a01b03163314611cf557612c50613131565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015612c8857600080fd5b505afa158015610896573d6000803e3d6000fd5b600082821015612cae578183036107aa565b50600092915050565b60006111176822bc31b430b733b2b960b91b612fcd565b606060008351905080604051908082528060200260200182016040528015612d00578160200160208202803883390190505b5091506060612d0d6127c1565b6001600160a01b0316633b6afe40866040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015612d6b578181015183820152602001612d53565b505050509050019250505060006040518083038186803b158015612d8e57600080fd5b505afa158015612da2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612dcb57600080fd5b8101908080516040519392919084600160201b821115612dea57600080fd5b908301906020820185811115612dff57600080fd5b82518660208202830111600160201b82111715612e1b57600080fd5b82525081516020918201928201910280838360005b83811015612e48578181015183820152602001612e30565b50505050905001604052505050905060008090505b82811015612f90576000828281518110612e7357fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415612edc576040805162461bcd60e51b815260206004820152601460248201527314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1757600080fd5b505afa158015612f2b573d6000803e3d6000fd5b505050506040513d6020811015612f4157600080fd5b50518751909150612f6f90889085908110612f5857fe5b60200260200101518261311c90919063ffffffff16565b868481518110612f7b57fe5b60209081029190910101525050600101612e5d565b50505092915050565b6000808212612fa857816107ad565b5060000390565b600061111773233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816127ba5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561306f578181015183820152602001613057565b50505050905090810190601f16801561309c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60006111176d57726170706572466163746f727960901b612fcd565b60006111176e466c657869626c6553746f7261676560881b612fcd565b60006111177021b7b63630ba32b930b626b0b730b3b2b960791b612fcd565b60006111176b22ba3432b92bb930b83832b960a11b612fcd565b60006107aa8383670de0b6b3a764000061314b565b60006111176b53797374656d53746174757360a01b612fcd565b600080600a8304613162868663ffffffff61318716565b8161316957fe5b0490506005600a82061061317b57600a015b600a9004949350505050565b600082613196575060006107ad565b828202828482816131a357fe5b04146107aa5760405162461bcd60e51b815260040180806020018281038252602181526020018061328a6021913960400191505060405180910390fdfe4578636c7564656420646562742063616e6e6f74206265636f6d65206e65676174697665596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697053656e646572206973206e6f7420497373756572206f722045786368616e6765724f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776bebc2397ce8059e368788ed489f40557a079814cc3e9cde88a639d7488c8b7fa265627a7a7231582045744232ffcacdc14340f4c1ee2ce355ed9f9604aa4b27908befa6a29cccf2a864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "DebtCacheSnapshotTaken",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "cachedDebt",
							"type": "uint256"
						}
					],
					"name": "DebtCacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"name": "DebtCacheValidityChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "isStale",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheStale",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cachedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "cachedSynthDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "cachedSynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "oksIssuedDebts",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "currentSynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "debtValues",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256",
							"name": "futuresDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "excludedDebt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtSnapshotStaleTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "excludedIssuedDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "excludedDebts",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IDebtCache",
							"name": "prevDebtCache",
							"type": "address"
						},
						{
							"internalType": "contract IIssuer",
							"name": "prevIssuer",
							"type": "address"
						}
					],
					"name": "importExcludedIssuedDebts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isInitialized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "purgeCachedSynthDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "delta",
							"type": "int256"
						}
					],
					"name": "recordExcludedDebtChange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "takeDebtSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalNonOksBackedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "excludedDebt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "currencyRate",
							"type": "uint256"
						}
					],
					"name": "updateCachedSynthDebtWithRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "updateCachedSynthDebts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "currencyRates",
							"type": "uint256[]"
						}
					],
					"name": "updateCachedSynthDebtsWithRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "amount",
							"type": "int256"
						}
					],
					"name": "updateCachedoUSDDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "currentlyInvalid",
							"type": "bool"
						}
					],
					"name": "updateDebtCacheValidity",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x2decd93a115bd25610435c321bf42fffd3b9188ea20e32ef541babb472d37c1b",
				"urls": [
					"bzz-raw://f54b6963cd39f9a2a70179acd7f64c6e4a64f534fb4799127d0811c2187e1ce8",
					"dweb:/ipfs/QmQCAxutHJveM8yWEoeFW95WmQACUYbbswdXu7fgqRZLUm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DebtCache.sol": "DebtCache"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DebtCache.sol": {
						"keccak256": "0x2decd93a115bd25610435c321bf42fffd3b9188ea20e32ef541babb472d37c1b",
						"urls": [
							"bzz-raw://f54b6963cd39f9a2a70179acd7f64c6e4a64f534fb4799127d0811c2187e1ce8",
							"dweb:/ipfs/QmQCAxutHJveM8yWEoeFW95WmQACUYbbswdXu7fgqRZLUm"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangerWithFeeRecAlternatives": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620059ab380380620059ab833981810160405260408110156200003757600080fd5b50805160209091015181818080836001600160a01b038116620000a1576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b0319909216919091179055505050505061587b80620001306000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806357af302c116101045780638da5cb5b116100a2578063c39def0b11610071578063c39def0b14610562578063d6f32e061461059e578063dc703e73146105ca578063f450aa34146105f3576101cf565b80638da5cb5b146105165780638e52049c1461051e578063a4bca13114610552578063c193f0d81461055a576101cf565b806379ba5097116100de57806379ba5097146104915780637dd1a57a1461049957806389257117146104b6578063899ffef4146104be576101cf565b806357af302c14610464578063614d08f8146104815780637418536014610489576101cf565b80631a5c609511610171578063372a395a1161014b578063372a395a146103995780634c268fc8146103a15780634f8633d2146103d957806353a47bb71461045c576101cf565b80631a5c60951461032e5780631b16802c146103515780632af64bd31461037d576101cf565b80630b9e31c9116101ad5780630b9e31c914610259578063104849bf146102785780631627540c146102be57806319d5c665146102e4576101cf565b806304f3bcec146101d4578063059c29ec146101f85780630ae81a5e14610236575b600080fd5b6101dc61061c565b604080516001600160a01b039092168252519081900360200190f35b6102246004803603604081101561020e57600080fd5b506001600160a01b03813516906020013561062b565b60408051918252519081900360200190f35b6102246004803603604081101561024c57600080fd5b50803590602001356106cf565b6102766004803603602081101561026f57600080fd5b50356106db565b005b610224600480360360c081101561028e57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356107ff565b610276600480360360208110156102d457600080fd5b50356001600160a01b031661090e565b610310600480360360408110156102fa57600080fd5b506001600160a01b03813516906020013561096a565b60408051938452602084019290925282820152519081900360600190f35b6102246004803603604081101561034457600080fd5b5080359060200135610988565b6103106004803603604081101561036757600080fd5b506001600160a01b0381351690602001356109e5565b610385610a66565b604080519115158252519081900360200190f35b610224610b71565b610224600480360360808110156103b757600080fd5b506001600160a01b038135169060208101359060408101359060600135610b80565b61043b60048036036101208110156103f057600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a081013582169160c082013515159160e0810135909116906101000135610ca0565b604080519283526001600160a01b0390911660208301528051918290030190f35b6101dc610ec6565b6103856004803603602081101561047a57600080fd5b5035610ed5565b610224610f5a565b610276610f7e565b610276611142565b610224600480360360208110156104af57600080fd5b50356111fe565b61022461127d565b6104c6611287565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105025781810151838201526020016104ea565b505050509050019250505060405180910390f35b6101dc6112fc565b61052661130b565b6040805167ffffffffffffffff90931683526001600160c01b0390911660208301528051918290030190f35b61022461132d565b610385611337565b6105856004803603604081101561057857600080fd5b5080359060200135611341565b6040805192835290151560208301528051918290030190f35b610385600480360360408110156105b457600080fd5b506001600160a01b03813516906020013561135a565b610310600480360360608110156105e057600080fd5b508035906020810135906040013561138c565b6103106004803603606081101561060957600080fd5b50803590602081013590604001356113af565b6002546001600160a01b031681565b60006106c661063861173f565b6001600160a01b031663f1406dc885856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561069557600080fd5b505afa1580156106a9573d6000803e3d6000fd5b505050506040513d60208110156106bf57600080fd5b505161175a565b90505b92915050565b60006106c683836117b9565b6106e36117dd565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561071b57600080fd5b505afa15801561072f573d6000803e3d6000fd5b50505050600061073d6117f7565b6001600160a01b031663a47af19e836040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b15801561078157600080fd5b505af1158015610795573d6000803e3d6000fd5b505050506040513d60408110156107ab57600080fd5b50602001519050806107fb576040805162461bcd60e51b815260206004820152601460248201527314de5b9d1a081c1c9a58d9481a5cc81d985b1a5960621b604482015290519081900360640190fd5b5050565b60008061080a61181b565b9050336001600160a01b03821614806108975750604080516316b2213f60e01b815233600482015290516000916001600160a01b038416916316b2213f91602480820192602092909190829003018186803b15801561086857600080fd5b505afa15801561087c573d6000803e3d6000fd5b505050506040513d602081101561089257600080fd5b505114155b6108d25760405162461bcd60e51b81526004018080602001828103825260418152602001806157e36041913960600191505060405180910390fd5b60006108e1898989898961182e565b90935090506108f08186611eef565b83156109025761090284878584611f9e565b50509695505050505050565b610916612021565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000806000610979858561206c565b50919790965090945092505050565b600080600061099785856123b5565b9150915080156109dd576040805162461bcd60e51b815260206004820152600c60248201526b746f6f20766f6c6174696c6560a01b604482015290519081900360640190fd5b509392505050565b60008060006109f26117dd565b6001600160a01b03166342a28e21856040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b158015610a3557600080fd5b505afa158015610a49573d6000803e3d6000fd5b50505050610a59858560016123f0565b9250925092509250925092565b60006060610a72611287565b905060005b8151811015610b67576000828281518110610a8e57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610af657600080fd5b505afa158015610b0a573d6000803e3d6000fd5b505050506040513d6020811015610b2057600080fd5b50516001600160a01b0316141580610b4d57506000818152600360205260409020546001600160a01b0316155b15610b5e5760009350505050610b6e565b50600101610a77565b5060019150505b90565b6000610b7b612775565b905090565b816000610b8b61282c565b6001600160a01b03166332608039866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d6020811015610bf857600080fd5b5051604080516370a0823160e01b81526001600160a01b038981166004830152915191909216916370a08231916024808301926020929190829003018186803b158015610c4457600080fd5b505afa158015610c58573d6000803e3d6000fd5b505050506040513d6020811015610c6e57600080fd5b5051905080821115610c7e578091505b8215610c9757610c94828463ffffffff61284016565b91505b50949350505050565b6000806000610cad61181b565b9050336001600160a01b0382161480610d3a5750604080516316b2213f60e01b815233600482015290516000916001600160a01b038416916316b2213f91602480820192602092909190829003018186803b158015610d0b57600080fd5b505afa158015610d1f573d6000803e3d6000fd5b505050506040513d6020811015610d3557600080fd5b505114155b610d755760405162461bcd60e51b81526004018080602001828103825260418152602001806157e36041913960600191505060405180910390fd5b60008c6001600160a01b03168c6001600160a01b031614610e8457610d9861289a565b6001600160a01b031663faf431bb8e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b158015610e0757600080fd5b505afa158015610e1b573d6000803e3d6000fd5b505050506040513d6020811015610e3157600080fd5b5051610e84576040805162461bcd60e51b815260206004820152601d60248201527f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000604482015290519081900360640190fd5b610e928d8c8c8c8c8c6128b9565b9195509093509050610ea48187611eef565b8415610eb657610eb6858a8684611f9e565b5050995099975050505050505050565b6001546001600160a01b031681565b600080610ee06117f7565b6001600160a01b031663cb1ec317846040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015610f2257600080fd5b505afa158015610f36573d6000803e3d6000fd5b505050506040513d6040811015610f4c57600080fd5b50602001519150505b919050565b7f45786368616e67657257697468466565526563416c7465726e6174697665730081565b6060610f88611287565b905060005b81518110156107fb576000828281518110610fa457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561105a578181015183820152602001611042565b50505050905090810190601f1680156110875780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156110a557600080fd5b505afa1580156110b9573d6000803e3d6000fd5b505050506040513d60208110156110cf57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610f8d565b6001546001600160a01b0316331461118b5760405162461bcd60e51b815260040180806020018281038252603581526020018061575e6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006112086117f7565b6001600160a01b0316637dd1a57a836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561124b57600080fd5b505afa15801561125f573d6000803e3d6000fd5b505050506040513d602081101561127557600080fd5b505192915050565b6000610b7b612eaa565b606080611292612f24565b6040805160018082528183019092529192506060919060208083019080388339019050509050755669727475616c53796e74684d6173746572636f707960501b816000815181106112df57fe5b6020026020010181815250506112f582826130e4565b9250505090565b6000546001600160a01b031681565b60045467ffffffffffffffff811690600160401b90046001600160c01b031682565b6000610b7b6131a0565b6000610b7b613226565b60008061134e84846132a4565b915091505b9250929050565b6000611366838361062b565b15611373575060016106c9565b600061137f848461206c565b5050501515949350505050565b600080600061139c86868661332c565b50939a9299509097509095505050505050565b60008060006113bc6117dd565b6001600160a01b03166342a28e21866040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b1580156113ff57600080fd5b505afa158015611413573d6000803e3d6000fd5b5050505061141f6117dd565b6001600160a01b03166342a28e21856040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561146257600080fd5b505afa158015611476573d6000803e3d6000fd5b5050505060006114846117f7565b6001600160a01b031663cb1ec317876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b1580156114c657600080fd5b505afa1580156114da573d6000803e3d6000fd5b505050506040513d60408110156114f057600080fd5b5060200151905060006115016117f7565b6001600160a01b031663cb1ec317876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561154357600080fd5b505afa158015611557573d6000803e3d6000fd5b505050506040513d604081101561156d57600080fd5b5060200151905081156115c7576040805162461bcd60e51b815260206004820152601960248201527f736f757263652073796e7468207261746520696e76616c696400000000000000604482015290519081900360640190fd5b801561161a576040805162461bcd60e51b815260206004820152601e60248201527f64657374696e6174696f6e2073796e7468207261746520696e76616c69640000604482015290519081900360640190fd5b611625878988613411565b600061163188886123b5565b90945090508015611689576040805162461bcd60e51b815260206004820152601b60248201527f65786368616e676520726174657320746f6f20766f6c6174696c650000000000604482015290519081900360640190fd5b6000611693613600565b6001600160a01b0316638295016a8a8c8b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060606040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d606081101561171057600080fd5b5051905061171e818661361b565b9650611730818863ffffffff6136ad16565b95505050505093509350939050565b6000610b7b6c45786368616e6765537461746560981b61370a565b600080611765612eaa565b9050821580611783575061177f838263ffffffff61284016565b4210155b15611792576000915050610f55565b6117b2426117a6858463ffffffff61284016565b9063ffffffff6136ad16565b9392505050565b6000806117c5836137e7565b9050806106c6576117d583613893565b949350505050565b6000610b7b6b53797374656d53746174757360a01b61370a565b6000610b7b7522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b61370a565b6000610b7b644f696b6f7360d81b61370a565b60008061183c868686613411565b611844613600565b6001600160a01b0316638661cc7b631bd554d160e21b88146118665787611868565b855b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561189c57600080fd5b505afa1580156118b0573d6000803e3d6000fd5b505050506040513d60208110156118c657600080fd5b50511561191a576040805162461bcd60e51b815260206004820152601b60248201527f5372632f646573742073796e746820746f6f20766f6c6174696c650000000000604482015290519081900360640190fd5b6000611927868989613939565b90508061193b575060009150819050611ee5565b60008060008061194c858c8b61332c565b949b509299509096509450925090506119658b8a613971565b1561197c575060009550859450611ee59350505050565b6119846117f7565b6001600160a01b03166378cb51cb846119a38a8a63ffffffff61284016565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156119de57600080fd5b505afa1580156119f2573d6000803e3d6000fd5b505050506040513d6020811015611a0857600080fd5b505115611a5c576040805162461bcd60e51b815260206004820152601d60248201527f41746f6d6963207261746520646576696174657320746f6f206d756368000000604482015290519081900360640190fd5b6000631bd554d160e21b8c1415611a74575084611ad7565b631bd554d160e21b8a1415611a8a575082611ad7565b6040805162461bcd60e51b815260206004820152601b60248201527f5372632f646573742073796e7468206d757374206265206f5553440000000000604482015290519081900360640190fd5b611ae081613a9a565b611af08c8e888d8c8e6000613b68565b508615611d4a57611aff613600565b6001600160a01b031663654a60ac8b89631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015611b5957600080fd5b505afa158015611b6d573d6000803e3d6000fd5b505050506040513d6020811015611b8357600080fd5b50519650611b8f61282c565b6001600160a01b03166332608039631bd554d160e21b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611bd957600080fd5b505afa158015611bed573d6000803e3d6000fd5b505050506040513d6020811015611c0357600080fd5b50516001600160a01b031663867904b4611c1b613e46565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015611c5357600080fd5b505afa158015611c67573d6000803e3d6000fd5b505050506040513d6020811015611c7d57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018b905251604480830192600092919082900301818387803b158015611ccc57600080fd5b505af1158015611ce0573d6000803e3d6000fd5b50505050611cec613e46565b6001600160a01b03166322bf55ef886040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d3157600080fd5b505af1158015611d45573d6000803e3d6000fd5b505050505b611d7c60405180604001604052808e81526020018c815250604051806040016040528086815260200185815250613e5b565b611d8461181b565b6001600160a01b0316636c00f3108e8e898e8d8f6040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001868152602001858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019650505050505050600060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b50505050611e3561181b565b6001600160a01b0316632f7206ce8e8e898e8d8f6040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001868152602001858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019650505050505050600060405180830381600087803b158015611ec657600080fd5b505af1158015611eda573d6000803e3d6000fd5b505050505050505050505b9550959350505050565b600082118015611f0757506001600160a01b03811615155b8015611f165750611f16613226565b156107fb57611f23614119565b6001600160a01b03166321cad77483836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b158015611f8257600080fd5b505af1158015611f96573d6000803e3d6000fd5b505050505050565b611fa661181b565b6001600160a01b0316632d3169eb858585856040518563ffffffff1660e01b815260040180858152602001848152602001838152602001828152602001945050505050600060405180830381600087803b15801561200357600080fd5b505af1158015612017573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331461206a5760405162461bcd60e51b815260040180806020018281038252602f815260200180615793602f913960400191505060405180910390fd5b565b6000806000606061207b61173f565b6001600160a01b031663b44e975387876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156120d857600080fd5b505afa1580156120ec573d6000803e3d6000fd5b505050506040513d602081101561210257600080fd5b505160408051828152602080840282010190915290925060609083801561214357816020015b6121306156ad565b8152602001906001900390816121285790505b50905060005b838110156123a95760008061215c6156ad565b6121678b8b86614135565b905060008061217583614250565b915091506000612183613600565b6001600160a01b0316636ce66c8085600001518660200151876040015187876040518663ffffffff1660e01b8152600401808681526020018581526020018481526020018381526020018281526020019550505050505060606040518083038186803b1580156121f257600080fd5b505afa158015612206573d6000803e3d6000fd5b505050506040513d606081101561221c57600080fd5b5051608085015190915060009061223490839061361b565b905060006122406117f7565b6001600160a01b03166378cb51cb8760600151846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561228f57600080fd5b505afa1580156122a3573d6000803e3d6000fd5b505050506040513d60208110156122b957600080fd5b50519050806123335781866060015111156122fc5760608601516122e3908363ffffffff6136ad16565b97506122f58e8963ffffffff61284016565b9d50612333565b856060015182111561233357606086015161231e90839063ffffffff6136ad16565b96506123308d8863ffffffff61284016565b9c505b6040518061010001604052808760000151815260200187602001518152602001876040015181526020018981526020018881526020018681526020018581526020018760a001518152508a8a8151811061238957fe5b602002602001018190525050505050505050508080600101915050612149565b50905092959194509250565b60008060006123c384613893565b905060006123d186866132a4565b935090506123e5828263ffffffff61284016565b935050509250929050565b60008060006123ff868661062b565b1561243b5760405162461bcd60e51b81526004018080602001828103825260238152602001806158246023913960400191505060405180910390fd5b6000806000606061244c8a8a61206c565b93509350935093508284111561247e5761246c848463ffffffff6136ad16565b96506124798a8a896143a3565b6124a3565b838311156124a357612496838563ffffffff6136ad16565b95506124a38a8a88614510565b8780156124ba575060008711806124ba5750600086115b156125a0576040805160018082528183019092526060916020808301908038833901905050905089816000815181106124ef57fe5b602002602001018181525050612503614660565b6001600160a01b031663cda218c7826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015612561578181015183820152602001612549565b5050505090500192505050600060405180830381600087803b15801561258657600080fd5b505af115801561259a573d6000803e3d6000fd5b50505050505b60005b81518110156126e5578a6001600160a01b03167f8e3ad1f68bec55de3b6fa12ae2674a2a683a17c918a4cbf5157ac5d9ddc6e9408383815181106125e357fe5b6020026020010151600001518484815181106125fb57fe5b60200260200101516020015185858151811061261357fe5b60200260200101516040015186868151811061262b57fe5b60200260200101516060015187878151811061264357fe5b60200260200101516080015188888151811061265b57fe5b602002602001015160a0015189898151811061267357fe5b602002602001015160c001518a8a8151811061268b57fe5b602002602001015160e00151604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390a26001016125a3565b508194506126f161173f565b6001600160a01b031663d0d3d62a8b8b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561275057600080fd5b505af1158015612764573d6000803e3d6000fd5b505050505050505093509350939050565b600061277f614677565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156127fb57600080fd5b505afa15801561280f573d6000803e3d6000fd5b505050506040513d602081101561282557600080fd5b5051905090565b6000610b7b6524b9b9bab2b960d11b61370a565b6000828201838110156106c6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b7b7044656c6567617465417070726f76616c7360781b61370a565b60008060006128c66156f8565b6128ce613600565b6001600160a01b0316637a018a1e8a6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561291157600080fd5b505afa158015612925573d6000803e3d6000fd5b505050506040513d602081101561293b57600080fd5b505160a082015261294a613600565b6001600160a01b0316637a018a1e886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561298d57600080fd5b505afa1580156129a1573d6000803e3d6000fd5b505050506040513d60208110156129b757600080fd5b505160c08201526129c6613600565b6001600160a01b0316636ce66c808a8a8a8560a001518660c001516040518663ffffffff1660e01b8152600401808681526020018581526020018481526020018381526020018281526020019550505050505060606040518083038186803b158015612a3157600080fd5b505afa158015612a45573d6000803e3d6000fd5b505050506040513d6060811015612a5b57600080fd5b5080516020808301516040938401519185019190915283529082015260a081015160c0820151612a90918b918b918b91614694565b612a9a8988613971565b15612aaf575060009250829150819050612e9e565b6000612abc898c8c613939565b905080612ad5575060009350839250829150612e9e9050565b6000612aeb8b8a8560a001518660c00151614919565b606085019190915290508015612b0e575060009450849350839250612e9e915050565b612b208360400151846060015161361b565b6040840151909650612b38908763ffffffff6136ad16565b9450612b498b8d848c8a8d8d613b68565b93506001600160a01b03841615612b5e578397505b8415612db757612b6c613600565b6001600160a01b031663654a60ac8a87631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612bc657600080fd5b505afa158015612bda573d6000803e3d6000fd5b505050506040513d6020811015612bf057600080fd5b50519450612bfc61282c565b6001600160a01b03166332608039631bd554d160e21b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612c4657600080fd5b505afa158015612c5a573d6000803e3d6000fd5b505050506040513d6020811015612c7057600080fd5b50516001600160a01b031663867904b4612c88613e46565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015612cc057600080fd5b505afa158015612cd4573d6000803e3d6000fd5b505050506040513d6020811015612cea57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820189905251604480830192600092919082900301818387803b158015612d3957600080fd5b505af1158015612d4d573d6000803e3d6000fd5b50505050612d59613e46565b6001600160a01b03166322bf55ef866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612d9e57600080fd5b505af1158015612db2573d6000803e3d6000fd5b505050505b6040805180820182528c815260208082018c90528251808401909352855183528581015190830152612de891613e5b565b612df061181b565b604080516306c00f3160e41b81526001600160a01b038f81166004830152602482018f905260448201869052606482018d9052608482018a90528b811660a483015291519290911691636c00f3109160c48082019260009290919082900301818387803b158015612e6057600080fd5b505af1158015612e74573d6000803e3d6000fd5b505050506000612e82612eaa565b1115612e9a57612e9a888c848c8a8860600151614958565b5050505b96509650969350505050565b6000612eb4614677565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156127fb57600080fd5b606080612f2f614b69565b60408051600a80825261016082019092529192506060919060208201610140803883390190505090506b53797374656d53746174757360a01b81600081518110612f7557fe5b6020026020010181815250506c45786368616e6765537461746560981b81600181518110612f9f57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110612fc957fe5b602002602001018181525050644f696b6f7360d81b81600381518110612feb57fe5b60200260200101818152505066119959541bdbdb60ca1b8160048151811061300f57fe5b6020026020010181815250506d54726164696e675265776172647360901b8160058151811061303a57fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b8160068151811061306857fe5b6020026020010181815250506524b9b9bab2b960d11b8160078151811061308b57fe5b6020026020010181815250506844656274436163686560b81b816008815181106130b157fe5b6020026020010181815250507522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b816009815181106112df57fe5b60608151835101604051908082528060200260200182016040528015613114578160200160208202803883390190505b50905060005b83518110156131565783818151811061312f57fe5b602002602001015182828151811061314357fe5b602090810291909101015260010161311a565b5060005b82518110156131995782818151811061316f57fe5b602002602001015182828651018151811061318657fe5b602090810291909101015260010161315a565b5092915050565b60006131aa614677565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d69634d6178566f6c756d65506572426c6f636b0000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156127fb57600080fd5b6000613230614677565b6001600160a01b031663d994502d6d53797374656d53657474696e677360901b741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156127fb57600080fd5b6000806132af615735565b6132b7614bba565b90506000806132c68684614eac565b915091506000806132d78986614eac565b90925090506132ec848363ffffffff61284016565b60608601519097508711806133015787613307565b85606001515b97508781806133135750845b8061331b5750825b975097505050505050509250929050565b600080600080600080600061333f613600565b6001600160a01b031663055286e08a8c8b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060806040518083038186803b15801561339257600080fd5b505afa1580156133a6573d6000803e3d6000fd5b505050506040513d60808110156133bc57600080fd5b5080516020820151604083015160609093015190965091945090925090506133e489896117b9565b94506133f0818661361b565b9650613402818863ffffffff6136ad16565b95505093975093979195509350565b8083141561345c576040805162461bcd60e51b8152602060048201526013602482015272086c2dc4ee840c4ca40e6c2daca40e6f2dce8d606b1b604482015290519081900360640190fd5b6000821161349f576040805162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b604482015290519081900360640190fd5b604080516002808252606080830184529260208301908038833901905050905083816000815181106134cd57fe5b60200260200101818152505081816001815181106134e757fe5b6020026020010181815250506134fb613600565b6001600160a01b0316630a7d36d1826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015613559578181015183820152602001613541565b505050509050019250505060206040518083038186803b15801561357c57600080fd5b505afa158015613590573d6000803e3d6000fd5b505050506040513d60208110156135a657600080fd5b5051156135fa576040805162461bcd60e51b815260206004820152601e60248201527f7372632f646573742072617465207374616c65206f7220666c61676765640000604482015290519081900360640190fd5b50505050565b6000610b7b6c45786368616e6765526174657360981b61370a565b60006106c66136a08373__$6cb7b9807fd48ae83b08c44b530df1d1ee$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561366857600080fd5b505af415801561367c573d6000803e3d6000fd5b505050506040513d602081101561369257600080fd5b50519063ffffffff6136ad16565b849063ffffffff614f6b16565b600082821115613704576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816131995760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137ac578181015183820152602001613794565b50505050905090810190601f1680156137d95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60006137f1614677565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7461746f6d696345786368616e67654665655261746560581b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124b57600080fd5b600061389d614677565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124b57600080fd5b600080600061394a858560006123f0565b88955090935091505080156139685761396585858885610b80565b92505b50509392505050565b6000631bd554d160e21b83146139ff576139896117f7565b6001600160a01b031663a47af19e846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b1580156139cd57600080fd5b505af11580156139e1573d6000803e3d6000fd5b505050506040513d60408110156139f757600080fd5b506020015190505b631bd554d160e21b82146106c9576000613a176117f7565b6001600160a01b031663a47af19e846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b158015613a5b57600080fd5b505af1158015613a6f573d6000803e3d6000fd5b505050506040513d6040811015613a8557600080fd5b5060200151905081806117d557509392505050565b60045460009067ffffffffffffffff164214613ab65781613ad3565b600454613ad390600160401b90046001600160c01b031683612840565b9050613add6131a0565b811115613b2a576040805162461bcd60e51b815260206004820152601660248201527514dd5c9c185cdcd959081d9bdb1d5b59481b1a5b5a5d60521b604482015290519081900360640190fd5b600480546001600160c01b03909216600160401b0267ffffffffffffffff42811667ffffffffffffffff199094169390931790921691909117905550565b6000613b7261282c565b6001600160a01b03166332608039896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613bb557600080fd5b505afa158015613bc9573d6000803e3d6000fd5b505050506040513d6020811015613bdf57600080fd5b505160408051632770a7eb60e21b81526001600160a01b038a81166004830152602482018a905291519190921691639dc29fac91604480830192600092919082900301818387803b158015613c3357600080fd5b505af1158015613c47573d6000803e3d6000fd5b505050506000613c5561282c565b6001600160a01b03166332608039876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613c9857600080fd5b505afa158015613cac573d6000803e3d6000fd5b505050506040513d6020811015613cc257600080fd5b505190508215613dc1576000819050613d41816001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015613d0d57600080fd5b505afa158015613d21573d6000803e3d6000fd5b505050506040513d6020811015613d3757600080fd5b505186888a614f95565b9250816001600160a01b031663867904b484886040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613da357600080fd5b505af1158015613db7573d6000803e3d6000fd5b5050505050613e3a565b806001600160a01b031663867904b485876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613e2157600080fd5b505af1158015613e35573d6000803e3d6000fd5b505050505b50979650505050505050565b6000610b7b66119959541bdbdb60ca1b61370a565b8151600090631bd554d160e21b1480613e7e57506020830151631bd554d160e21b145b9050600081613e8e576003613e91565b60025b60ff169050606081604051908082528060200260200182016040528015613ec2578160200160208202803883390190505b509050846000602002015181600081518110613eda57fe5b6020908102919091010152846001602002015181600181518110613efa57fe5b602002602001018181525050606082604051908082528060200260200182016040528015613f32578160200160208202803883390190505b509050846000602002015181600081518110613f4a57fe5b6020908102919091010152846001602002015181600181518110613f6a57fe5b6020026020010181815250508361402857631bd554d160e21b82600281518110613f9057fe5b60200260200101818152505073__$6cb7b9807fd48ae83b08c44b530df1d1ee$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015613fe057600080fd5b505af4158015613ff4573d6000803e3d6000fd5b505050506040513d602081101561400a57600080fd5b505181518290600290811061401b57fe5b6020026020010181815250505b614030614660565b6001600160a01b03166317b38db483836040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561409357818101518382015260200161407b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156140d25781810151838201526020016140ba565b50505050905001945050505050600060405180830381600087803b1580156140f957600080fd5b505af115801561410d573d6000803e3d6000fd5b50505050505050505050565b6000610b7b6d54726164696e675265776172647360901b61370a565b61413d6156ad565b60008060008060008060008061415161173f565b6001600160a01b03166315987eb68d8d8d6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200182815260200193505050506101006040518083038186803b1580156141b757600080fd5b505afa1580156141cb573d6000803e3d6000fd5b505050506040513d6101008110156141e257600080fd5b50805160208083015160408085015160608087015160808089015160a0808b015160c0808d015160e09d8e01518a5161010081018c529d8e529b8d019a909a52978b019690965293890192909252870152850152830152918101919091529c9b505050505050505050505050565b600080600061425d613600565b90506000614269612eaa565b9050816001600160a01b031663109e46a286600001518760c001518860a00151856040518563ffffffff1660e01b81526004018085815260200184815260200183815260200182815260200194505050505060206040518083038186803b1580156142d357600080fd5b505afa1580156142e7573d6000803e3d6000fd5b505050506040513d60208110156142fd57600080fd5b505160408087015160e088015160a0890151835163084f235160e11b81526004810193909352602483019190915260448201526064810184905290519195506001600160a01b0384169163109e46a291608480820192602092909190829003018186803b15801561436d57600080fd5b505afa158015614381573d6000803e3d6000fd5b505050506040513d602081101561439757600080fd5b50519395939450505050565b6143ab61282c565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156143ee57600080fd5b505afa158015614402573d6000803e3d6000fd5b505050506040513d602081101561441857600080fd5b505160408051632770a7eb60e21b81526001600160a01b0386811660048301526024820185905291519190921691639dc29fac91604480830192600092919082900301818387803b15801561446c57600080fd5b505af1158015614480573d6000803e3d6000fd5b5050505061448c61181b565b6001600160a01b031663ace88afd8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156144f357600080fd5b505af1158015614507573d6000803e3d6000fd5b50505050505050565b61451861282c565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561455b57600080fd5b505afa15801561456f573d6000803e3d6000fd5b505050506040513d602081101561458557600080fd5b50516040805163219e412d60e21b81526001600160a01b038681166004830152602482018590529151919092169163867904b491604480830192600092919082900301818387803b1580156145d957600080fd5b505af11580156145ed573d6000803e3d6000fd5b505050506145f961181b565b6001600160a01b0316636f01a9868484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156144f357600080fd5b6000610b7b6844656274436163686560b81b61370a565b6000610b7b6e466c657869626c6553746f7261676560881b61370a565b828514156146df576040805162461bcd60e51b8152602060048201526013602482015272086c2dc4ee840c4ca40e6c2daca40e6f2dce8d606b1b604482015290519081900360640190fd5b60008411614722576040805162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b604482015290519081900360640190fd5b6040805160028082526060808301845292602083019080388339019050509050858160008151811061475057fe5b602002602001018181525050838160018151811061476a57fe5b6020908102919091010152604080516002808252606082810190935281602001602082028038833901905050905083816000815181106147a657fe5b60200260200101818152505082816001815181106147c057fe5b6020026020010181815250506147d4613600565b6001600160a01b031663d89ee86183836040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561483757818101518382015260200161481f565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561487657818101518382015260200161485e565b5050505090500194505050505060206040518083038186803b15801561489b57600080fd5b505afa1580156148af573d6000803e3d6000fd5b505050506040513d60208110156148c557600080fd5b505115614507576040805162461bcd60e51b815260206004820152601e60248201527f7372632f646573742072617465207374616c65206f7220666c61676765640000604482015290519081900360640190fd5b600080600061492786613893565b905060006149378888888861512a565b9350905061494b828263ffffffff61284016565b9350505094509492505050565b6000614962613600565b90506000816001600160a01b0316637a018a1e886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156149aa57600080fd5b505afa1580156149be573d6000803e3d6000fd5b505050506040513d60208110156149d457600080fd5b505160408051633d00c50f60e11b81526004810188905290519192506000916001600160a01b03851691637a018a1e916024808301926020929190829003018186803b158015614a2357600080fd5b505afa158015614a37573d6000803e3d6000fd5b505050506040513d6020811015614a4d57600080fd5b50519050614a5961173f565b60408051630f2a761760e21b81526001600160a01b038c81166004830152602482018c9052604482018b9052606482018a90526084820189905260a482018890524260c483015260e48201869052610104820185905291519290911691633ca9d85c916101248082019260009290919082900301818387803b158015614ade57600080fd5b505af1158015614af2573d6000803e3d6000fd5b5050604080518b8152602081018b90528082018a9052606081018990526080810188905260a0810186905260c0810185905290516001600160a01b038d1693507f62e40d554c7abcdd31074960d8347a2225daeb04d93bc748f049ba2ce946239892509081900360e00190a2505050505050505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110614bab57fe5b60200260200101818152505090565b614bc2615735565b60408051600480825260a08201909252606091602082016080803883390190505090507f65786368616e676544796e616d69634665655468726573686f6c64000000000081600081518110614c1357fe5b6020026020010181815250507f65786368616e676544796e616d6963466565576569676874446563617900000081600181518110614c4d57fe5b6020026020010181815250507f65786368616e676544796e616d6963466565526f756e6473000000000000000081600281518110614c8757fe5b6020026020010181815250507465786368616e67654d617844796e616d696346656560581b81600381518110614cb957fe5b6020026020010181815250506060614ccf614677565b6001600160a01b031663b67fa7ed6d53797374656d53657474696e677360901b846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015614d45578181015183820152602001614d2d565b50505050905001935050505060006040518083038186803b158015614d6957600080fd5b505afa158015614d7d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015614da657600080fd5b8101908080516040519392919084640100000000821115614dc657600080fd5b908301906020820185811115614ddb57600080fd5b8251866020820283011164010000000082111715614df857600080fd5b82525081516020918201928201910280838360005b83811015614e25578181015183820152602001614e0d565b505050509050016040525050509050604051806080016040528082600081518110614e4c57fe5b6020026020010151815260200182600181518110614e6657fe5b6020026020010151815260200182600281518110614e8057fe5b6020026020010151815260200182600381518110614e9a57fe5b60200260200101518152509250505090565b600080631bd554d160e21b841480614ec957506001836040015111155b15614ed957506000905080611353565b6000614ee3613600565b6001600160a01b0316637a018a1e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015614f2657600080fd5b505afa158015614f3a573d6000803e3d6000fd5b505050506040513d6020811015614f5057600080fd5b50519050614f5f8582866151b6565b92509250509250929050565b6000670de0b6b3a7640000614f86848463ffffffff6153d616565b81614f8d57fe5b049392505050565b6000606960f81b6001600160f81b031983831a60f81b161415614fff576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207669727475616c697a6520746869732073796e746800000000604482015290519081900360640190fd5b600061504761500c61542f565b6040518060400160405280601b81526020017f436f756c64206e6f7420637265617465206e6577207653796e74680000000000815250615453565b60025460408051638d7017d360e01b81526001600160a01b038a81166004830152928316602482015288831660448201526064810188905260848101879052905192935090831691638d7017d39160a48082019260009290919082900301818387803b1580156150b657600080fd5b505af11580156150ca573d6000803e3d6000fd5b5050604080516001600160a01b038581168252602082018890528183018990529151828a169450918a1692507fb5ec76d79549c775883022e4426db5cd36bd5307f216cdb341554c301548ef9f919081900360600190a395945050505050565b600080615135615735565b61513d614bba565b905060008061514d8887856151b6565b9150915060008061515f8b8a876151b6565b9092509050615174848363ffffffff61284016565b6060860151909750871180615189578761518f565b85606001515b975087818061519b5750845b806151a35750825b9750975050505050505094509492505050565b600080631bd554d160e21b8514806151d357506001836040015111155b156151e3575060009050806153ce565b60606151ed613600565b6001600160a01b031663ed762450878660400151886040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060006040518083038186803b15801561524457600080fd5b505afa158015615258573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561528157600080fd5b81019080805160405193929190846401000000008211156152a157600080fd5b9083019060208201858111156152b657600080fd5b82518660208202830111640100000000821117156152d357600080fd5b82525081516020918201928201910280838360005b838110156153005781810151838201526020016152e8565b505050509050016040526020018051604051939291908464010000000082111561532957600080fd5b90830190602082018581111561533e57600080fd5b825186602082028301116401000000008211171561535b57600080fd5b82525081516020918201928201910280838360005b83811015615388578181015183820152602001615370565b5050505090500160405250505050809150506153ad81856000015186602001516154cb565b60608501519093508311806153c257836153c8565b84606001515b93509150505b935093915050565b6000826153e5575060006106c9565b828202828482816153f257fe5b04146106c65760405162461bcd60e51b81526004018080602001828103825260218152602001806157c26021913960400191505060405180910390fd5b6000610b7b755669727475616c53796e74684d6173746572636f707960501b61370a565b6000606061546084615555565b90506037602082016000f09150826001600160a01b0383166154c35760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156137ac578181015183820152602001613794565b505092915050565b60008351600014156154df575060006117b2565b8351600090600019015b8015610c97576154ff828563ffffffff614f6b16565b9150600061553787600184038151811061551557fe5b602002602001015188848151811061552957fe5b6020026020010151886155c5565b9050615549838263ffffffff61284016565b925050600019016154e9565b60408051693d602d80600a3d3981f360b01b602082015269363d3d373d3d3d363d7360b01b602a82015260609290921b6bffffffffffffffffffffffff191660348301526e5af43d82803e903d91602b57fd5bf360881b6048830152805180830360370181526057909201905290565b6000826155d4575060006117b2565b60008385116155e5578484036155e9565b8385035b905060006155fd828663ffffffff61561916565b905083811161560d576000613965565b92909203949350505050565b60006106c68261563785670de0b6b3a764000063ffffffff6153d616565b9063ffffffff61564316565b6000808211615699576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816156a457fe5b04949350505050565b60405180610100016040528060008019168152602001600081526020016000801916815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745786368616e6765723a204f6e6c79206f696b6f73206f7220612073796e746820636f6e74726163742063616e20706572666f726d207468697320616374696f6e43616e6e6f7420736574746c6520647572696e672077616974696e6720706572696f64a265627a7a723158200e976030d07211d0d1e93b825373ed48f430f0572b7d3142ba549240e6251f2b64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "ExchangeEntryAppended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reclaim",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rebate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "srcRoundIdAtPeriodEnd",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "destRoundIdAtPeriodEnd",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "exchangeTimestamp",
							"type": "uint256"
						}
					],
					"name": "ExchangeEntrySettled",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "recipient",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "vSynth",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "VirtualSynthCreated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "atomicMaxVolumePerBlock",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						}
					],
					"name": "calculateAmountAfterSettlement",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountAfterSettlement",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "dynamicFeeRateForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "feeRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "tooVolatile",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "virtualSynth",
							"type": "bool"
						},
						{
							"internalType": "address",
							"name": "rewardAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "contract IVirtualSynth",
							"name": "vSynth",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeAtomically",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "feeRateForAtomicExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "feeRateForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "getAmountsForAtomicExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "getAmountsForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "hasWaitingPeriodOrSettlementOwing",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isSynthRateInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastAtomicVolume",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "time",
							"type": "uint64"
						},
						{
							"internalType": "uint192",
							"name": "volume",
							"type": "uint192"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "lastExchangeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "maxSecsLeftInWaitingPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settle",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntriesSettled",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settlementOwing",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rebateAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntries",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "suspendSynthWithInvalidRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tradingRewardsEnabled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "waitingPeriodSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x67bc9193b60a447b1040c11ae23e2dd3e6dc170e120e7d3a545b28d5061b46ed",
				"urls": [
					"bzz-raw://f14ade8dda02d92b3621a9533a8b8674eac610b6c4b3302781d2ba164135abd8",
					"dweb:/ipfs/QmV3R5HAxWjRZvAy3ZheKAWQt7j7v4ZkveXo7cAzPcYjxM"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangerWithFeeRecAlternatives.sol": "ExchangerWithFeeRecAlternatives"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangerWithFeeRecAlternatives.sol": {
						"keccak256": "0x67bc9193b60a447b1040c11ae23e2dd3e6dc170e120e7d3a545b28d5061b46ed",
						"urls": [
							"bzz-raw://f14ade8dda02d92b3621a9533a8b8674eac610b6c4b3302781d2ba164135abd8",
							"dweb:/ipfs/QmV3R5HAxWjRZvAy3ZheKAWQt7j7v4ZkveXo7cAzPcYjxM"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeCircuitBreaker": {
			"bytecode": "608060405234801561001057600080fd5b506040516116d23803806116d28339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050506115ac806101266000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063614d08f8116100a25780637dd1a57a116100715780637dd1a57a14610253578063899ffef4146102705780638da5cb5b146102c8578063a47af19e146102d0578063cb1ec317146103065761010b565b8063614d08f814610218578063741853601461022057806378cb51cb1461022857806379ba50971461024b5761010b565b8063372a395a116100de578063372a395a146101e65780633fa70f45146102005780634ffcd9df1461020857806353a47bb7146102105761010b565b806304f3bcec146101105780631627540c1461013457806324286df01461015c5780632af64bd3146101ca575b600080fd5b610118610323565b604080516001600160a01b039092168252519081900360200190f35b61015a6004803603602081101561014a57600080fd5b50356001600160a01b0316610332565b005b61015a6004803603602081101561017257600080fd5b810190602081018135600160201b81111561018c57600080fd5b82018360208201111561019e57600080fd5b803590602001918460208302840111600160201b831117156101bf57600080fd5b50909250905061038e565b6101d2610623565b604080519115158252519081900360200190f35b6101ee61072e565b60408051918252519081900360200190f35b6101ee61073d565b610118610742565b61011861075d565b6101ee61076c565b61015a610789565b6101d26004803603604081101561023e57600080fd5b5080359060200135610951565b61015a610966565b6101ee6004803603602081101561026957600080fd5b5035610a22565b610278610a34565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102b457818101518382015260200161029c565b505050509050019250505060405180910390f35b610118610aec565b6102ed600480360360208110156102e657600080fd5b5035610afb565b6040805192835290151560208301528051918290030190f35b6102ed6004803603602081101561031c57600080fd5b5035610d75565b6002546001600160a01b031681565b61033a610e1a565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610396610e1a565b606060006103a2610742565b6001600160a01b031663c8e5bbd585856040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801561041457600080fd5b505afa158015610428573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561045157600080fd5b8101908080516040519392919084600160201b82111561047057600080fd5b90830190602082018581111561048557600080fd5b82518660208202830111600160201b821117156104a157600080fd5b82525081516020918201928201910280838360005b838110156104ce5781810151838201526020016104b6565b50505050919091016040525060200151929450919250508115905061053a576040805162461bcd60e51b815260206004820181905260248201527f526174657320666f7220676976656e2073796e746873206e6f742076616c6964604482015290519081900360640190fd5b60005b8381101561061c577f04ee51667f8fd5f98b8803e7cd0a206fb508b0c37545e7f8055f0de051d8ad4385858381811061057257fe5b905060200201356004600088888681811061058957fe5b905060200201358152602001908152602001600020548584815181106105ab57fe5b602002602001015160405180848152602001838152602001828152602001935050505060405180910390a18281815181106105e257fe5b6020026020010151600460008787858181106105fa57fe5b602090810292909201358352508101919091526040016000205560010161053d565b5050505050565b6000606061062f610a34565b905060005b815181101561072457600082828151811061064b57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156106b357600080fd5b505afa1580156106c7573d6000803e3d6000fd5b505050506040513d60208110156106dd57600080fd5b50516001600160a01b031614158061070a57506000818152600360205260409020546001600160a01b0316155b1561071b576000935050505061072b565b50600101610634565b5060019150505b90565b6000610738610e65565b905090565b604181565b60006107386c45786368616e6765526174657360981b610f1c565b6001546001600160a01b031681565b7522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b81565b6060610793610a34565b905060005b815181101561094d5760008282815181106107af57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561086557818101518382015260200161084d565b50505050905090810190601f1680156108925780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156108b057600080fd5b505afa1580156108c4573d6000803e3d6000fd5b505050506040513d60208110156108da57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610798565b5050565b600061095d8383611000565b90505b92915050565b6001546001600160a01b031633146109af5760405162461bcd60e51b81526004018080602001828103825260358152602001806114f36035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60009081526004602052604090205490565b606080610a3f61105f565b60408051600380825260808201909252919250606091906020820183803883390190505090506b53797374656d53746174757360a01b81600081518110610a8257fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610aac57fe5b6020026020010181815250506524b9b9bab2b960d11b81600281518110610acf57fe5b602002602001018181525050610ae582826110b0565b9250505090565b6000546001600160a01b031681565b600080610b06611165565b6001600160a01b031663c0eee4436040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3e57600080fd5b505afa158015610b52573d6000803e3d6000fd5b505050506040513d6020811015610b6857600080fd5b505115610b7457610d60565b600080610b7f610742565b6001600160a01b0316630c71cd23866040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015610bc157600080fd5b505afa158015610bd5573d6000803e3d6000fd5b505050506040513d6040811015610beb57600080fd5b50805160209091015190925090508080610c0a5750610c0a858361117f565b15610d4b576000610c196113d4565b6001600160a01b03166332608039876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c5c57600080fd5b505afa158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50516001600160a01b03161415610cd4576040805162461bcd60e51b815260206004820152600d60248201526c09cde40e6eac6d040e6f2dce8d609b1b604482015290519081900360640190fd5b610cdc611165565b6001600160a01b031663abc0bb6e8660416040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015610d2a57600080fd5b505af1158015610d3e573d6000803e3d6000fd5b5050505060019250610d5d565b60008581526004602052604090208290555b50505b60009283526004602052604090922054929050565b600080600080610d83610742565b6001600160a01b0316630c71cd23866040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015610dc557600080fd5b505afa158015610dd9573d6000803e3d6000fd5b505050506040513d6040811015610def57600080fd5b5080516020909101519092509050818180610e0f5750610e0f868461117f565b935093505050915091565b6000546001600160a01b03163314610e635760405162461bcd60e51b815260040180806020018281038252602f815260200180611528602f913960400191505060405180910390fd5b565b6000610e6f6113e8565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610eeb57600080fd5b505afa158015610eff573d6000803e3d6000fd5b505050506040513d6020811015610f1557600080fd5b5051905090565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610ff95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fbe578181015183820152602001610fa6565b50505050905090810190601f168015610feb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b600082158061100d575081155b1561101a57506001610960565b60008383111561103b57611034838563ffffffff61140516565b905061104e565b61104b848463ffffffff61140516565b90505b611056610e65565b11159392505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106110a157fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156110e0578160200160208202803883390190505b50905060005b8351811015611122578381815181106110fb57fe5b602002602001015182828151811061110f57fe5b60209081029190910101526001016110e6565b5060005b8251811015610ff95782818151811061113b57fe5b602002602001015182828651018151811061115257fe5b6020908102919091010152600101611126565b60006107386b53797374656d53746174757360a01b610f1c565b60008161118e57506001610960565b60008381526004602052604090205480156111b5576111ad8184611000565b915050610960565b60606111bf610742565b6001600160a01b031663ed76245086600460006040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060006040518083038186803b15801561121457600080fd5b505afa158015611228573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561125157600080fd5b8101908080516040519392919084600160201b82111561127057600080fd5b90830190602082018581111561128557600080fd5b82518660208202830111600160201b821117156112a157600080fd5b82525081516020918201928201910280838360005b838110156112ce5781810151838201526020016112b6565b5050505090500160405260200180516040519392919084600160201b8211156112f657600080fd5b90830190602082018581111561130b57600080fd5b82518660208202830111600160201b8211171561132757600080fd5b82525081516020918201928201910280838360005b8381101561135457818101518382015260200161133c565b505050509050016040525050505090506000600190505b81518110156113c857600082828151811061138257fe5b60200260200101511180156113af57506113af8282815181106113a157fe5b602002602001015186611000565b156113c05760019350505050610960565b60010161136b565b50600095945050505050565b60006107386524b9b9bab2b960d11b610f1c565b60006107386e466c657869626c6553746f7261676560881b610f1c565b600061095d8261142385670de0b6b3a764000063ffffffff61142f16565b9063ffffffff61148816565b60008261143e57506000610960565b8282028284828161144b57fe5b041461095d5760405162461bcd60e51b81526004018080602001828103825260218152602001806115576021913960400191505060405180910390fd5b60008082116114de576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816114e957fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820331aa172bc0893b7ef6090feebfe6d35410c9e7ebae6947edd41c53955d3cd7464736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "previousRate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRate",
							"type": "uint256"
						}
					],
					"name": "LastRateOverriden",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CIRCUIT_BREAKER_SUSPENSION_REASON",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeRates",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "base",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "comparison",
							"type": "uint256"
						}
					],
					"name": "isDeviationAboveThreshold",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "lastExchangeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateWithBreakCircuit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "lastValidRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "circuitBroken",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateWithInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resetLastExchangeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x12cfc0a86136570fe49469b2d310edccb413dfe424d340d1951ac44a7f470bbd",
				"urls": [
					"bzz-raw://0b9ea14378f77fc9eb3aed78c3cea953a5f09ad4dc6bb650b6b22dd6670ba92b",
					"dweb:/ipfs/QmW1NRgmtmh8YGd919PW4bMEqzZzeetswSGz4kjJjGQLJ1"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeCircuitBreaker.sol": "ExchangeCircuitBreaker"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeCircuitBreaker.sol": {
						"keccak256": "0x12cfc0a86136570fe49469b2d310edccb413dfe424d340d1951ac44a7f470bbd",
						"urls": [
							"bzz-raw://0b9ea14378f77fc9eb3aed78c3cea953a5f09ad4dc6bb650b6b22dd6670ba92b",
							"dweb:/ipfs/QmW1NRgmtmh8YGd919PW4bMEqzZzeetswSGz4kjJjGQLJ1"
						]
					}
				},
				"version": 1
			}
		},
		"VirtualSynthMastercopy": {
			"bytecode": "60806040526004805460ff60a01b191690556008805460ff1916905534801561002757600080fd5b506008805460ff19166001179055611371806100446000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80633db3dc9b116100c35780638f7758391161007c5780638f775839146103c657806395d89b41146103ce578063a457c2d7146103d6578063a9059cbb14610402578063dbd06c851461042e578063dd62ed3e1461043657610158565b80633db3dc9b1461031e5780634be37cea146103265780636a256b291461032e57806370a082311461035657806378f2ac261461037c5780638d7017d31461038457610158565b806323b872dd1161011557806323b872dd146102685780632c4e722e1461029e578063313ce567146102a6578063378dc3dc146102c457806339509351146102cc5780633af9e669146102f857610158565b806304f3bcec1461015d57806306fdde0314610181578063095ea7b3146101fe578063115f4fee1461023e578063158ef93e1461024657806318160ddd1461024e575b600080fd5b610165610464565b604080516001600160a01b039092168252519081900360200190f35b610189610473565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c35781810151838201526020016101ab565b50505050905090810190601f1680156101f05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022a6004803603604081101561021457600080fd5b506001600160a01b0381351690602001356104ad565b604080519115158252519081900360200190f35b6101656104c4565b61022a6104d3565b6102566104dc565b60408051918252519081900360200190f35b61022a6004803603606081101561027e57600080fd5b506001600160a01b038135811691602081013590911690604001356104e2565b610256610539565b6102ae610548565b6040805160ff9092168252519081900360200190f35b61025661054d565b61022a600480360360408110156102e257600080fd5b506001600160a01b038135169060200135610553565b6102566004803603602081101561030e57600080fd5b50356001600160a01b031661058f565b61025661059a565b6102566105a0565b6103546004803603602081101561034457600080fd5b50356001600160a01b03166105aa565b005b6102566004803603602081101561036c57600080fd5b50356001600160a01b031661065e565b61022a610679565b610354600480360360a081101561039a57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610689565b61022a610736565b610189610746565b61022a600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610772565b61022a6004803603604081101561041857600080fd5b506001600160a01b0381351690602001356107ae565b6102566107bb565b6102566004803603604081101561044c57600080fd5b506001600160a01b03813581169160200135166107c1565b6004546001600160a01b031681565b600754604080516d02b34b93a3ab0b61029bcb73a34160951b6020820152602e8082019390935281518082039093018352604e0190525b90565b60006104ba3384846107ec565b5060015b92915050565b6003546001600160a01b031681565b60085460ff1681565b60025490565b60006104ef8484846108d8565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461052f91869161052a908663ffffffff610a1a16565b6107ec565b5060019392505050565b6000610543610a77565b905090565b601281565b60055481565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104ba91859061052a908663ffffffff610c1716565b60006104be82610c78565b60065481565b6000610543610c9e565b6105b2610d38565b6003546001600160a01b031663a9059cbb826105cd81610c78565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561061c57600080fd5b505af1158015610630573d6000803e3d6000fd5b505050506040513d602081101561064657600080fd5b5061065b9050816106568161065e565b610eb8565b50565b6001600160a01b031660009081526020819052604090205490565b6000610683610c9e565b15905090565b60085460ff16156106e1576040805162461bcd60e51b815260206004820152601a60248201527f7653796e746820616c726561647920696e697469616c697a6564000000000000604482015290519081900360640190fd5b6008805460ff19166001179055600380546001600160a01b038088166001600160a01b0319928316179092556004805492871692909116919091179055600781905561072d8383610f91565b50600555505050565b600454600160a01b900460ff1681565b60075460408051603b60f91b602082015260218082019390935281518082039093018352604101905290565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104ba91859061052a908663ffffffff610a1a16565b60006104ba3384846108d8565b60075481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166108315760405162461bcd60e51b81526004018080602001828103825260248152602001806113196024913960400191505060405180910390fd5b6001600160a01b0382166108765760405162461bcd60e51b81526004018080602001828103825260228152602001806112906022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661091d5760405162461bcd60e51b81526004018080602001828103825260258152602001806112f46025913960400191505060405180910390fd5b6001600160a01b0382166109625760405162461bcd60e51b815260040180806020018281038252602381526020018061126d6023913960400191505060405180910390fd5b6001600160a01b03831660009081526020819052604090205461098b908263ffffffff610a1a16565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546109c0908263ffffffff610c1716565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610a71576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600060055460001415610a8c575060006104aa565b600454600090600160a01b900460ff16610bf857600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610aeb57600080fd5b505afa158015610aff573d6000803e3d6000fd5b505050506040513d6020811015610b1557600080fd5b50519050600080610b24611081565b6001600160a01b03166319d5c665306007546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060606040518083038186803b158015610b8357600080fd5b505afa158015610b97573d6000803e3d6000fd5b505050506040513d6060811015610bad57600080fd5b50805160209091015190925090508115610bd857610bd1838363ffffffff610a1a16565b9250610bf1565b8015610bf157610bee838263ffffffff610c1716565b92505b5050610bfd565b506006545b600554610c1190829063ffffffff61111016565b91505090565b600082820183811015610c71576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600080610c848361065e565b9050610c71610c91610a77565b829063ffffffff61112516565b6000610ca8611081565b6001600160a01b031663059c29ec306007546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015610d0757600080fd5b505afa158015610d1b573d6000803e3d6000fd5b505050506040513d6020811015610d3157600080fd5b5051905090565b600454600160a01b900460ff1615610d4f57610eb6565b6004805460ff60a01b1916600160a01b179055610d6a611081565b6001600160a01b0316631b16802c306007546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050606060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b505050506040513d6060811015610df557600080fd5b5050600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e4257600080fd5b505afa158015610e56573d6000803e3d6000fd5b505050506040513d6020811015610e6c57600080fd5b50516006557ff5b268a3ff315cc44ccceeef86259c9e8eef81ceecb14001543809115380dd62610e9a6104dc565b6006546040805192835260208301919091528051918290030190a15b565b6001600160a01b038216610efd5760405162461bcd60e51b81526004018080602001828103825260218152602001806112d36021913960400191505060405180910390fd5b600254610f10908263ffffffff610a1a16565b6002556001600160a01b038216600090815260208190526040902054610f3c908263ffffffff610a1a16565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b6001600160a01b038216610fec576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610fff908263ffffffff610c1716565b6002556001600160a01b03821660009081526020819052604090205461102b908263ffffffff610c1716565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600480546040805163dacb2d0160e01b81526822bc31b430b733b2b960b91b9381019390935260248301819052601c60448401527f45786368616e67657220636f6e7472616374206e6f7420666f756e64000000006064840152516000926001600160a01b039092169163dacb2d01916084808301926020929190829003018186803b158015610d0757600080fd5b6000610c718383670de0b6b3a764000061113a565b6000610c718383670de0b6b3a764000061117e565b6000806111608461115487600a870263ffffffff6111a916565b9063ffffffff61120216565b90506005600a825b061061117257600a015b600a9004949350505050565b600080600a8304611195868663ffffffff6111a916565b8161119c57fe5b0490506005600a82611168565b6000826111b8575060006104be565b828202828482816111c557fe5b0414610c715760405162461bcd60e51b81526004018080602001828103825260218152602001806112b26021913960400191505060405180910390fd5b6000808211611258576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161126357fe5b0494935050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a723158200828c7f126ff1305a7523bfdb90318436f89f624b050851bedc148b6a597381964736f6c63430005100032",
			"abi": [
				{
					"inputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalSupply",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfterSettled",
							"type": "uint256"
						}
					],
					"name": "Settled",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOfUnderlying",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currencyKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "subtractedValue",
							"type": "uint256"
						}
					],
					"name": "decreaseAllowance",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "addedValue",
							"type": "uint256"
						}
					],
					"name": "increaseAllowance",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "initialSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "_synth",
							"type": "address"
						},
						{
							"internalType": "contract IAddressResolver",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_recipient",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "initialize",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "initialized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "readyToSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "secsLeftInWaitingPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "settle",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "settled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "settledAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synth",
					"outputs": [
						{
							"internalType": "contract IERC20",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "recipient",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "recipient",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x30fd4f4bbd24da6df7f3a903a424911d4f0df64fe3a43fafe9c7eefda0640e5e",
				"urls": [
					"bzz-raw://3a7333e1623e8f5fdbbbb72d65501fad6e0cb0ac0d0060d62aa0a0f1536c8a21",
					"dweb:/ipfs/QmUz8H2kV51v6gKcUmDVPssyHftifaw2CNK1jT2ALosSgX"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"VirtualSynthMastercopy.sol": "VirtualSynthMastercopy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"VirtualSynthMastercopy.sol": {
						"keccak256": "0x30fd4f4bbd24da6df7f3a903a424911d4f0df64fe3a43fafe9c7eefda0640e5e",
						"urls": [
							"bzz-raw://3a7333e1623e8f5fdbbbb72d65501fad6e0cb0ac0d0060d62aa0a0f1536c8a21",
							"dweb:/ipfs/QmUz8H2kV51v6gKcUmDVPssyHftifaw2CNK1jT2ALosSgX"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeState": {
			"bytecode": "6080604052600c60045534801561001557600080fd5b50604051610bc5380380610bc58339818101604052604081101561003857600080fd5b50805160209091015180826001600160a01b03811661009e576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610148576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a1505050610a1a806101ab6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b44e975311610066578063b44e975314610290578063cd8b94dc146102bc578063d0d3d62a146102d9578063f1406dc814610305576100ea565b806379ba5097146102785780638da5cb5b14610280578063aefc4ccb14610288576100ea565b80633ca9d85c116100c85780633ca9d85c146101a457806352f445ca146101fc57806353a47bb7146102225780636e13fe7614610246576100ea565b80630d40d0cf146100ef57806315987eb6146101095780631627540c1461017c575b600080fd5b6100f7610331565b60408051918252519081900360200190f35b61013b6004803603606081101561011f57600080fd5b506001600160a01b038135169060208101359060400135610337565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6101a26004803603602081101561019257600080fd5b50356001600160a01b03166103dc565b005b6101a260048036036101208110156101bb57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a08101359060c08101359060e0810135906101000135610438565b6101a26004803603602081101561021257600080fd5b50356001600160a01b03166105aa565b61022a610606565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603606081101561025c57600080fd5b506001600160a01b038135169060208101359060400135610615565b6101a261067f565b61022a61073b565b61022a61074a565b6100f7600480360360408110156102a657600080fd5b506001600160a01b038135169060200135610759565b6101a2600480360360208110156102d257600080fd5b5035610781565b6101a2600480360360408110156102ef57600080fd5b506001600160a01b03813516906020013561078e565b6100f76004803603604081101561031b57600080fd5b506001600160a01b038135169060200135610807565b60045481565b6000806000806000806000806000600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c81526020019081526020016000208a8154811061038657fe5b906000526020600020906008020190508060000154816001015482600201548360030154846004015485600501548660060154876007015498509850985098509850985098509850509397509397509397509397565b6103e461088d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b031633146104815760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6004546001600160a01b038a1660009081526003602090815260408083208a8452909152902054106104fa576040805162461bcd60e51b815260206004820152601860248201527f4d6178207175657565206c656e67746820726561636865640000000000000000604482015290519081900360640190fd5b6001600160a01b03909816600090815260036020818152604080842089855282528084208151610100810183529b8c528b83019a8b52908b0198895260608b0197885260808b0196875260a08b0195865260c08b0194855260e08b019b8c5280546001818101835591855291909320995160089091029099019889559651908801559351600287015591519385019390935591516004840155905160058301555160068201559051600790910155565b6105b261088d565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6003602052826000526040600020602052816000526040600020818154811061063a57fe5b60009182526020909120600890910201805460018201546002830154600384015460048501546005860154600687015460079097015495995093975091955093909288565b6001546001600160a01b031633146106c85760405162461bcd60e51b815260040180806020018281038252603581526020018061094e6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b03919091166000908152600360209081526040808320938352929052205490565b61078961088d565b600455565b6002546001600160a01b031633146107d75760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6001600160a01b03821660009081526003602090815260408083208484529091528120610803916108d8565b5050565b6001600160a01b0382166000908152600360209081526040808320848452909152812081805b8254811015610884578183828154811061084357fe5b906000526020600020906008020160050154111561087c5782818154811061086757fe5b90600052602060002090600802016005015491505b60010161082d565b50949350505050565b6000546001600160a01b031633146108d65760405162461bcd60e51b815260040180806020018281038252602f815260200180610983602f913960400191505060405180910390fd5b565b50805460008255600802906000526020600020908101906108f991906108fc565b50565b61094a91905b808211156109465760008082556001820181905560028201819055600382018190556004820181905560058201819055600682018190556007820155600801610902565b5090565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a723158206b977a3abc3f3c8819c49d5a5bbb35bf7af5962890c3328f5e2bbf42702db34c64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "appendExchangeEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "exchanges",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getEntryAt",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getLengthOfEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getMaxTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxEntriesInQueue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeEntries",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxEntriesInQueue",
							"type": "uint256"
						}
					],
					"name": "setMaxEntriesInQueue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x72470472ce7a662d666d9b35cfee821ddfa9cc0f8081ffb8ae6f12b02c219844",
				"urls": [
					"bzz-raw://dae2be45aa04886065c7bc60d46c548fa03b645aeda1c04e9b56b82f516f808d",
					"dweb:/ipfs/QmeoqFS8vxPKsxEF4wU9RW4dxpMhgw98umYjjWPLAUv68F"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeState.sol": "ExchangeState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeState.sol": {
						"keccak256": "0x72470472ce7a662d666d9b35cfee821ddfa9cc0f8081ffb8ae6f12b02c219844",
						"urls": [
							"bzz-raw://dae2be45aa04886065c7bc60d46c548fa03b645aeda1c04e9b56b82f516f808d",
							"dweb:/ipfs/QmeoqFS8vxPKsxEF4wU9RW4dxpMhgw98umYjjWPLAUv68F"
						]
					}
				},
				"version": 1
			}
		},
		"Issuer": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162005418380380620054188339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b6151f580620002236000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c80637168d2c211610167578063a5fdc5de116100ce578063c897713211610087578063c897713214610593578063d37c4d8b146105a6578063d686c06c146105b9578063dbf63340146105cc578063dd3d2b2e146105d4578063fd864ccf146105e757610295565b8063a5fdc5de1461051e578063a63c4df414610531578063ae3bbbbb14610552578063b06e8c6514610565578063b410a03414610578578063bff4fdfc1461058057610295565b8063849cf58811610120578063849cf588146104b4578063899ffef4146104c75780638ab7bbd6146104cf5780638da5cb5b146104f05780639a5154b4146104f8578063a311c7c21461050b57610295565b80637168d2c21461045657806372cb051f14610469578063741853601461047e57806379ba5097146104865780637b1001b71461048e578063835e119c146104a157610295565b80632b3f41aa1161020b57806344ec6b62116101c457806344ec6b62146103ed578063461ee7631461040057806347a9b6db14610413578063497d704a1461042657806353a47bb714610439578063614d08f81461044e57610295565b80632b3f41aa1461038457806331d80b821461039757806331e6da5a1461039f57806332608039146103b25780633b6afe40146103c55780633fa70f45146103e557610295565b80631313e6ca1161025d5780631313e6ca1461032257806314d49413146103395780631627540c1461034157806316b2213f14610354578063242df9e1146103675780632af64bd31461036f57610295565b8063042e06881461029a57806304f3bcec146102af57806305b3c1c9146102cd5780630b887dae146102ed5780631137aedf14610300575b600080fd5b6102ad6102a836600461413c565b6105fa565b005b6102b761063b565b6040516102c49190614e4d565b60405180910390f35b6102e06102db366004614079565b61064a565b6040516102c49190614d99565b6102ad6102fb366004614256565b61065e565b61031361030e366004614079565b61073c565b6040516102c493929190614dc3565b61032a610758565b6040516102c493929190615023565b6102e06108ec565b6102ad61034f366004614079565b6108f2565b6102e0610362366004614079565b610950565b6102e0610962565b610377610972565b6040516102c49190614d8b565b6102ad6103923660046140b5565b610a89565b610377610aa8565b6102ad6103ad3660046142fe565b610b40565b6102b76103c0366004614256565b610c70565b6103d86103d33660046141af565b610c8b565b6040516102c49190614d7a565b6102e0610d37565b6102ad6103fb3660046140ef565b610d3c565b6102ad61040e366004614256565b610d5f565b6102ad6104213660046141af565b610d6c565b6102ad610434366004614079565b610e1d565b610441610e35565b6040516102c49190614cca565b6102e0610e44565b6102ad6104643660046141af565b610e51565b610471610f86565b6040516102c49190614d69565b6102ad610f92565b6102ad6110e4565b6102e061049c366004614292565b611180565b6102b76104af366004614256565b61118c565b6102ad6104c23660046142c2565b6111b3565b61047161122d565b6104e26104dd36600461413c565b6114c4565b6040516102c4929190615008565b6104416115aa565b6102ad6105063660046140ef565b6115b9565b6102e0610519366004614079565b6115d7565b6102e061052c366004614079565b6115e9565b61054461053f36600461416c565b6115f4565b6040516102c4929190614db5565b6104e2610560366004614079565b611c14565b6102ad61057336600461413c565b611c2a565b6102e0611c3e565b61037761058e366004614079565b611c48565b6102ad6105a1366004614079565b611c53565b6102e06105b436600461413c565b611c68565b6102ad6105c73660046140ef565b611d1b565b6102e0611dc1565b6102e06105e2366004614079565b611dc7565b6102ad6105f53660046140b5565b611dd2565b610602611df1565b6000811161062b5760405162461bcd60e51b815260040161062290614f9a565b60405180910390fd5b61063782826000611e2b565b5050565b6002546001600160a01b031681565b60008061065683611f92565b509392505050565b610666612051565b600061067061207b565b604051636b42ba1d60e11b81529091506001600160a01b0382169063d685743a906106a2908590600090600401614deb565b600060405180830381600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03841692506304bd11e5915061070190600190600401614d8b565b600060405180830381600087803b15801561071b57600080fd5b505af115801561072f573d6000803e3d6000fd5b5050505061063782612092565b600080600061074a84612540565b509196909550909350915050565b60008060008060006107897f6578743a41676772656761746f7249737375656453796e7468730000000000006125cd565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156107c157600080fd5b505afa1580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107f991908101906143fd565b50935050925050600080610826766578743a41676772656761746f7244656274526174696f60481b6125cd565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061089691908101906143fd565b50935050925050839650816000146108bd576108b8878363ffffffff61262a16565b6108c0565b60005b9550826108cb61264a565b420311806108e15750806108dd61264a565b4203115b945050505050909192565b60075481565b6108fa612051565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610945908390614cca565b60405180910390a150565b60066020526000908152604090205481565b600061096c6126f4565b90505b90565b6000606061097e61122d565b905060005b8151811015610a8057600082828151811061099a57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906109eb908590600401614d99565b60206040518083038186803b158015610a0357600080fd5b505afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a3b9190810190614097565b6001600160a01b0316141580610a6657506000818152600360205260409020546001600160a01b0316155b15610a77576000935050505061096f565b50600101610983565b50600191505090565b610a91611df1565b610a9b828261274f565b61063782600060016127f0565b6000610ab2612a90565b6001600160a01b031663c8e5bbd5610aca6001612aab565b6040518263ffffffff1660e01b8152600401610ae69190614d69565b60006040518083038186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b3a91908101906141f1565b92915050565b610b48612b87565b6001600160a01b0316336001600160a01b031614610b785760405162461bcd60e51b815260040161062290614f0a565b6000610b82612b9c565b9050816001600160801b0316816001600160a01b031663988e65956040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc757600080fd5b505afa158015610bdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bff919081019061431c565b6001600160801b031610156106375760405163abb6de9560e01b81526001600160a01b0382169063abb6de9590610c3a908590600401614ffa565b600060405180830381600087803b158015610c5457600080fd5b505af1158015610c68573d6000803e3d6000fd5b505050505050565b6005602052600090815260409020546001600160a01b031681565b60408051828152602080840282010190915260609082908290828015610cbb578160200160208202803883390190505b50905060005b82811015610d2e5760056000878784818110610cd957fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610d0e57fe5b6001600160a01b0390921660209283029190910190910152600101610cc1565b50949350505050565b60a581565b610d44611df1565b610d4e8383612bb8565b610d5a83826000611e2b565b505050565b610d67612051565b600755565b610d74612051565b8060005b81811015610db157610da9848483818110610d8f57fe5b9050602002016020610da491908101906142c2565b612bed565b600101610d78565b50610dba61207b565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610de69190614d8b565b600060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50505050505050565b610e25611df1565b610e3281600060016127f0565b50565b6001546001600160a01b031681565b6524b9b9bab2b960d11b81565b610e59612051565b806000610e6461207b565b9050606082604051908082528060200260200182016040528015610e92578160200160208202803883390190505b506040516305ece36d60e21b81529091506001600160a01b038316906317b38db490610ec690889088908690600401614d43565b600060405180830381600087803b158015610ee057600080fd5b505af1158015610ef4573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03851692506304bd11e59150610f2590600190600401614d8b565b600060405180830381600087803b158015610f3f57600080fd5b505af1158015610f53573d6000803e3d6000fd5b506000925050505b83811015610c6857610f7e868683818110610f7257fe5b90506020020135612092565b600101610f5b565b606061096c6000612aab565b6060610f9c61122d565b905060005b8151811015610637576000828281518110610fb857fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610ffa9190614cbf565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611026929190614e06565b60206040518083038186803b15801561103e57600080fd5b505afa158015611052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110769190810190614097565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906110d29084908490614da7565b60405180910390a15050600101610fa1565b6001546001600160a01b0316331461110e5760405162461bcd60e51b815260040161062290614e7a565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611151926001600160a01b0391821692911690614cd8565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006106568383612d7e565b6004818154811061119957fe5b6000918252602090912001546001600160a01b0316905081565b6111bb612051565b6111c481612bed565b6111cc61207b565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b81526004016111f89190614d8b565b600060405180830381600087803b15801561121257600080fd5b505af1158015611226573d6000803e3d6000fd5b5050505050565b606080611238612f89565b60408051600e8082526101e0820190925291925060609190602082016101c080388339019050509050644f696b6f7360d81b8160008151811061127757fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061129d57fe5b6020026020010181815250506c45786368616e6765526174657360981b816002815181106112c757fe5b6020026020010181815250506d4f696b6f7344656274536861726560901b816003815181106112f257fe5b60200260200101818152505066119959541bdbdb60ca1b8160048151811061131657fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b8160058151811061134457fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160068151811061136f57fe5b6020026020010181815250506a4f696b6f73457363726f7760a81b8160078151811061139757fe5b6020026020010181815250506b4c69717569646174696f6e7360a01b816008815181106113c057fe5b6020026020010181815250506844656274436163686560b81b816009815181106113e657fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600a8151811061141057fe5b6020026020010181815250506b53797374656d53746174757360a01b81600b8151811061143957fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600c8151811061147357fe5b602002602001018181525050766578743a41676772656761746f7244656274526174696f60481b81600d815181106114a757fe5b6020026020010181815250506114bd8282612fda565b9250505090565b600080600061155b6114d4612b9c565b6001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016114ff9190614cca565b60206040518083038186803b15801561151757600080fd5b505afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061154f9190810190614274565b624f4b5360e81b61308f565b93509091506000905061157c61156f613181565b839063ffffffff6131d916565b905084811061158e57600093506115a1565b61159e858263ffffffff6131ee16565b93505b50509250929050565b6000546001600160a01b031681565b6115c1611df1565b6115cb838361274f565b610d5a838260006127f0565b60006115e282613216565b5092915050565b6000610b3a82613296565b6000806115ff611df1565b6116076133ef565b6001600160a01b031663d6f32e0684631bd554d160e21b6040518363ffffffff1660e01b815260040161163b929190614cf3565b60206040518083038186803b15801561165357600080fd5b505afa158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061168b9190810190614238565b156116a85760405162461bcd60e51b815260040161062290614f2a565b6116b0613406565b6001600160a01b031663c49e80a6866040518263ffffffff1660e01b81526004016116db9190614cca565b60206040518083038186803b1580156116f357600080fd5b505afa158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061172b9190810190614238565b6117475760405162461bcd60e51b815260040161062290614fba565b631bd554d160e21b6000526005602052600080516020615193833981519152546040516370a0823160e01b815285916001600160a01b0316906370a0823190611794908790600401614cca565b60206040518083038186803b1580156117ac57600080fd5b505afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117e49190810190614274565b10156118025760405162461bcd60e51b815260040161062290614eda565b600061180c613406565b6001600160a01b03166323f5589a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061187c9190810190614274565b9050600080600061191661188e612b9c565b6001600160a01b03166370a082318b6040518263ffffffff1660e01b81526004016118b99190614cca565b60206040518083038186803b1580156118d157600080fd5b505afa1580156118e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119099190810190614274565b631bd554d160e21b61308f565b925092509250600080611927612a90565b6001600160a01b0316630c71cd23624f4b5360e81b6040518263ffffffff1660e01b81526004016119589190614d99565b604080518083038186803b15801561196f57600080fd5b505afa158015611983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119a7919081019061433a565b915091506119bc83806119b75750815b613420565b60006119c78c613296565b905060006119d3613406565b6001600160a01b0316630ac045d5886119ec858861343e565b6040518363ffffffff1660e01b8152600401611a09929190614db5565b60206040518083038186803b158015611a2157600080fd5b505afa158015611a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a599190810190614274565b90508b8110611a68578b611a6a565b805b98506000611a788a86613450565b9050611b16611b098a73__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac557600080fd5b505af4158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611afd9190810190614274565b9063ffffffff61346216565b829063ffffffff61348716565b9a50828b1115611b8757829a50611b84611b7e611b718b73__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac557600080fd5b859063ffffffff6134b116565b8661343e565b99505b611b948e8d8c8b8b6134db565b50818a1415611c0357611ba5613406565b6001600160a01b031663974e9e7f8f6040518263ffffffff1660e01b8152600401611bd09190614cca565b600060405180830381600087803b158015611bea57600080fd5b505af1158015611bfe573d6000803e3d6000fd5b505050505b505050505050505050935093915050565b600080611c2083613216565b915091505b915091565b611c32611df1565b610637828260006127f0565b600061096c613181565b6000610b3a82613609565b611c5b611df1565b610e328160006001611e2b565b600080611c73612b9c565b90506000816001600160a01b03166370a08231866040518263ffffffff1660e01b8152600401611ca39190614cca565b60206040518083038186803b158015611cbb57600080fd5b505afa158015611ccf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cf39190810190614274565b905080611d0557600092505050610b3a565b611d0f818561308f565b50909695505050505050565b611d23613628565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d949190810190614097565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b8152600401610de6929190614cf3565b60045490565b6000610b3a82613660565b611dda611df1565b611de48282612bb8565b6106378260006001611e2b565b611df9613729565b6001600160a01b0316336001600160a01b031614611e295760405162461bcd60e51b815260040161062290614fea565b565b611e3361373c565b611e3c57610d5a565b6000806000611e4a86612540565b93509350509250611e5a81613420565b83611e845782851115611e7f5760405162461bcd60e51b815260040161062290614eca565b611e88565b8294505b611e93868684613876565b611e9c86613a3d565b631bd554d160e21b60005260056020526000805160206151938339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b490611eeb9089908990600401614cf3565b600060405180830381600087803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b50505050611f2561207b565b6001600160a01b0316634b964fa7611f3c87613ab6565b6040518263ffffffff1660e01b8152600401611f589190614d99565b600060405180830381600087803b158015611f7257600080fd5b505af1158015611f86573d6000803e3d6000fd5b50505050505050505050565b600080600080611fa0612a90565b6001600160a01b0316630c71cd23624f4b5360e81b6040518263ffffffff1660e01b8152600401611fd19190614d99565b604080518083038186803b158015611fe857600080fd5b505afa158015611ffc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612020919081019061433a565b91509150600061203861203287613296565b8461343e565b9050612045611b09613181565b94509092505050915091565b6000546001600160a01b03163314611e295760405162461bcd60e51b815260040161062290614f4a565b600061096c6844656274436163686560b81b6125cd565b6000818152600560205260409020546001600160a01b0316806120c75760405162461bcd60e51b815260040161062290614f1a565b631bd554d160e21b8214156120ee5760405162461bcd60e51b815260040161062290614f7a565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561212957600080fd5b505afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121619190810190614274565b905080156123e357600080612174612a90565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b81526004016121a1929190614e26565b60606040518083038186803b1580156121b957600080fd5b505afa1580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121f191908101906143ba565b5091509150600081116122165760405162461bcd60e51b815260040161062290614f3a565b6000612220613adf565b631bd554d160e21b60005260056020526000805160206151938339815191525460405163219e412d60e21b81529192506001600160a01b03169063867904b4906122709084908790600401614cf3565b600060405180830381600087803b15801561228a57600080fd5b505af115801561229e573d6000803e3d6000fd5b505050506122aa61207b565b6001600160a01b0316634b964fa76122c185613ab6565b6040518263ffffffff1660e01b81526004016122dd9190614d99565b600060405180830381600087803b1580156122f757600080fd5b505af115801561230b573d6000803e3d6000fd5b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b15801561235757600080fd5b505afa15801561236b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061238f91908101906142e0565b846040518363ffffffff1660e01b81526004016123ad929190614e5b565b600060405180830381600087803b1580156123c757600080fd5b505af11580156123db573d6000803e3d6000fd5b505050505050505b60005b6004548110156124ca57826001600160a01b03166004828154811061240757fe5b6000918252602090912001546001600160a01b031614156124c2576004818154811061242f57fe5b600091825260209091200180546001600160a01b031916905560048054600019810190811061245a57fe5b600091825260209091200154600480546001600160a01b03909216918390811061248057fe5b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905560048054906124bc906000198301613f06565b506124ca565b6001016123e6565b506001600160a01b038216600090815260066020908152604080832083905585835260059091529081902080546001600160a01b0319169055517f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d0906125339085908590614da7565b60405180910390a1505050565b60008060008061257c612551612b9c565b6001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016118b99190614cca565b9194509250905060008061258f87611f92565b91509150819550828061259f5750805b92508585106125b157600095506125c4565b6125c1868663ffffffff6131ee16565b95505b50509193509193565b60008181526003602090815260408083205490516001600160a01b0390911691821515916125fd91869101614c9f565b604051602081830303815290604052906115e25760405162461bcd60e51b81526004016106229190614e69565b600061264383836b033b2e3c9fd0803ce8000000613afa565b9392505050565b6000612654613b32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b81526004016126a4929190614db5565b60206040518083038186803b1580156126bc57600080fd5b505afa1580156126d0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061096c9190810190614274565b60006126fe613b32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b81526004016126a4929190614db5565b612757613b4f565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b8152600401612784929190614cd8565b60206040518083038186803b15801561279c57600080fd5b505afa1580156127b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127d49190810190614238565b6106375760405162461bcd60e51b815260040161062290614e8a565b6127f861373c565b61280157610d5a565b8061295e5761280f83613609565b61282b5760405162461bcd60e51b815260040161062290614fca565b6000806128366133ef565b6001600160a01b0316631b16802c86631bd554d160e21b6040518363ffffffff1660e01b815260040161286a929190614cf3565b606060405180830381600087803b15801561288457600080fd5b505af1158015612898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128bc91908101906143ba565b909350915050801561295b576128d06133ef565b6001600160a01b0316634c268fc886631bd554d160e21b87866040518563ffffffff1660e01b81526004016129089493929190614d0e565b60206040518083038186803b15801561292057600080fd5b505afa158015612934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129589190810190614274565b93505b50505b600080600061299961296e612b9c565b6001600160a01b03166370a08231886040518263ffffffff1660e01b81526004016118b99190614cca565b9250925092506000806129ab88611f92565b915091506129bf83806119b7575081613420565b600085116129df5760405162461bcd60e51b815260040161062290614eba565b85156129f8576129f5858363ffffffff6131ee16565b96505b6000612a07898a8a89896134db565b905082612a1a878363ffffffff6131ee16565b11612a8557612a27613406565b6001600160a01b031663974e9e7f8a6040518263ffffffff1660e01b8152600401612a529190614cca565b600060405180830381600087803b158015612a6c57600080fd5b505af1158015612a80573d6000803e3d6000fd5b505050505b505050505050505050565b600061096c6c45786368616e6765526174657360981b6125cd565b60608082612aba576000612abd565b60015b60ff1660048054905001604051908082528060200260200182016040528015612af0578160200160208202803883390190505b50905060005b600454811015612b57576006600060048381548110612b1157fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110612b4457fe5b6020908102919091010152600101612af6565b508215610b3a576004548151624f4b5360e81b9183918110612b7557fe5b60200260200101818152505092915050565b600061096c66119959541bdbdb60ca1b6125cd565b600061096c6d4f696b6f7344656274536861726560901b6125cd565b612bc0613b4f565b6001600160a01b0316630487261783836040518363ffffffff1660e01b8152600401612784929190614cd8565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b158015612c2857600080fd5b505afa158015612c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c609190810190614274565b6000818152600560205260409020549091506001600160a01b031615612c985760405162461bcd60e51b815260040161062290614faa565b6001600160a01b03821660009081526006602052604090205415612cce5760405162461bcd60e51b815260040161062290614f5a565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0384166001600160a01b03199182168117909255600083815260056020908152604080832080549094168517909355928152600690925290819020829055517f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c6288490612d729083908590614da7565b60405180910390a15050565b6000806000806000612d8e61207b565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015612dc657600080fd5b505afa158015612dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dfe9190810190614359565b935093505092508180612e0e5750805b93506000612e1a612a90565b905086612ec057600080612e2c61207b565b6001600160a01b031663b8d86d2e6040518163ffffffff1660e01b8152600401604080518083038186803b158015612e6357600080fd5b505afa158015612e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e9b919081019061433a565b9092509050612eb0868363ffffffff61346216565b95508680612ebb5750805b965050505b631bd554d160e21b881415612edb5750919350612f82915050565b600080826001600160a01b0316630c71cd238b6040518263ffffffff1660e01b8152600401612f0a9190614d99565b604080518083038186803b158015612f2157600080fd5b505afa158015612f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f59919081019061433a565b9092509050612f6e868363ffffffff6131d916565b8780612f775750815b975097505050505050505b9250929050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110612fcb57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561300a578160200160208202803883390190505b50905060005b835181101561304c5783818151811061302557fe5b602002602001015182828151811061303957fe5b6020908102919091010152600101613010565b5060005b82518110156115e25782818151811061306557fe5b602002602001015182828651018151811061307c57fe5b6020908102919091010152600101613050565b6000806000806000806130a0610758565b92509250925087600014156130c0576000955091935090915061317a9050565b6000806130cb612a90565b6001600160a01b0316630c71cd238a6040518263ffffffff1660e01b81526004016130f69190614d99565b604080518083038186803b15801561310d57600080fd5b505afa158015613121573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613145919081019061433a565b91509150613164826131588c8888613b6e565b9063ffffffff6131d916565b975084965080806131725750825b955050505050505b9250925092565b600061318b613b32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b81526004016126a4929190614db5565b60006126438383670de0b6b3a7640000613afa565b6000828211156132105760405162461bcd60e51b815260040161062290614eea565b50900390565b600080600061322484613296565b905060008061325f613234612b9c565b6001600160a01b03166370a08231886040518263ffffffff1660e01b81526004016114ff9190614cca565b9250509150826000141561327b57600094509250611c25915050565b61328b828463ffffffff6131d916565b945092505050915091565b6000806132a1613729565b6001600160a01b03166370a08231846040518263ffffffff1660e01b81526004016132cc9190614cca565b60206040518083038186803b1580156132e457600080fd5b505afa1580156132f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061331c9190810190614274565b90506000613328613b8c565b6001600160a01b0316146133cc576133c9613341613b8c565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161336c9190614cca565b60206040518083038186803b15801561338457600080fd5b505afa158015613398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133bc9190810190614274565b829063ffffffff61346216565b90505b60006133d6613ba5565b6001600160a01b031614610b3a57612643613341613ba5565b600061096c6822bc31b430b733b2b960b91b6125cd565b600061096c6b4c69717569646174696f6e7360a01b6125cd565b8015610e325760405162461bcd60e51b815260040161062290614f8a565b6000612643838363ffffffff613bc116565b6000612643838363ffffffff6131d916565b6000828201838110156126435760405162461bcd60e51b815260040161062290614e9a565b6000670de0b6b3a76400006134a2848463ffffffff613bd616565b816134a957fe5b049392505050565b6000612643826134cf85670de0b6b3a764000063ffffffff613bd616565b9063ffffffff613c1016565b60006134e561373c565b6134f157506000613600565b8383106134fe5783613500565b825b905061350e86828585613c45565b631bd554d160e21b600052600560205260008051602061519383398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061355d9088908590600401614cf3565b600060405180830381600087803b15801561357757600080fd5b505af115801561358b573d6000803e3d6000fd5b5050505061359761207b565b6001600160a01b0316634b964fa76135ae83613ab6565b6000036040518263ffffffff1660e01b81526004016135cd9190614d99565b600060405180830381600087803b1580156135e757600080fd5b505af11580156135fb573d6000803e3d6000fd5b505050505b95945050505050565b600061361f6136166126f4565b611afd84613660565b42101592915050565b613630613adf565b6001600160a01b0316336001600160a01b031614611e295760405162461bcd60e51b815260040161062290614eaa565b600061366a613b32565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b856040516020016136a6929190614c79565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b81526004016136d9929190614db5565b60206040518083038186803b1580156136f157600080fd5b505afa158015613705573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b3a9190810190614274565b600061096c644f696b6f7360d81b6125cd565b6000806000613764766578743a41676772656761746f7244656274526174696f60481b6125cd565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561379c57600080fd5b505afa1580156137b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137d491908101906143fd565b5093505092505060006137e960075484613df7565b90506137f3613e43565b811061386b57613801613eab565b6001600160a01b031663396e258e60a56040518263ffffffff1660e01b815260040161382d9190614d99565b600060405180830381600087803b15801561384757600080fd5b505af115801561385b573d6000803e3d6000fd5b505050506000935050505061096f565b505060075550600190565b6000613880612b9c565b9050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156138bb57600080fd5b505afa1580156138cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506138f39190810190614274565b61395c57604051636178258560e11b81526001600160a01b0382169063c2f04b0a906139259087908790600401614cf3565b600060405180830381600087803b15801561393f57600080fd5b505af1158015613953573d6000803e3d6000fd5b50505050613a37565b806001600160a01b031663c2f04b0a856139e78686866001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139aa57600080fd5b505afa1580156139be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139e29190810190614274565b613ec5565b6040518363ffffffff1660e01b8152600401613a04929190614cf3565b600060405180830381600087803b158015613a1e57600080fd5b505af1158015613a32573d6000803e3d6000fd5b505050505b50505050565b613a45613b32565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b84604051602001613a81929190614c79565b60405160208183030381529060405280519060200120426040518463ffffffff1660e01b81526004016111f893929190614dc3565b6000600160ff1b8210613adb5760405162461bcd60e51b815260040161062290614fda565b5090565b600061096c6c29bcb73a342932b232b2b6b2b960991b6125cd565b600080613b14846134cf87600a870263ffffffff613bd616565b90506005600a825b0610613b2657600a015b600a9004949350505050565b600061096c6e466c657869626c6553746f7261676560881b6125cd565b600061096c7044656c6567617465417070726f76616c7360781b6125cd565b6000613b8482613158868663ffffffff613bc116565b949350505050565b600061096c6a4f696b6f73457363726f7760a81b6125cd565b600061096c6d2932bbb0b93222b9b1b937bbab1960911b6125cd565b60006126438383670de0b6b3a7640000613edb565b600082613be557506000610b3a565b82820282848281613bf257fe5b04146126435760405162461bcd60e51b815260040161062290614f6a565b6000808211613c315760405162461bcd60e51b815260040161062290614efa565b6000828481613c3c57fe5b04949350505050565b6000613c4f612b9c565b90506000816001600160a01b03166370a08231876040518263ffffffff1660e01b8152600401613c7f9190614cca565b60206040518083038186803b158015613c9757600080fd5b505afa158015613cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613ccf9190810190614274565b905083851415613d3e57604051631a378f0d60e01b81526001600160a01b03831690631a378f0d90613d079089908590600401614cf3565b600060405180830381600087803b158015613d2157600080fd5b505af1158015613d35573d6000803e3d6000fd5b50505050610c68565b6000613d7e8685856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139aa57600080fd5b9050826001600160a01b0316631a378f0d88848410613d9d5784613d9f565b835b6040518363ffffffff1660e01b8152600401613dbc929190614cf3565b600060405180830381600087803b158015613dd657600080fd5b505af1158015613dea573d6000803e3d6000fd5b5050505050505050505050565b600082613e0657506001610b3a565b81613e145750600019610b3a565b81831115613e3357613e2c838363ffffffff6134b116565b9050610b3a565b612643828463ffffffff6134b116565b6000613e4d613b32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b81526004016126a4929190614db5565b600061096c6b53797374656d53746174757360a01b6125cd565b6000613b8483613158868563ffffffff613bc116565b600080600a8304613ef2868663ffffffff613bd616565b81613ef957fe5b0490506005600a82613b1c565b815481835581811115610d5a57600083815260209020610d5a91810190830161096f91905b80821115613adb5760008155600101613f2b565b8035610b3a81615151565b8051610b3a81615151565b60008083601f840112613f6757600080fd5b50813567ffffffffffffffff811115613f7f57600080fd5b602083019150836020820283011115612f8257600080fd5b600082601f830112613fa857600080fd5b8151613fbb613fb682615072565b61504b565b91508181835260208401935060208101905083856020840282011115613fe057600080fd5b60005b8381101561400c5781613ff68882614037565b8452506020928301929190910190600101613fe3565b5050505092915050565b8035610b3a81615165565b8051610b3a81615165565b8035610b3a8161516e565b8051610b3a8161516e565b8035610b3a81615177565b8051610b3a81615177565b8035610b3a81615180565b8051610b3a81615180565b8051610b3a81615189565b60006020828403121561408b57600080fd5b6000613b848484613f3f565b6000602082840312156140a957600080fd5b6000613b848484613f4a565b600080604083850312156140c857600080fd5b60006140d48585613f3f565b92505060206140e585828601613f3f565b9150509250929050565b60008060006060848603121561410457600080fd5b60006141108686613f3f565b935050602061412186828701613f3f565b92505060406141328682870161402c565b9150509250925092565b6000806040838503121561414f57600080fd5b600061415b8585613f3f565b92505060206140e58582860161402c565b60008060006060848603121561418157600080fd5b600061418d8686613f3f565b935050602061419e8682870161402c565b925050604061413286828701613f3f565b600080602083850312156141c257600080fd5b823567ffffffffffffffff8111156141d957600080fd5b6141e585828601613f55565b92509250509250929050565b6000806040838503121561420457600080fd5b825167ffffffffffffffff81111561421b57600080fd5b61422785828601613f97565b92505060206140e585828601614021565b60006020828403121561424a57600080fd5b6000613b848484614021565b60006020828403121561426857600080fd5b6000613b84848461402c565b60006020828403121561428657600080fd5b6000613b848484614037565b600080604083850312156142a557600080fd5b60006142b1858561402c565b92505060206140e585828601614016565b6000602082840312156142d457600080fd5b6000613b848484614042565b6000602082840312156142f257600080fd5b6000613b84848461404d565b60006020828403121561431057600080fd5b6000613b848484614058565b60006020828403121561432e57600080fd5b6000613b848484614063565b6000806040838503121561434d57600080fd5b60006142278585614037565b6000806000806080858703121561436f57600080fd5b600061437b8787614037565b945050602061438c87828801614037565b935050604061439d87828801614021565b92505060606143ae87828801614021565b91505092959194509250565b6000806000606084860312156143cf57600080fd5b60006143db8686614037565b93505060206143ec86828701614037565b925050604061413286828701614037565b600080600080600060a0868803121561441557600080fd5b6000614421888861406e565b955050602061443288828901614037565b945050604061444388828901614037565b935050606061445488828901614037565b92505060806144658882890161406e565b9150509295509295909350565b600061447e83836145e9565b505060200190565b600061447e8383614603565b61449b816150ab565b82525050565b61449b6144ad826150ab565b615130565b60006144be838561509d565b93506001600160fb1b038311156144d457600080fd5b6020830292506144e58385846150f8565b50500190565b60006144f682615099565b614500818561509d565b935061450b83615093565b8060005b838110156145395781516145238882614472565b975061452e83615093565b92505060010161450f565b509495945050505050565b600061454f82615099565b614559818561509d565b935061456483615093565b8060005b8381101561453957815161457c8882614486565b975061458783615093565b925050600101614568565b600061459d82615099565b6145a7818561509d565b93506145b283615093565b8060005b838110156145395781516145ca8882614472565b97506145d583615093565b9250506001016145b6565b61449b816150b6565b61449b8161096f565b61449b6145fe8261096f565b61096f565b61449b816150bb565b61449b816150ed565b600061462082615099565b61462a818561509d565b935061463a818560208601615104565b61464381615141565b9093019392505050565b600061465a60358361509d565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006146b1601d8361509d565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b60006146ea601b8361509d565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614723603f8361509d565b7f4973737565723a204f6e6c79207468652053796e746852656465656d6572206381527f6f6e74726163742063616e20706572666f726d207468697320616374696f6e00602082015260400192915050565b600061478260128361509d565b714e6f206465627420746f20666f726769766560701b815260200192915050565b60006147b060108361509d565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b60006147dc600f8361509d565b6e139bdd08195b9bdd59da081bd554d1608a1b815260200192915050565b6000614807601e8361509d565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000614840601a8361509d565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006148796011836150a6565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006148a660108361509d565b6f135d5cdd08189948199959481c1bdbdb60821b815260200192915050565b60006148d260148361509d565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b600061490260188361509d565b7f6f555344206e6565647320746f20626520736574746c65640000000000000000815260200192915050565b600061493b602a8361509d565b7f43616e6e6f742072656d6f76652073796e746820746f2072656465656d20776981526974686f7574207261746560b01b602082015260400192915050565b6000614987602f8361509d565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006149d8601c8361509d565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b6000614a1160218361509d565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000614a5460138361509d565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b6000614a83601e8361509d565b7f412073796e7468206f72204f4b53207261746520697320696e76616c69640000815260200192915050565b6000614abc601d8361509d565b7f4973737565723a2063616e6e6f7420697373756520302073796e746873000000815260200192915050565b6000614af56019836150a6565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000614b2e600c8361509d565b6b53796e74682065786973747360a01b815260200192915050565b6000614b5660208361509d565b7f4163636f756e74206e6f74206f70656e20666f72206c69717569646174696f6e815260200192915050565b6000614b8f601e8361509d565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b6000614bc860288361509d565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b6000614c1260378361509d565b7f4973737565723a204f6e6c7920746865206f696b6f7320636f6e74726163742081527f63616e20706572666f726d207468697320616374696f6e000000000000000000602082015260400192915050565b631bd554d160e21b9052565b61449b816150c6565b6000614c8582856145f2565b602082019150614c9582846144a1565b5060140192915050565b6000614caa8261486c565b9150614cb682846145f2565b50602001919050565b6000614caa82614ae8565b60208101610b3a8284614492565b60408101614ce68285614492565b6126436020830184614492565b60408101614d018285614492565b61264360208301846145e9565b60808101614d1c8287614492565b614d2960208301866145e9565b614d3660408301856145e9565b61360060608301846145e9565b60408082528101614d558185876144b2565b905081810360208301526136008184614592565b6020808252810161264381846144eb565b602080825281016126438184614544565b60208101610b3a82846145e0565b60208101610b3a82846145e9565b60408101614ce682856145e9565b60408101614d0182856145e9565b60608101614dd182866145e9565b614dde60208301856145e9565b613b8460408301846145e9565b60408101614df982856145e9565b612643602083018461460c565b60408101614e1482856145e9565b8181036020830152613b848184614615565b60608101614e3482856145e9565b614e4160208301846145e9565b61264360408301614c64565b60208101610b3a8284614603565b60408101614d018285614603565b602080825281016126438184614615565b60208082528101610b3a8161464d565b60208082528101610b3a816146a4565b60208082528101610b3a816146dd565b60208082528101610b3a81614716565b60208082528101610b3a81614775565b60208082528101610b3a816147a3565b60208082528101610b3a816147cf565b60208082528101610b3a816147fa565b60208082528101610b3a81614833565b60208082528101610b3a81614899565b60208082528101610b3a816148c5565b60208082528101610b3a816148f5565b60208082528101610b3a8161492e565b60208082528101610b3a8161497a565b60208082528101610b3a816149cb565b60208082528101610b3a81614a04565b60208082528101610b3a81614a47565b60208082528101610b3a81614a76565b60208082528101610b3a81614aaf565b60208082528101610b3a81614b21565b60208082528101610b3a81614b49565b60208082528101610b3a81614b82565b60208082528101610b3a81614bbb565b60208082528101610b3a81614c05565b60208101610b3a8284614c70565b6040810161501682856145e9565b61264360208301846145e0565b6060810161503182866145e9565b61503e60208301856145e9565b613b8460408301846145e0565b60405181810167ffffffffffffffff8111828210171561506a57600080fd5b604052919050565b600067ffffffffffffffff82111561508957600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000610b3a826150d2565b151590565b6000610b3a826150ab565b6001600160801b031690565b6001600160a01b031690565b69ffffffffffffffffffff1690565b6000610b3a8261096f565b82818337506000910152565b60005b8381101561511f578181015183820152602001615107565b83811115613a375750506000910152565b6000610b3a826000610b3a8261514b565b601f01601f191690565b60601b90565b61515a816150ab565b8114610e3257600080fd5b61515a816150b6565b61515a8161096f565b61515a816150bb565b61515a816150c6565b61515a816150de56fe6bebc2397ce8059e368788ed489f40557a079814cc3e9cde88a639d7488c8b7fa365627a7a723158206ee8d98a46fba05304dc0383cb0a84197541c2cf9826c4d6e8bb05743d5a1e166c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "SynthAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "SynthRemoved",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CIRCUIT_BREAKER_SUSPENSION_REASON",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynth",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "addSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynth[]",
							"name": "synthsToAdd",
							"type": "address[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allNetworksDebtInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "sharesSupply",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isStale",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "anySynthOrOKSRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableSynthCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "availableSynths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "deprecatedSynthProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "balance",
							"type": "uint256"
						}
					],
					"name": "burnForRedemption",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "burnSynthsToTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "burnSynthsToTargetOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "canBurnSynths",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "collateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatioAndAnyRatesInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "debtBalanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "getSynths",
					"outputs": [
						{
							"internalType": "contract ISynth[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "issueMaxSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "issueMaxSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastDebtRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "lastIssueEvent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "susdAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "liquidateDelinquentAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRedeemed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amountToLiquidate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "maxIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumStakeTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "remainingIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyIssued",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalSystemDebt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "removeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint128",
							"name": "periodId",
							"type": "uint128"
						}
					],
					"name": "setCurrentPeriodId",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "setLastDebtRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "synthsByAddress",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "excludeOtherCollateral",
							"type": "bool"
						}
					],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalIssued",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "balance",
							"type": "uint256"
						}
					],
					"name": "transferableOikosAndAnyRateIsInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x1e437a73a3e7cc950589272747f4c1d4873d3455f2ef55850edf94a5b60c2f0f",
				"urls": [
					"bzz-raw://47b00b377aa1c29abe519f653d7bfb148e86780d192a947d8f2487b696c8d3ea",
					"dweb:/ipfs/QmbdNWx3XHHp7vfoeA1KiESnFmtjAWkEFWAKEshuNbC1Xm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Issuer.sol": "Issuer"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Issuer.sol": {
						"keccak256": "0x1e437a73a3e7cc950589272747f4c1d4873d3455f2ef55850edf94a5b60c2f0f",
						"urls": [
							"bzz-raw://47b00b377aa1c29abe519f653d7bfb148e86780d192a947d8f2487b696c8d3ea",
							"dweb:/ipfs/QmbdNWx3XHHp7vfoeA1KiESnFmtjAWkEFWAKEshuNbC1Xm"
						]
					}
				},
				"version": 1
			}
		},
		"TradingRewards": {
			"bytecode": "608060405234801561001057600080fd5b5060405161220b38038061220b8339818101604052606081101561003357600080fd5b5080516020820151604090920151600160005590919080836001600160a01b0381166100a6576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040805160008152602081019290925280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506001546001600160a01b0316610152576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b60048054610100600160a81b0319166101006001600160a01b039384160217905582166101c6576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420706572696f6420636f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b50600980546001600160a01b0319166001600160a01b039290921691909117905550612014806101f76000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063741853601161010f578063b225dbaa116100a2578063f32ffd6911610071578063f32ffd69146104e2578063f61f5df614610552578063f6b584791461057e578063fc9c99ac146105fe576101f0565b8063b225dbaa14610491578063ccb6e043146102c5578063ce7fccba146104ae578063dea021a5146104da576101f0565b806391b4ded9116100de57806391b4ded914610438578063937ffb8f146104405780639865fdb71461045d578063ae934a7a14610465576101f0565b806374185360146103c857806379ba5097146103d0578063899ffef4146103d85780638da5cb5b14610430576101f0565b80632af64bd31161018757806355aa41bf1161015657806355aa41bf1461037e5780635c975abb1461039b5780636fe4136b146103a3578063706848d2146103ab576101f0565b80632af64bd31461032257806338dfa8cf1461032a5780633dbf12fa1461035057806353a47bb714610376576101f0565b806316841952116101c3578063168419521461028957806316c38b3c146102a6578063175c5189146102c557806321cad774146102f6576101f0565b806304f3bcec146101f5578063056097ac14610219578063086146d2146102495780631627540c14610263575b600080fd5b6101fd610606565b604080516001600160a01b039092168252519081900360200190f35b6102476004803603604081101561022f57600080fd5b506001600160a01b038135811691602001351661061a565b005b6102516107c5565b60408051918252519081900360200190f35b6102476004803603602081101561027957600080fd5b50356001600160a01b03166107cc565b6102476004803603602081101561029f57600080fd5b5035610828565b610247600480360360208110156102bc57600080fd5b50351515610a51565b6102e2600480360360208110156102db57600080fd5b5035610acb565b604080519115158252519081900360200190f35b6102476004803603604081101561030c57600080fd5b50803590602001356001600160a01b0316610ae0565b6102e2610c0a565b6102476004803603602081101561034057600080fd5b50356001600160a01b0316610d1c565b6102476004803603602081101561036657600080fd5b50356001600160a01b0316610ed4565b6101fd610f8b565b6102516004803603602081101561039457600080fd5b5035610f9a565b6102e2610faf565b6101fd610fb8565b610251600480360360208110156103c157600080fd5b5035610fc7565b610247610fdc565b6102476111b9565b6103e0611275565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561041c578181015183820152602001610404565b505050509050019250505060405180910390f35b6101fd6112e0565b6102516112ef565b6102516004803603602081101561045657600080fd5b50356112f5565b61025161130a565b6102476004803603604081101561047b57600080fd5b506001600160a01b0381351690602001356113a7565b610247600480360360208110156104a757600080fd5b5035611514565b610251600480360360408110156104c457600080fd5b506001600160a01b0381351690602001356115c1565b6101fd6115d6565b610247600480360360208110156104f857600080fd5b81019060208101813564010000000081111561051357600080fd5b82018360208201111561052557600080fd5b8035906020019184602083028401116401000000008311171561054757600080fd5b5090925090506115e5565b6102516004803603604081101561056857600080fd5b506001600160a01b0381351690602001356116c3565b6102516004803603604081101561059457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460208302840111640100000000831117156105f357600080fd5b5090925090506116ee565b61025161173e565b60045461010090046001600160a01b031681565b610622611744565b61062b8161178f565b6106336117ff565b6001600160a01b0316826001600160a01b03161415610699576040805162461bcd60e51b815260206004820152601960248201527f4d7573742075736520616e6f746865722066756e6374696f6e00000000000000604482015290519081900360640190fd5b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106e457600080fd5b505afa1580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b505190508061075b576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b6107756001600160a01b038316848363ffffffff61181216565b604080516001600160a01b0380871682528516602082015280820183905290517f401f439d865a766757ec78675925bd67198d5e78805aa41691b34b5d6a6cbbe69181900360600190a150505050565b6006545b90565b6107d4611744565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6009546001600160a01b03163314610887576040805162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206e6f7420706572696f6420636f6e74726f6c6c657200000000604482015290519081900360640190fd5b60006108916117ff565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108e657600080fd5b505afa1580156108fa573d6000803e3d6000fd5b505050506040513d602081101561091057600080fd5b505160075490915060009061092c90839063ffffffff61186416565b905080831115610983576040805162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742066726565207265776172647300000000000000604482015290519081900360640190fd5b60065460009081526008602052604090206002810184905560038101849055805460ff191660011781556007546109c0908563ffffffff6118c116565b600755600654604080519182526020820186905280517ffa0492b63d7120c62ccb8708eb597813e6968a23d09adac98d54dd0085cb264f9281900390910190a1600654610a1490600163ffffffff6118c116565b600681905560408051918252517f4368a9298adc0e57eceb11d0ef07022051a2feb5985d832be0764cde9a2307329181900360200190a150505050565b610a59611744565b60045460ff1615158115151415610a6f57610ac8565b6004805460ff1916821515179081905560ff1615610a8c57426003555b6004546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60009081526008602052604090205460ff1690565b610ae861191b565b6001600160a01b0316336001600160a01b031614610b4d576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c792045786368616e6765722063616e20696e766f6b6520746869730000604482015290519081900360640190fd5b60065460009081526008602090815260408083206001600160a01b03851684526004810190925290912054610b88908463ffffffff6118c116565b6001600160a01b03831660009081526004830160205260409020556001810154610bb8908463ffffffff6118c116565b600182015560065460408051858152602081019290925280516001600160a01b038516927f927be3e95451b16be3f4586524834dfffa10e6f9ee4c1e26fe3c46140fbbf86692908290030190a2505050565b60006060610c16611275565b905060005b8151811015610d13576000828281518110610c3257fe5b602090810291909101810151600081815260058352604090819020546004805483516321f8a72160e01b815291820185905292519395506001600160a01b0391821694610100909304909116926321f8a72192602480840193919291829003018186803b158015610ca257600080fd5b505afa158015610cb6573d6000803e3d6000fd5b505050506040513d6020811015610ccc57600080fd5b50516001600160a01b0316141580610cf957506000818152600560205260409020546001600160a01b0316155b15610d0a57600093505050506107c9565b50600101610c1b565b50600191505090565b610d24611744565b610d2d8161178f565b6000610d376117ff565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d8c57600080fd5b505afa158015610da0573d6000803e3d6000fd5b505050506040513d6020811015610db657600080fd5b5051905080610e03576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b6000610e1a6007548361186490919063ffffffff16565b905060008111610e68576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b610e8b8382610e756117ff565b6001600160a01b0316919063ffffffff61181216565b604080516001600160a01b03851681526020810183905281517f14e7312259d4851b8b6742ace55ac44b31d7929a6b2998b35ba22445859e5ee3929181900390910190a1505050565b610edc611744565b6001600160a01b038116610f37576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420706572696f6420636f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b600980546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fb81e5409e39d3d3d85951a2af3563e484cfe2e7b4af2500a0ecbe14035a9bddc9181900360200190a150565b6002546001600160a01b031681565b60009081526008602052604090206001015490565b60045460ff1681565b6000610fc26117ff565b905090565b60009081526008602052604090206003015490565b6060610fe6611275565b905060005b81518110156111b557600082828151811061100257fe5b602002602001015190506000600460019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156110cd5781810151838201526020016110b5565b50505050905090810190601f1680156110fa5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561111857600080fd5b505afa15801561112c573d6000803e3d6000fd5b505050506040513d602081101561114257600080fd5b505160008381526005602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610feb565b5050565b6002546001600160a01b031633146112025760405162461bcd60e51b8152600401808060200182810382526035815260200180611ef56035913960400191505060405180910390fd5b600154600254604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160028054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60408051600280825260608083018452926020830190803883390190505090506822bc31b430b733b2b960b91b816000815181106112af57fe5b602002602001018181525050644f696b6f7360d81b816001815181106112d157fe5b60200260200101818152505090565b6001546001600160a01b031681565b60035481565b60009081526008602052604090206002015490565b6000610fc260075461131a6117ff565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561136f57600080fd5b505afa158015611383573d6000803e3d6000fd5b505050506040513d602081101561139957600080fd5b50519063ffffffff61186416565b6113af611744565b6113b88261178f565b600654811061140e576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74207265636f7665722066726f6d20616374697665000000000000604482015290519081900360640190fd5b60008181526008602052604090206003810154611472576040805162461bcd60e51b815260206004820152601f60248201527f4e6f207265776172647320617661696c61626c6520746f207265636f76657200604482015290519081900360640190fd5b60038101546114848482610e756117ff565b600754611497908263ffffffff61186416565b6007556000838152600860209081526040808320805460ff1916815560018101849055600281018490556003019290925581516001600160a01b038716815290810183905280820185905290517f60f2caebb6d06055322fce1f0db429f6bc0a48534c8c9ba42359a80f36bb7f0c9181900360600190a150505050565b600080546001019081905560045460ff16156115615760405162461bcd60e51b815260040180806020018281038252603c815260200180611f7a603c913960400191505060405180910390fd5b61156b3383611932565b60005481146111b5576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60006115cd8383611a91565b90505b92915050565b6009546001600160a01b031690565b600080546001019081905560045460ff16156116325760405162461bcd60e51b815260040180806020018281038252603c815260200180611f7a603c913960400191505060405180910390fd5b60005b8281101561166757600084848381811061164b57fe5b90506020020135905061165e3382611932565b50600101611635565b5060005481146116be576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050565b60009081526008602090815260408083206001600160a01b0394909416835260049093019052205490565b6000805b8281101561173657600084848381811061170857fe5b90506020020135905061172b61171e8783611a91565b849063ffffffff6118c116565b9250506001016116f2565b509392505050565b60075490565b6001546001600160a01b0316331461178d5760405162461bcd60e51b815260040180806020018281038252602f815260200180611f2a602f913960400191505060405180910390fd5b565b6001600160a01b03811615806117ad57506001600160a01b03811630145b15610ac8576040805162461bcd60e51b815260206004820152601760248201527f496e76616c6964207265636f7665722061646472657373000000000000000000604482015290519081900360640190fd5b6000610fc2644f696b6f7360d81b611b35565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116be908490611c19565b6000828211156118bb576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156115cd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610fc26822bc31b430b733b2b960b91b611b35565b6000818152600860205260409020805460ff16611996576040805162461bcd60e51b815260206004820152601760248201527f506572696f64206973206e6f742066696e616c697a6564000000000000000000604482015290519081900360640190fd5b60006119a28484611a91565b9050600081116119f0576040805162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b604482015290519081900360640190fd5b6001600160a01b03841660009081526004830160205260408120556003820154611a20908263ffffffff61186416565b6003830155600754611a38908263ffffffff61186416565b600755611a488482610e756117ff565b604080518281526020810185905281516001600160a01b038716927fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325928290030190a250505050565b600081815260086020526040812060038101541580611ab257506001810154155b80611abf5750805460ff16155b15611ace5760009150506115d0565b6001600160a01b038416600090815260048201602052604090205480611af9576000925050506115d0565b6000611b12836001015483611dd790919063ffffffff16565b9050611b2b836002015482611e0190919063ffffffff16565b9695505050505050565b600081815260056020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611c125760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bd7578181015183820152602001611bbf565b50505050905090810190601f168015611c045780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b611c2b826001600160a01b0316611e2b565b611c7c576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310611cba5780518252601f199092019160209182019101611c9b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611d1c576040519150601f19603f3d011682016040523d82523d6000602084013e611d21565b606091505b509150915081611d78576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611dd157808060200190516020811015611d9457600080fd5b5051611dd15760405162461bcd60e51b815260040180806020018281038252602a815260200180611fb6602a913960400191505060405180910390fd5b50505050565b60006115cd82611df585670de0b6b3a764000063ffffffff611e3116565b9063ffffffff611e8a16565b6000670de0b6b3a7640000611e1c848463ffffffff611e3116565b81611e2357fe5b049392505050565b3b151590565b600082611e40575060006115d0565b82820282848281611e4d57fe5b04146115cd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611f596021913960400191505060405180910390fd5b6000808211611ee0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611eeb57fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e7472616374206973207061757365645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582023c7d18ba683dcf1c45f383522de69a4047db663e246aa651124e4490a40045564736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "periodController",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "AssignedRewardTokensRecovered",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "ExchangeFeeRecorded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "NewPeriodStarted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newPeriodController",
							"type": "address"
						}
					],
					"name": "PeriodControllerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rewards",
							"type": "uint256"
						}
					],
					"name": "PeriodFinalizedWithRewards",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "RewardsClaimed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "TokensRecovered",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "UnassignedRewardTokensRecovered",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "claimRewardsForPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[]",
							"name": "periodIDs",
							"type": "uint256[]"
						}
					],
					"name": "claimRewardsForPeriods",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rewards",
							"type": "uint256"
						}
					],
					"name": "closeCurrentPeriodWithRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getAvailableRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getAvailableRewardsForAccountForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "periodIDs",
							"type": "uint256[]"
						}
					],
					"name": "getAvailableRewardsForAccountForPeriods",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRewards",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrentPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodAvailableRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getPeriodController",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodIsClaimable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodIsFinalized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodRecordedFees",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodTotalRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getRewardsToken",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getUnaccountedFeesForAccountForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getUnassignedRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "usdFeeAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "recordExchangeFeeForAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "recoverAssignedRewardTokensAndDestroyPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						}
					],
					"name": "recoverTokens",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						}
					],
					"name": "recoverUnassignedRewardTokens",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "newPeriodController",
							"type": "address"
						}
					],
					"name": "setPeriodController",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x5f32a1359869ab70917354cdc5f6deb7e61aad5c3b8449822060217eba53a69f",
				"urls": [
					"bzz-raw://c09b520be1b098e710c3ae48a7215907c271fc31035b1c66416b8cd05495c141",
					"dweb:/ipfs/QmUjZMrHheudFTN9EHHcCmK9h4Cz2Q8BMhkUSJd3Pmvo6F"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"TradingRewards.sol": "TradingRewards"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"TradingRewards.sol": {
						"keccak256": "0x5f32a1359869ab70917354cdc5f6deb7e61aad5c3b8449822060217eba53a69f",
						"urls": [
							"bzz-raw://c09b520be1b098e710c3ae48a7215907c271fc31035b1c66416b8cd05495c141",
							"dweb:/ipfs/QmUjZMrHheudFTN9EHHcCmK9h4Cz2Q8BMhkUSJd3Pmvo6F"
						]
					}
				},
				"version": 1
			}
		},
		"SupplySchedule": {
			"bytecode": "608060405268056bc75e2d631000006004556a027b46536c66c8e300000060065534801561002c57600080fd5b50604051610cb4380380610cb48339818101604052606081101561004f57600080fd5b5080516020820151604090920151909190826001600160a01b0381166100bc576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15060029190915560035550610b868061012e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806379ba5097116100c3578063be801f011161007c578063be801f01146102ae578063cc5c095c146102b6578063d3bd4bde146102be578063dbd3a6a7146102c6578063df5a9fc1146102ce578063ebd50faa146102d65761014d565b806379ba5097146102695780637e1b823f146102715780637e7961d7146102795780638da5cb5b146102965780639bdd7ac71461029e578063a43ab48e146102a65761014d565b806346b45af71161011557806346b45af7146101df5780634ae26521146101fb57806353a47bb714610218578063614d08f81461023c5780636f33e7e1146102445780637397ab6c1461024c5761014d565b80631627540c1461015257806322af2bab1461017a57806325a3746e146101945780632d122dc6146101b157806346872a23146101d7575b600080fd5b6101786004803603602081101561016857600080fd5b50356001600160a01b03166102de565b005b61018261033a565b60408051918252519081900360200190f35b610178600480360360208110156101aa57600080fd5b5035610347565b610178600480360360208110156101c757600080fd5b50356001600160a01b03166103e1565b610182610494565b6101e761049b565b604080519115158252519081900360200190f35b6101786004803603602081101561021157600080fd5b50356104bb565b610220610546565b604080516001600160a01b039092168252519081900360200190f35b610182610555565b61018261056a565b6101786004803603602081101561026257600080fd5b5035610570565b6101786105b5565b610182610671565b6101826004803603602081101561028f57600080fd5b5035610679565b6102206107e7565b6101826107f6565b6101826107fc565b610182610802565b610182610808565b61018261083e565b610182610844565b610182610893565b61022061089a565b6102e66108a9565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b680ad78ebc5ac620000081565b61034f6108a9565b6006548111156103a6576040805162461bcd60e51b815260206004820152601e60248201527f416d6f756e742061626f7665206d6178696d756d20696e666c6174696f6e0000604482015290519081900360640190fd5b60058190556040805182815290517f297a8f497249a00f95e5f63b91fe72db09907e46dba60ec5e4f6397056709a669181900360200190a150565b6103e96108a9565b6001600160a01b03811661043a576040805162461bcd60e51b81526020600482015260136024820152720416464726573732063616e6e6f74206265203606c1b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fb3f04140ca6cfdbdb1278a4f6a248ddacb81a1006675931f2d9735a5468213b2916020908290030190a150565b6201518081565b600062093a80600254420311156104b4575060016104b8565b5060005b90565b6104c36108a9565b680ad78ebc5ac620000081111561050b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610afd6026913960400191505060405180910390fd5b60048190556040805182815290517f036e0c635f8b7d9314bb6f2a577046108ef0f8b5e3869fbd29fd5a448ed99d309181900360200190a150565b6001546001600160a01b031681565b6d537570706c795363686564756c6560901b81565b60055481565b6105786108a9565b600681905560055460408051918252517f6a653dcb129ba34c380e770610eeb3b16e0318f91bf2a3cab0283b529086093b9181900360200190a150565b6001546001600160a01b031633146105fe5760405162461bcd60e51b8152600401808060200182810382526035815260200180610a786035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b635c7f0d8081565b60075460408051636a5c1cc960e11b815290516000926001600160a01b03169163d4b83992916004808301926020929190829003018186803b1580156106be57600080fd5b505afa1580156106d2573d6000803e3d6000fd5b505050506040513d60208110156106e857600080fd5b50516001600160a01b031633146107305760405162461bcd60e51b815260040180806020018281038252602f815260200180610b23602f913960400191505060405180910390fd5b600061073a610844565b600354909150610750908263ffffffff6108f416565b6003819055610792906201518090610786906107759062093a8063ffffffff61095716565b635c7f0d809063ffffffff6108f416565b9063ffffffff6108f416565b6002819055604080518581526020810184905280820192909252426060830152517f601e517d4811033fed8290c79b7823ce1ab70258da45400fe2391a3c7432edab9181900360800190a15050600454919050565b6000546001600160a01b031681565b60045481565b60065481565b60025481565b60008061081361049b565b61081e5790506104b8565b610838610829610844565b6005549063ffffffff61095716565b91505090565b60035481565b60008060006002541161086a5761086542635c7f0d8063ffffffff6109b016565b61087e565b60025461087e90429063ffffffff6109b016565b90506108388162093a8063ffffffff610a0d16565b62093a8081565b6007546001600160a01b031681565b6000546001600160a01b031633146108f25760405162461bcd60e51b815260040180806020018281038252602f815260200180610aad602f913960400191505060405180910390fd5b565b60008282018381101561094e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008261096657506000610951565b8282028284828161097357fe5b041461094e5760405162461bcd60e51b8152600401808060200182810382526021815260200180610adc6021913960400191505060405180910390fd5b600082821115610a07576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610a63576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610a6e57fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265776172642063616e6e6f7420657863656564206d6178206d696e746572207265776172644f6e6c7920746865206f696b6f7320636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a723158201d62e13cb4cdf29061ff9ce26a38f05539d4ac4ffb7fdf27350c64e9a1a6ed4464736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_lastMintEvent",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_currentWeek",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newInflationAmount",
							"type": "uint256"
						}
					],
					"name": "InflationAmountUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newInflationAmount",
							"type": "uint256"
						}
					],
					"name": "MaxInflationAmountUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRewardAmount",
							"type": "uint256"
						}
					],
					"name": "MinterRewardUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newAddress",
							"type": "address"
						}
					],
					"name": "OikosProxyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "supplyMinted",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "numberOfWeeksIssued",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "lastMintEvent",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "SupplyMinted",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "INFLATION_START_DATE",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_MINTER_REWARD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MINT_BUFFER",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MINT_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "inflationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isMintable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastMintEvent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxInflationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "mintableSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minterReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oikosProxy",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "supplyMinted",
							"type": "uint256"
						}
					],
					"name": "recordMintEvent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setInflationAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setMaxInflationAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setMinterReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IOikos",
							"name": "_oikosProxy",
							"type": "address"
						}
					],
					"name": "setOikosProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "weekCounter",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "weeksSinceLastIssuance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x0ea50bc22e69dd83e4bdcd2d5d9a6c40ddd4335a31f12c705e1b60e583a01f5c",
				"urls": [
					"bzz-raw://9eaaadd52b22dfafeb8a9c2ee6daf773d1542f6585bb5294c8c721299deefc75",
					"dweb:/ipfs/QmPv3Qy63x6ouVvtkzKnWs3t3au8BC9Pjqi8B9WDgRbqVp"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SupplySchedule.sol": "SupplySchedule"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SupplySchedule.sol": {
						"keccak256": "0x0ea50bc22e69dd83e4bdcd2d5d9a6c40ddd4335a31f12c705e1b60e583a01f5c",
						"urls": [
							"bzz-raw://9eaaadd52b22dfafeb8a9c2ee6daf773d1542f6585bb5294c8c721299deefc75",
							"dweb:/ipfs/QmPv3Qy63x6ouVvtkzKnWs3t3au8BC9Pjqi8B9WDgRbqVp"
						]
					}
				},
				"version": 1
			}
		},
		"EscrowChecker": {
			"bytecode": "608060405234801561001057600080fd5b506040516103173803806103178339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556102b2806100656000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063449d0eb11461003b5780638c7a47bc1461009a575b600080fd5b6100616004803603602081101561005157600080fd5b50356001600160a01b03166100be565b604051808261020080838360005b8381101561008757818101518382015260200161006f565b5050505090500191505060405180910390f35b6100a2610231565b604080516001600160a01b039092168252519081900360200190f35b6100c6610240565b6100ce610240565b6000805460408051631025b3b560e11b81526001600160a01b0387811660048301529151919092169163204b676a916024808301926020929190829003018186803b15801561011c57600080fd5b505afa158015610130573d6000803e3d6000fd5b505050506040513d602081101561014657600080fd5b5051905060005b818110156102285761015d61025f565b6000546040805163da7bd3e960e01b81526001600160a01b03898116600483015260248201869052825193169263da7bd3e992604480840193919291829003018186803b1580156101ad57600080fd5b505afa1580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156101e657600080fd5b5080519091508460028402601081106101fb57fe5b6020020152806001602002015184836002026001016010811061021a57fe5b60200201525060010161014d565b50909392505050565b6000546001600160a01b031681565b6040518061020001604052806010906020820280388339509192915050565b6040518060400160405280600290602082028038833950919291505056fea265627a7a723158203e5c68210748366df489b2c71b15851b37c59890bb8383d94f94b72af37b732764736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract IOikosEscrow",
							"name": "_esc",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAccountSchedule",
					"outputs": [
						{
							"internalType": "uint256[16]",
							"name": "",
							"type": "uint256[16]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oikos_escrow",
					"outputs": [
						{
							"internalType": "contract IOikosEscrow",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc2d86fa916999d3ce904577b416f0062e862452d94fe6555ac8ff39bc8e53ca5",
				"urls": [
					"bzz-raw://ba1bb87efa775f2a0964470c02b76a9ed535b225733da11fb4ae42aaac1beb89",
					"dweb:/ipfs/QmV9fHeEp4Pm2rfU1Kv9Lse5d33ApMXsviwXEYipVU8Ewy"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EscrowChecker.sol": "EscrowChecker"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EscrowChecker.sol": {
						"keccak256": "0xc2d86fa916999d3ce904577b416f0062e862452d94fe6555ac8ff39bc8e53ca5",
						"urls": [
							"bzz-raw://ba1bb87efa775f2a0964470c02b76a9ed535b225733da11fb4ae42aaac1beb89",
							"dweb:/ipfs/QmV9fHeEp4Pm2rfU1Kv9Lse5d33ApMXsviwXEYipVU8Ewy"
						]
					}
				},
				"version": 1
			}
		},
		"OikosBridgeToBase": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162001e0d38038062001e0d83398101604081905262000034916200010d565b81818080836001600160a01b0381166200006b5760405162461bcd60e51b81526004016200006290620001c9565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b8918490620001a3565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550506004805460ff191660011790555062000224915050565b805162000107816200020a565b92915050565b600080604083850312156200012157600080fd5b60006200012f8585620000fa565b92505060206200014285828601620000fa565b9150509250929050565b6200015781620001f6565b82525050565b6200015781620001e4565b600062000177601983620001db565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001b382856200014c565b620001c260208301846200015d565b9392505050565b60208082528101620001078162000168565b90815260200190565b60006001600160a01b03821662000107565b6000620001078260006200010782620001e4565b6200021581620001e4565b81146200022157600080fd5b50565b611bd980620002346000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806353a47bb7116100a2578063899ffef411610071578063899ffef4146101ce5780638d6e9a5b146101e35780638da5cb5b146101f6578063a616cdfb146101fe578063f97824fe146102115761010b565b806353a47bb7146101a1578063698a26b2146101b657806374185360146101be57806379ba5097146101c65761010b565b806325aae563116100de57806325aae5631461016b5780632af64bd31461017e5780632e1a7d4d146101865780633872dda3146101995761010b565b806304f3bcec14610110578063100be6d41461012e5780631627540c14610143578063205c287814610158575b600080fd5b610118610224565b60405161012591906119e2565b60405180910390f35b610136610233565b604051610125919061198a565b610156610151366004611324565b61023c565b005b610156610166366004611368565b61029a565b610156610179366004611446565b6102b0565b61013661035c565b61015661019436600461140a565b610474565b610156610489565b6101a96104f1565b60405161012591906118ab565b610156610500565b610156610563565b6101566106b5565b6101d6610751565b6040516101259190611979565b6101566101f1366004611368565b6107cd565b6101a9610881565b61015661020c366004611368565b610890565b61015661021f3660046113a2565b61092e565b6002546001600160a01b031681565b60045460ff1681565b610244610a59565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061028f9083906118ab565b60405180910390a150565b6102a2610a85565b6102ac8282610aa7565b5050565b6102b8610cc8565b6102c0610da4565b6001600160a01b03166373941b9683836040518363ffffffff1660e01b81526004016102ed9291906119b4565b600060405180830381600087803b15801561030757600080fd5b505af115801561031b573d6000803e3d6000fd5b505050507f64691ff866d6248d6d89e8c1b6c92df685ddf8224377dc6f1e928ef732e55ace82826040516103509291906119b4565b60405180910390a15050565b60006060610368610751565b905060005b815181101561046a57600082828151811061038457fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906103d5908590600401611998565b60206040518083038186803b1580156103ed57600080fd5b505afa158015610401573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610425919081019061134a565b6001600160a01b031614158061045057506000818152600360205260409020546001600160a01b0316155b156104615760009350505050610471565b5060010161036d565b5060019150505b90565b61047c610a85565b6104863382610aa7565b50565b610491610a59565b60045460ff166104bc5760405162461bcd60e51b81526004016104b390611a21565b60405180910390fd5b6004805460ff191690556040517f43e00f2c8f8651a29db34d34fb689573423f8aaae8f9d32e3e871b4c35c6254690600090a1565b6001546001600160a01b031681565b610508610a59565b60045460ff161561052b5760405162461bcd60e51b81526004016104b390611a01565b6004805460ff191660011790556040517f7c88488c18e2ff121a34a4a2a44990557a5b76ab1ceb6bd95ebe7d419c7575f490600090a1565b606061056d610751565b905060005b81518110156102ac57600082828151811061058957fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016105cb91906118a0565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016105f79291906119c2565b60206040518083038186803b15801561060f57600080fd5b505afa158015610623573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610647919081019061134a565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906106a390849084906119a6565b60405180910390a15050600101610572565b6001546001600160a01b031633146106df5760405162461bcd60e51b81526004016104b390611a11565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610722926001600160a01b03918216929116906118e9565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60608061075c610dbe565b60408051600180825281830190925291925060609190602080830190803883390190505090507f626173653a4f696b6f73427269646765546f4f7074696d69736d000000000000816000815181106107b057fe5b6020026020010181815250506107c68282610e7f565b9250505090565b6107d5610cc8565b6107dd610f3b565b6001600160a01b031663666ed4f183836040518363ffffffff1660e01b815260040161080a929190611933565b600060405180830381600087803b15801561082457600080fd5b505af1158015610838573d6000803e3d6000fd5b50505050816001600160a01b03167f162eb12ad2bd8b6ca7960f162208414ab3bc2da9f37953788ffd8cf850c3492b826040516108759190611998565b60405180910390a25050565b6000546001600160a01b031681565b610898610cc8565b6108a0610f3b565b6001600160a01b031663d8a1f76f826040518263ffffffff1660e01b81526004016108cb9190611998565b600060405180830381600087803b1580156108e557600080fd5b505af11580156108f9573d6000803e3d6000fd5b505050507f3b30e867826d81d6591924b1675cfdcac994f0199eed66250d8c834b3b0ed2168282604051610350929190611933565b610936610cc8565b6000610940610f4e565b905061094a610f3b565b6001600160a01b031663666ed4f182866040518363ffffffff1660e01b8152600401610977929190611933565b600060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b505060405163cd7b43dd60e01b81526001600160a01b038416925063cd7b43dd91506109db908890889088908890600401611941565b600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b50505050846001600160a01b03167f7538b9bce825b4555048bb2f80c04ee79b5ffc422f39b959994a27c21c32c8d1858585604051610a4a93929190611a91565b60405180910390a25050505050565b6000546001600160a01b03163314610a835760405162461bcd60e51b81526004016104b390611a51565b565b60045460ff16610a835760405162461bcd60e51b81526004016104b390611a31565b80610ab0610f3b565b6001600160a01b031663b4fb3a81336040518263ffffffff1660e01b8152600401610adb91906118b9565b60206040518083038186803b158015610af357600080fd5b505afa158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b2b9190810190611428565b1015610b495760405162461bcd60e51b81526004016104b390611a41565b610b51610f3b565b6001600160a01b031663edef719a33836040518363ffffffff1660e01b8152600401610b7e9291906118c7565b600060405180830381600087803b158015610b9857600080fd5b505af1158015610bac573d6000803e3d6000fd5b50506040516000925060609150637a7bda0d60e11b90610bd29086908690602401611933565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610c0e610f6a565b6001600160a01b0316633dbb202b610c24610f85565b83610c2f6003610fb0565b6040518463ffffffff1660e01b8152600401610c4d93929190611904565b600060405180830381600087803b158015610c6757600080fd5b505af1158015610c7b573d6000803e3d6000fd5b50505050336001600160a01b03167fbb2689ff876f7ef453cf8865dde5ab10349d222e2e1383c5152fbdb083f02da28585604051610cba929190611933565b60405180910390a250505050565b6000610cd2610f6a565b9050336001600160a01b03821614610cfc5760405162461bcd60e51b81526004016104b390611a61565b610d04610f85565b6001600160a01b0316816001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4657600080fd5b505afa158015610d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d7e919081019061134a565b6001600160a01b0316146104865760405162461bcd60e51b81526004016104b390611a71565b6000610db966119959541bdbdb60ca1b611058565b905090565b606080610dc96110b5565b60408051600480825260a0820190925291925060609190602082016080803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b81600081518110610e0e57fe5b602002602001018181525050644f696b6f7360d81b81600181518110610e3057fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600281518110610e5b57fe5b60200260200101818152505066119959541bdbdb60ca1b816003815181106107b057fe5b60608151835101604051908082528060200260200182016040528015610eaf578160200160208202803883390190505b50905060005b8351811015610ef157838181518110610eca57fe5b6020026020010151828281518110610ede57fe5b6020908102919091010152600101610eb5565b5060005b8251811015610f3457828181518110610f0a57fe5b6020026020010151828286510181518110610f2157fe5b6020908102919091010152600101610ef5565b5092915050565b6000610db9644f696b6f7360d81b611058565b6000610db96d2932bbb0b93222b9b1b937bbab1960911b611058565b6000610db96c32bc3a1d26b2b9b9b2b733b2b960991b611058565b6000610db97f626173653a4f696b6f73427269646765546f4f7074696d69736d000000000000611058565b6000610fba611106565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b610fe385611123565b6040518363ffffffff1660e01b81526004016110009291906119b4565b60206040518083038186803b15801561101857600080fd5b505afa15801561102c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110509190810190611428565b90505b919050565b60008181526003602090815260408083205490516001600160a01b03909116918215159161108891869101611880565b60405160208183030381529060405290610f345760405162461bcd60e51b81526004016104b391906119f0565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106110f757fe5b60200260200101818152505090565b6000610db96e466c657869626c6553746f7261676560881b611058565b60008082600581111561113257fe5b141561115f57507f63726f7373446f6d61696e4465706f7369744761734c696d6974000000000000611053565b600182600581111561116d57fe5b141561119a57507f63726f7373446f6d61696e457363726f774761734c696d697400000000000000611053565b60028260058111156111a857fe5b14156111d557507f63726f7373446f6d61696e5265776172644761734c696d697400000000000000611053565b60038260058111156111e357fe5b141561121057507f63726f7373446f6d61696e5769746864726177616c4761734c696d6974000000611053565b600582600581111561121e57fe5b141561124b57507f63726f7373446f6d61696e52656c61794761734c696d69740000000000000000611053565b600482600581111561125957fe5b141561128657507f63726f7373446f6d61696e436c6f73654761734c696d69740000000000000000611053565b60405162461bcd60e51b81526004016104b390611a81565b80356112a981611b70565b92915050565b80516112a981611b70565b60008083601f8401126112cc57600080fd5b50813567ffffffffffffffff8111156112e457600080fd5b6020830191508360408202830111156112fc57600080fd5b9250929050565b80356112a981611b84565b80516112a981611b84565b80356112a981611b8d565b60006020828403121561133657600080fd5b6000611342848461129e565b949350505050565b60006020828403121561135c57600080fd5b600061134284846112af565b6000806040838503121561137b57600080fd5b6000611387858561129e565b925050602061139885828601611303565b9150509250929050565b600080600080606085870312156113b857600080fd5b60006113c4878761129e565b94505060206113d587828801611303565b935050604085013567ffffffffffffffff8111156113f257600080fd5b6113fe878288016112ba565b95989497509550505050565b60006020828403121561141c57600080fd5b60006113428484611303565b60006020828403121561143a57600080fd5b6000611342848461130e565b6000806040838503121561145957600080fd5b60006113878585611303565b60006114718383611554565b505060200190565b60006114858383611835565b505060400190565b61149681611b28565b82525050565b61149681611af6565b60006114b082611ac1565b6114ba8185611acb565b93506114c583611abb565b8060005b838110156114f35781516114dd8882611465565b97506114e883611abb565b9250506001016114c9565b509495945050505050565b600061150a8385611acb565b935061151582610471565b8060005b858110156114f35761152b8284611ad4565b6115358882611479565b975061154083611ac5565b925050600101611519565b61149681611b01565b61149681610471565b61149661156982610471565b610471565b600061157982611ac1565b6115838185611acb565b9350611593818560208601611b3a565b61159c81611b66565b9093019392505050565b61149681611b2f565b60006115bc601883611acb565b7f496e6974696174696f6e206e6f742073757370656e6465640000000000000000815260200192915050565b60006115f5603583611acb565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061164c601483611acb565b73125b9a5d1a585d1a5bdb881cdd5cdc195b99195960621b815260200192915050565b600061167c601183611053565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006116a9601683611acb565b75125b9a5d1a585d1a5bdb8819195858dd1a5d985d195960521b815260200192915050565b60006116db601b83611acb565b7f4e6f7420656e6f756768207472616e7366657261626c65204f4b530000000000815260200192915050565b6000611714602f83611acb565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000611765601e83611acb565b7f4f6e6c79207468652072656c617965722063616e2063616c6c20746869730000815260200192915050565b600061179e601d83611acb565b7f4f6e6c7920746865204c31206272696467652063616e20696e766f6b65000000815260200192915050565b60006117d7601983611053565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000611810601683611acb565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b604082016118438280611ae7565b61184d8482611877565b5061185b6020830183611ad8565b6118686020850182611554565b50505050565b61149681611b12565b61149681611b1b565b600061188b8261166f565b9150611897828461155d565b50602001919050565b600061188b826117ca565b602081016112a9828461149c565b602081016112a9828461148d565b604081016118d5828561148d565b6118e26020830184611554565b9392505050565b604081016118f7828561149c565b6118e2602083018461149c565b60608101611912828661149c565b8181036020830152611924818561156e565b9050611342604083018461186e565b604081016118d5828561149c565b6060810161194f828761149c565b61195c6020830186611554565b818103604083015261196f8184866114fe565b9695505050505050565b602080825281016118e281846114a5565b602081016112a9828461154b565b602081016112a98284611554565b604081016118f78285611554565b604081016118d58285611554565b604081016119d08285611554565b8181036020830152611342818461156e565b602081016112a982846115a6565b602080825281016118e2818461156e565b60208082528101611050816115af565b60208082528101611050816115e8565b602080825281016110508161163f565b602080825281016110508161169c565b60208082528101611050816116ce565b6020808252810161105081611707565b6020808252810161105081611758565b6020808252810161105081611791565b6020808252810161105081611803565b60408101611a9f8286611554565b8181036020830152611ab28184866114fe565b95945050505050565b60200190565b5190565b60400190565b90815260200190565b5090565b60006118e26020840184611303565b60006118e26020840184611319565b600061105082611b06565b151590565b6001600160a01b031690565b63ffffffff1690565b67ffffffffffffffff1690565b6000611050825b600061105082611af6565b60005b83811015611b55578181015183820152602001611b3d565b838111156118685750506000910152565b601f01601f191690565b611b7981611af6565b811461048657600080fd5b611b7981610471565b611b7981611b1b56fea365627a7a723158201be5c5c5856dfe18bdd29973d03c5f8041b0b84b85f3fb063d937379fbaaa9526c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "_to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "DepositFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "oksBackedAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalDebtShares",
							"type": "uint256"
						}
					],
					"name": "FeePeriodCloseFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAmount",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"indexed": false,
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"name": "ImportedVestingEntries",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "InitiationResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "InitiationSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardDepositFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "_from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "_to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "WithdrawalInitiated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "finalizeDeposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "escrowedAmount",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"name": "finalizeEscrowMigration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "oksBackedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalDebtShares",
							"type": "uint256"
						}
					],
					"name": "finalizeFeePeriodClose",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "finalizeRewardDeposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "initiationActive",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeInitiation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "suspendInitiation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdrawTo",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x451cfe9ad9378f6776ffc9dfe3fbed27e919fe92cdabdee4b6f1715f31ca9bc8",
				"urls": [
					"bzz-raw://86e51601ccc7ed907622498eb25740baee8ca8bd82273ede0127632a0ef3c62d",
					"dweb:/ipfs/QmNj3ev4fsJyTQtSewNnT5E5fbDp3nBNTF8DP7P1i6zkSc"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OikosBridgeToBase.sol": "OikosBridgeToBase"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OikosBridgeToBase.sol": {
						"keccak256": "0x451cfe9ad9378f6776ffc9dfe3fbed27e919fe92cdabdee4b6f1715f31ca9bc8",
						"urls": [
							"bzz-raw://86e51601ccc7ed907622498eb25740baee8ca8bd82273ede0127632a0ef3c62d",
							"dweb:/ipfs/QmNj3ev4fsJyTQtSewNnT5E5fbDp3nBNTF8DP7P1i6zkSc"
						]
					}
				},
				"version": 1
			}
		},
		"OikosBridgeToOptimism": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162002a1838038062002a1883398101604081905262000034916200010d565b81818080836001600160a01b0381166200006b5760405162461bcd60e51b81526004016200006290620001c9565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b8918490620001a3565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550506004805460ff191660011790555062000224915050565b805162000107816200020a565b92915050565b600080604083850312156200012157600080fd5b60006200012f8585620000fa565b92505060206200014285828601620000fa565b9150509250929050565b6200015781620001f6565b82525050565b6200015781620001e4565b600062000177601983620001db565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001b382856200014c565b620001c260208301846200015d565b9392505050565b60208082528101620001078162000168565b90815260200190565b60006001600160a01b03821662000107565b6000620001078260006200010782620001e4565b6200021581620001e4565b81146200022157600080fd5b50565b6127e480620002346000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806374185360116100ad578063a18e230711610071578063a18e23071461021f578063b6b55f2514610232578063b9958ab814610245578063f4f7b41a14610258578063ffaad6a51461026b5761012c565b806374185360146101df57806379ba5097146101e7578063899ffef4146101ef5780638da5cb5b146102045780639a9e7f961461020c5761012c565b80633872dda3116100f45780633872dda3146101945780633c6b16ab1461019c578063462286d5146101af57806353a47bb7146101c2578063698a26b2146101d75761012c565b806304f3bcec14610131578063100be6d41461014f5780631627540c146101645780631e2720ff146101795780632af64bd31461018c575b600080fd5b61013961027e565b604051610146919061256e565b60405180910390f35b61015761028d565b6040516101469190612516565b610177610172366004611bd0565b610296565b005b610177610187366004611ca1565b6102f4565b61015761039a565b6101776104b2565b6101776101aa366004611ca1565b61051a565b6101776101bd366004611bd0565b61058e565b6101ca610631565b60405161014691906123ec565b610177610640565b6101776106a3565b6101776107f5565b6101f7610891565b6040516101469190612505565b6101ca610987565b61017761021a366004611c4e565b610996565b61017761022d366004611cdd565b6109af565b610177610240366004611ca1565b6109df565b610177610253366004611d6d565b6109f9565b610177610266366004611c14565b610b47565b610177610279366004611c14565b610d04565b6002546001600160a01b031681565b60045460ff1681565b61029e610d1e565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906102e99083906123ec565b60405180910390a150565b6102fc610d4a565b610304610d6c565b6001600160a01b03166323b872dd3361031b610d84565b846040518463ffffffff1660e01b815260040161033a939291906123fa565b602060405180830381600087803b15801561035457600080fd5b505af1158015610368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061038c9190810190611c83565b506103973382610da3565b50565b600060606103a6610891565b905060005b81518110156104a85760008282815181106103c257fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610413908590600401612524565b60206040518083038186803b15801561042b57600080fd5b505afa15801561043f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104639190810190611bf6565b6001600160a01b031614158061048e57506000818152600360205260409020546001600160a01b0316155b1561049f57600093505050506104af565b506001016103ab565b5060019150505b90565b6104ba610d1e565b60045460ff166104e55760405162461bcd60e51b81526004016104dc906125bd565b60405180910390fd5b6004805460ff191690556040517f43e00f2c8f8651a29db34d34fb689573423f8aaae8f9d32e3e871b4c35c6254690600090a1565b610522610eb9565b6001600160a01b0316336001600160a01b0316146105525760405162461bcd60e51b81526004016104dc9061263d565b61055a610d6c565b6001600160a01b031663a9059cbb610570610d84565b836040518363ffffffff1660e01b815260040161033a9291906124ea565b8061062d61059a610d84565b6040516370a0823160e01b81526001600160a01b038416906370a08231906105c69030906004016123ec565b60206040518083038186803b1580156105de57600080fd5b505afa1580156105f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106169190810190611cbf565b6001600160a01b038416919063ffffffff610eda16565b5050565b6001546001600160a01b031681565b610648610d1e565b60045460ff161561066b5760405162461bcd60e51b81526004016104dc9061258d565b6004805460ff191660011790556040517f7c88488c18e2ff121a34a4a2a44990557a5b76ab1ceb6bd95ebe7d419c7575f490600090a1565b60606106ad610891565b905060005b815181101561062d5760008282815181106106c957fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161070b91906123e1565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161073792919061254e565b60206040518083038186803b15801561074f57600080fd5b505afa158015610763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107879190810190611bf6565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906107e39084908490612532565b60405180910390a150506001016106b2565b6001546001600160a01b0316331461081f5760405162461bcd60e51b81526004016104dc9061259d565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610862926001600160a01b0391821692911690612492565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60608061089c610f38565b60408051600480825260a0820190925291925060609190602082016080803883390190505090506524b9b9bab2b960d11b816000815181106108da57fe5b602002602001018181525050722932bbb0b93239a234b9ba3934b13aba34b7b760691b8160018151811061090a57fe5b602002602001018181525050746f766d3a4f696b6f73427269646765546f4261736560581b8160028151811061093c57fe5b602002602001018181525050704f696b6f73427269646765457363726f7760781b8160038151811061096a57fe5b6020026020010181815250506109808282610ff9565b9250505090565b6000546001600160a01b031681565b61099e610d4a565b6109a66110b5565b61039781611155565b6109b7610d4a565b6109bf6110b5565b8051156109cf576109cf81611155565b811561062d5761062d33836113f6565b6109e7610d4a565b6109ef6110b5565b61039733826113f6565b610a01610d4a565b610a09611591565b6001600160a01b0316336001600160a01b031614610a395760405162461bcd60e51b81526004016104dc9061261d565b6040516000906060906325aae56360e01b90610a5b9086908690602401612540565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610a976115a6565b6001600160a01b0316633dbb202b610aad6115c1565b83610ab860046115e4565b6040518463ffffffff1660e01b8152600401610ad6939291906124bb565b600060405180830381600087803b158015610af057600080fd5b505af1158015610b04573d6000803e3d6000fd5b505050507fcca0df3f2f18cd65d14c04abffc77c2d00aaca7ad00b0d2eb074adeea3fb54f48484604051610b39929190612540565b60405180910390a150505050565b610b4f6115a6565b6001600160a01b0316336001600160a01b031614610b7f5760405162461bcd60e51b81526004016104dc9061262d565b610b876115c1565b6001600160a01b0316610b986115a6565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd057600080fd5b505afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c089190810190611bf6565b6001600160a01b031614610c2e5760405162461bcd60e51b81526004016104dc906125ad565b610c36610d6c565b6001600160a01b03166323b872dd610c4c610d84565b84846040518463ffffffff1660e01b8152600401610c6c939291906124ad565b602060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cbe9190810190611c83565b50816001600160a01b03167f9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda882604051610cf89190612524565b60405180910390a25050565b610d0c610d4a565b610d146110b5565b61062d82826113f6565b6000546001600160a01b03163314610d485760405162461bcd60e51b81526004016104dc9061260d565b565b60045460ff16610d485760405162461bcd60e51b81526004016104dc906125ed565b6000610d7f644f696b6f7360d81b61168c565b905090565b6000610d7f704f696b6f73427269646765457363726f7760781b61168c565b60405160009060609063a616cdfb60e01b90610dc590869086906024016124ea565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610e016115a6565b6001600160a01b0316633dbb202b610e176115c1565b83610e2260026115e4565b6040518463ffffffff1660e01b8152600401610e40939291906124bb565b600060405180830381600087803b158015610e5a57600080fd5b505af1158015610e6e573d6000803e3d6000fd5b50505050836001600160a01b03167f0ac6af0c6fd21e58850b0385f451cdcc08071424f47fd04652be4e51069f43cc84604051610eab9190612524565b60405180910390a250505050565b6000610d7f722932bbb0b93239a234b9ba3934b13aba34b7b760691b61168c565b604051610f3390849063a9059cbb60e01b90610efc90869086906024016124ea565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526116e9565b505050565b606080610f436117d4565b60408051600480825260a0820190925291925060609190602082016080803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b81600081518110610f8857fe5b602002602001018181525050644f696b6f7360d81b81600181518110610faa57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600281518110610fd557fe5b60200260200101818152505066119959541bdbdb60ca1b8160038151811061096a57fe5b60608151835101604051908082528060200260200182016040528015611029578160200160208202803883390190505b50905060005b835181101561106b5783818151811061104457fe5b602002602001015182828151811061105857fe5b602090810291909101015260010161102f565b5060005b82518110156110ae5782818151811061108457fe5b602002602001015182828651018151811061109b57fe5b602090810291909101015260010161106f565b5092915050565b6110bd611825565b6001600160a01b031663d37c4d8b336040518263ffffffff1660e01b81526004016110e89190612442565b60206040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111389190810190611cbf565b15610d485760405162461bcd60e51b81526004016104dc906125fd565b60005b815181101561062d57601a60ff1682828151811061117257fe5b60200260200101515111156111995760405162461bcd60e51b81526004016104dc906125dd565b600060606111a5611839565b6001600160a01b03166380d46f58338686815181106111c057fe5b60200260200101516040518363ffffffff1660e01b81526004016111e5929190612422565b600060405180830381600087803b1580156111ff57600080fd5b505af1158015611213573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261123b9190810190611d25565b909250905081156113ec5761124e610d6c565b6001600160a01b031663a9059cbb611264610d84565b846040518363ffffffff1660e01b81526004016112829291906124ea565b602060405180830381600087803b15801561129c57600080fd5b505af11580156112b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112d49190810190611c83565b50604051600090606090637cbc127f60e11b906112f99033908790879060240161245c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290506113356115a6565b6001600160a01b0316633dbb202b61134b6115c1565b8361135660016115e4565b6040518463ffffffff1660e01b8152600401611374939291906124bb565b600060405180830381600087803b15801561138e57600080fd5b505af11580156113a2573d6000803e3d6000fd5b50505050336001600160a01b03167f4dc5956ab6218a4dfa2cc5e5c50d98d039dde03aabfc504c54b601b6f562269685856040516113e192919061267d565b60405180910390a250505b5050600101611158565b6113fe610d6c565b6001600160a01b03166323b872dd33611415610d84565b846040518463ffffffff1660e01b8152600401611434939291906123fa565b602060405180830381600087803b15801561144e57600080fd5b505af1158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114869190810190611c83565b50604051600090606090638d6e9a5b60e01b906114a990869086906024016124ea565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290506114e56115a6565b6001600160a01b0316633dbb202b6114fb6115c1565b8361150660006115e4565b6040518463ffffffff1660e01b8152600401611524939291906124bb565b600060405180830381600087803b15801561153e57600080fd5b505af1158015611552573d6000803e3d6000fd5b50505050336001600160a01b03167ff531653a5819e21265de50358610d55dbe6594c61605b209dfa4280d277938c18585604051610eab9291906124ea565b6000610d7f66119959541bdbdb60ca1b61168c565b6000610d7f6c32bc3a1d26b2b9b9b2b733b2b960991b61168c565b6000610d7f746f766d3a4f696b6f73427269646765546f4261736560581b61168c565b60006115ee611855565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b61161785611872565b6040518363ffffffff1660e01b8152600401611634929190612540565b60206040518083038186803b15801561164c57600080fd5b505afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116849190810190611cbf565b90505b919050565b60008181526003602090815260408083205490516001600160a01b0390911691821515916116bc918691016123c1565b604051602081830303815290604052906110ae5760405162461bcd60e51b81526004016104dc919061257c565b6116fb826001600160a01b03166119ed565b6117175760405162461bcd60e51b81526004016104dc9061266d565b60006060836001600160a01b03168360405161173391906123ae565b6000604051808303816000865af19150503d8060008114611770576040519150601f19603f3d011682016040523d82523d6000602084013e611775565b606091505b5091509150816117975760405162461bcd60e51b81526004016104dc906125cd565b8051156117ce57808060200190516117b29190810190611c83565b6117ce5760405162461bcd60e51b81526004016104dc9061264d565b50505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061181657fe5b60200260200101818152505090565b6000610d7f6524b9b9bab2b960d11b61168c565b6000610d7f6d2932bbb0b93222b9b1b937bbab1960911b61168c565b6000610d7f6e466c657869626c6553746f7261676560881b61168c565b60008082600581111561188157fe5b14156118ae57507f63726f7373446f6d61696e4465706f7369744761734c696d6974000000000000611687565b60018260058111156118bc57fe5b14156118e957507f63726f7373446f6d61696e457363726f774761734c696d697400000000000000611687565b60028260058111156118f757fe5b141561192457507f63726f7373446f6d61696e5265776172644761734c696d697400000000000000611687565b600382600581111561193257fe5b141561195f57507f63726f7373446f6d61696e5769746864726177616c4761734c696d6974000000611687565b600582600581111561196d57fe5b141561199a57507f63726f7373446f6d61696e52656c61794761734c696d69740000000000000000611687565b60048260058111156119a857fe5b14156119d557507f63726f7373446f6d61696e436c6f73654761734c696d69740000000000000000611687565b60405162461bcd60e51b81526004016104dc9061265d565b3b151590565b80356119fe81612772565b92915050565b80516119fe81612772565b600082601f830112611a2057600080fd5b8135611a33611a2e826126c4565b61269d565b81815260209384019390925082018360005b83811015611a715781358601611a5b8882611aed565b8452506020928301929190910190600101611a45565b5050505092915050565b600082601f830112611a8c57600080fd5b8151611a9a611a2e826126c4565b91508181835260208401935060208101905083856040840282011115611abf57600080fd5b60005b83811015611a715781611ad58882611b68565b84525060209092019160409190910190600101611ac2565b600082601f830112611afe57600080fd5b8135611b0c611a2e826126c4565b91508181835260208401935060208101905083856020840282011115611b3157600080fd5b60005b83811015611a715781611b478882611baf565b8452506020928301929190910190600101611b34565b80516119fe81612786565b600060408284031215611b7a57600080fd5b611b84604061269d565b90506000611b928484611bc5565b8252506020611ba384848301611bba565b60208301525092915050565b80356119fe8161278f565b80516119fe8161278f565b80516119fe81612798565b600060208284031215611be257600080fd5b6000611bee84846119f3565b949350505050565b600060208284031215611c0857600080fd5b6000611bee8484611a04565b60008060408385031215611c2757600080fd5b6000611c3385856119f3565b9250506020611c4485828601611baf565b9150509250929050565b600060208284031215611c6057600080fd5b813567ffffffffffffffff811115611c7757600080fd5b611bee84828501611a0f565b600060208284031215611c9557600080fd5b6000611bee8484611b5d565b600060208284031215611cb357600080fd5b6000611bee8484611baf565b600060208284031215611cd157600080fd5b6000611bee8484611bba565b60008060408385031215611cf057600080fd5b6000611cfc8585611baf565b925050602083013567ffffffffffffffff811115611d1957600080fd5b611c4485828601611a0f565b60008060408385031215611d3857600080fd5b6000611d448585611bba565b925050602083015167ffffffffffffffff811115611d6157600080fd5b611c4485828601611a7b565b60008060408385031215611d8057600080fd5b6000611c338585611baf565b6000611d988383611eca565b505060200190565b6000611dac8383612378565b505060400190565b611dbd8161272a565b82525050565b611dbd816126f8565b6000611dd7826126eb565b611de181856126ef565b9350611dec836126e5565b8060005b83811015611e1a578151611e048882611d8c565b9750611e0f836126e5565b925050600101611df0565b509495945050505050565b6000611e30826126eb565b611e3a81856126ef565b9350611e45836126e5565b8060005b83811015611e1a578151611e5d8882611da0565b9750611e68836126e5565b925050600101611e49565b6000611e7e826126eb565b611e8881856126ef565b9350611e93836126e5565b8060005b83811015611e1a578151611eab8882611d8c565b9750611eb6836126e5565b925050600101611e97565b611dbd81612703565b611dbd816104af565b611dbd611edf826104af565b6104af565b6000611eef826126eb565b611ef981856126ef565b9350611f0981856020860161273c565b611f1281612768565b9093019392505050565b6000611f27826126eb565b611f318185611687565b9350611f4181856020860161273c565b9290920192915050565b611dbd81612731565b6000611f616018836126ef565b7f496e6974696174696f6e206e6f742073757370656e6465640000000000000000815260200192915050565b6000611f9a6035836126ef565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000611ff1601d836126ef565b7f4f6e6c7920746865204c32206272696467652063616e20696e766f6b65000000815260200192915050565b600061202a6014836126ef565b73125b9a5d1a585d1a5bdb881cdd5cdc195b99195960621b815260200192915050565b600061205a6020836126ef565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b60006120936021836126ef565b7f45786365656473206d617820656e747269657320706572206d6967726174696f8152603760f91b602082015260400192915050565b60006120d6601183611687565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006121036016836126ef565b75125b9a5d1a585d1a5bdb8819195858dd1a5d985d195960521b815260200192915050565b60006121356023836126ef565b7f43616e6e6f74206465706f736974206f72206d6967726174652077697468206481526219589d60ea1b602082015260400192915050565b600061217a602f836126ef565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006121cb601f836126ef565b7f4f6e6c79207468652066656520706f6f6c2063616e2063616c6c207468697300815260200192915050565b6000612204601e836126ef565b7f4f6e6c79207468652072656c617965722063616e2063616c6c20746869730000815260200192915050565b600061223d601983611687565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000612276602a836126ef565b7f43616c6c6572206973206e6f742052657761726473446973747269627574696f8152691b8818dbdb9d1c9858dd60b21b602082015260400192915050565b60006122c2602a836126ef565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b600061230e6016836126ef565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b6000612340601f836126ef565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b631bd554d160e21b9052565b8051604083019061238984826123a5565b5060208201516117ce6020850182611eca565b611dbd81612714565b611dbd8161271d565b60006123ba8284611f1c565b9392505050565b60006123cc826120c9565b91506123d88284611ed3565b50602001919050565b60006123cc82612230565b602081016119fe8284611dc3565b606081016124088286611db4565b6124156020830185611dc3565b611bee6040830184611eca565b604081016124308285611db4565b8181036020830152611bee8184611e73565b604081016124508284611db4565b6119fe6020830161236c565b6060810161246a8286611dc3565b6124776020830185611eca565b81810360408301526124898184611e25565b95945050505050565b604081016124a08285611dc3565b6123ba6020830184611dc3565b606081016124088286611dc3565b606081016124c98286611dc3565b81810360208301526124db8185611ee4565b9050611bee604083018461239c565b604081016124f88285611dc3565b6123ba6020830184611eca565b602080825281016123ba8184611dcc565b602081016119fe8284611ec1565b602081016119fe8284611eca565b604081016124a08285611eca565b604081016124f88285611eca565b6040810161255c8285611eca565b8181036020830152611bee8184611ee4565b602081016119fe8284611f4b565b602080825281016123ba8184611ee4565b6020808252810161168481611f54565b6020808252810161168481611f8d565b6020808252810161168481611fe4565b602080825281016116848161201d565b602080825281016116848161204d565b6020808252810161168481612086565b60208082528101611684816120f6565b6020808252810161168481612128565b602080825281016116848161216d565b60208082528101611684816121be565b60208082528101611684816121f7565b6020808252810161168481612269565b60208082528101611684816122b5565b6020808252810161168481612301565b6020808252810161168481612333565b6040810161268b8285611eca565b8181036020830152611bee8184611e25565b60405181810167ffffffffffffffff811182821017156126bc57600080fd5b604052919050565b600067ffffffffffffffff8211156126db57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b600061168482612708565b151590565b6001600160a01b031690565b63ffffffff1690565b67ffffffffffffffff1690565b6000611684825b6000611684826126f8565b60005b8381101561275757818101518382015260200161273f565b838111156117ce5750506000910152565b601f01601f191690565b61277b816126f8565b811461039757600080fd5b61277b81612703565b61277b816104af565b61277b8161271d56fea365627a7a7231582052345dea1dad0bf26e503424146de96c4c4fbcfa3cdf6e5f4eaa8839bd69c1696c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "_from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "_to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "DepositInitiated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAccountBalance",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"indexed": false,
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"name": "ExportedVestingEntries",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "oksBackedDebt",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalDebtShares",
							"type": "uint256"
						}
					],
					"name": "FeePeriodClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "InitiationResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "InitiationSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardDepositInitiated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "_to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "WithdrawalFinalized",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "oksBackedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalDebtShares",
							"type": "uint256"
						}
					],
					"name": "closeFeePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "depositAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256[][]",
							"name": "entryIDs",
							"type": "uint256[][]"
						}
					],
					"name": "depositAndMigrateEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "depositReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "depositTo",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "finalizeWithdrawal",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						}
					],
					"name": "forwardTokensToEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "initiationActive",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[][]",
							"name": "entryIDs",
							"type": "uint256[][]"
						}
					],
					"name": "migrateEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "notifyRewardAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeInitiation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "suspendInitiation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x3251ec074cf2b64c089b3f4b3877cc4e1527c0c971af98a4df37c958d336840c",
				"urls": [
					"bzz-raw://24a9b9859dac739315a16bf8fbd3a56a6e80f61edc3a9a3704d21e2eed54dece",
					"dweb:/ipfs/QmYNVRpkwvEe8Su6z6UsjnjFxbEoPcoiErBEMtmdpRLP2e"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OikosBridgeToOptimism.sol": "OikosBridgeToOptimism"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OikosBridgeToOptimism.sol": {
						"keccak256": "0x3251ec074cf2b64c089b3f4b3877cc4e1527c0c971af98a4df37c958d336840c",
						"urls": [
							"bzz-raw://24a9b9859dac739315a16bf8fbd3a56a6e80f61edc3a9a3704d21e2eed54dece",
							"dweb:/ipfs/QmYNVRpkwvEe8Su6z6UsjnjFxbEoPcoiErBEMtmdpRLP2e"
						]
					}
				},
				"version": 1
			}
		},
		"OikosBridgeEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516107ab3803806107ab8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506106b1806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80631627540c1461005c57806338e499cd1461008457806353a47bb7146100ba57806379ba5097146100de5780638da5cb5b146100e6575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100ee565b005b6100826004803603606081101561009a57600080fd5b506001600160a01b0381358116916020810135909116906040013561014a565b6100c26101b7565b604080516001600160a01b039092168252519081900360200190f35b6100826101c6565b6100c2610282565b6100f6610291565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610152610291565b61016c6001600160a01b038416838363ffffffff6102dc16565b604080516001600160a01b038581168252602082018490528251908516927f303c1899feacd9139708637ad42646489d4e1be45f252b25b53561e934d74712928290030190a2505050565b6001546001600160a01b031681565b6001546001600160a01b0316331461020f5760405162461bcd60e51b81526004018080602001828103825260358152602001806105b96035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000546001600160a01b031633146102da5760405162461bcd60e51b815260040180806020018281038252602f8152602001806105ee602f913960400191505060405180910390fd5b565b801580610362575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d602081101561035e57600080fd5b5051155b61039d5760405162461bcd60e51b81526004018080602001828103825260368152602001806106476036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526103ef9084906103f4565b505050565b610406826001600160a01b03166105b2565b610457576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106104955780518252601f199092019160209182019101610476565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146104f7576040519150601f19603f3d011682016040523d82523d6000602084013e6104fc565b606091505b509150915081610553576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156105ac5780806020019051602081101561056f57600080fd5b50516105ac5760405162461bcd60e51b815260040180806020018281038252602a81526020018061061d602a913960400191505060405180910390fd5b50505050565b3b15159056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a72315820fb6395d01f8f59fbbc6f679e0f74a596ef1f265a738f799d8a755db3fb5aafba64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "_token",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "BridgeApproval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_bridge",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "approveBridge",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xfaf442c05e3e032fc3a38ef55f4ce0f4b4a33aaa073e010d6cde355d923ccf7e",
				"urls": [
					"bzz-raw://e6235018b8bb19cdfeb03a1318014b581268a9f6d47e7fda297b496d4f515ac8",
					"dweb:/ipfs/QmYSR91PGRFbxb4GHxtusR3YjizEjkpspiMk8ecfyXK5ty"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OikosBridgeEscrow.sol": "OikosBridgeEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OikosBridgeEscrow.sol": {
						"keccak256": "0xfaf442c05e3e032fc3a38ef55f4ce0f4b4a33aaa073e010d6cde355d923ccf7e",
						"urls": [
							"bzz-raw://e6235018b8bb19cdfeb03a1318014b581268a9f6d47e7fda297b496d4f515ac8",
							"dweb:/ipfs/QmYSR91PGRFbxb4GHxtusR3YjizEjkpspiMk8ecfyXK5ty"
						]
					}
				},
				"version": 1
			}
		},
		"OwnerRelayOnEthereum": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620016b3380380620016b38339810160408190526200003491620000f4565b600080546001600160a01b0319166001600160a01b038381169190911790915582908116620000805760405162461bcd60e51b81526004016200007790620001b0565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383161790556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90620000d09060009084906200018a565b60405180910390a15050506200020b565b8051620000ee81620001f1565b92915050565b600080604083850312156200010857600080fd5b6000620001168585620000e1565b92505060206200012985828601620000e1565b9150509250929050565b6200013e81620001dd565b82525050565b6200013e81620001cb565b60006200015e601983620001c2565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200019a828562000133565b620001a9602083018462000144565b9392505050565b60208082528101620000ee816200014f565b90815260200190565b60006001600160a01b038216620000ee565b6000620000ee826000620000ee82620001cb565b620001fc81620001cb565b81146200020857600080fd5b50565b611498806200021b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80637418536011610066578063741853601461011357806379ba50971461011b578063899ffef4146101235780638da5cb5b14610138578063e210f042146101405761009e565b806304f3bcec146100a35780631627540c146100c15780632af64bd3146100d65780634aeda11f146100eb57806353a47bb7146100fe575b600080fd5b6100ab610153565b6040516100b891906112e4565b60405180910390f35b6100d46100cf366004610cde565b610162565b005b6100de6101c0565b6040516100b8919061127f565b6100d46100f9366004610d8c565b6102d6565b61010661041e565b6040516100b891906111b4565b6100d461042d565b6100d4610582565b61012b61061e565b6040516100b8919061126e565b6101066106bd565b6100d461014e366004610d22565b6106cc565b6000546001600160a01b031681565b61016a6107e7565b600380546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906101b59083906111b4565b60405180910390a150565b600060606101cc61061e565b905060005b81518110156102cc5760008282815181106101e857fe5b60209081029190910181015160008181526001909252604080832054925490516321f8a72160e01b81529193506001600160a01b039283169216906321f8a7219061023790859060040161128d565b60206040518083038186803b15801561024f57600080fd5b505afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102879190810190610d04565b6001600160a01b03161415806102b257506000818152600160205260409020546001600160a01b0316155b156102c357600093505050506102d3565b506001016101d1565b5060019150505b90565b6102de6107e7565b8382146103065760405162461bcd60e51b81526004016102fd90611323565b60405180910390fd5b604051600090606090637a153de960e11b9061032c90899089908990899060240161123d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610368610813565b6001600160a01b0316633dbb202b61037e610833565b8361038887610859565b6040518463ffffffff1660e01b81526004016103a69392919061120e565b600060405180830381600087803b1580156103c057600080fd5b505af11580156103d4573d6000803e3d6000fd5b505050507faa86356fa99dddd7d5773ad300a6f8e0213a5a2f3f5dbdd4b696c6746d78ec048787878760405161040d949392919061123d565b60405180910390a150505050505050565b6003546001600160a01b031681565b606061043761061e565b905060005b815181101561057e57600082828151811061045357fe5b6020026020010151905060008060009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161049491906111a9565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016104c09291906112c4565b60206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105109190810190610d04565b6000838152600160205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061056c908490849061129b565b60405180910390a1505060010161043c565b5050565b6003546001600160a01b031633146105ac5760405162461bcd60e51b81526004016102fd90611303565b6002546003546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926105ef926001600160a01b03918216929116906111c2565b60405180910390a160038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60608061062961087f565b6040805160028082526060808301845293945090916020830190803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b8160008151811061066b57fe5b602002602001018181525050776f766d3a4f776e657252656c61794f6e4f7074696d69736d60401b816001815181106106a057fe5b6020026020010181815250506106b682826108d0565b9250505090565b6002546001600160a01b031681565b6106d46107e7565b60405160009060609063c3c79e5d60e01b906106f8908890889088906024016111e4565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610734610813565b6001600160a01b0316633dbb202b61074a610833565b8361075487610859565b6040518463ffffffff1660e01b81526004016107729392919061120e565b600060405180830381600087803b15801561078c57600080fd5b505af11580156107a0573d6000803e3d6000fd5b505050507f0ad3bed4c45a8b7f0de84c5caaea6851b93c0453c25ad26d37077fcf4feb5c448686866040516107d7939291906111e4565b60405180910390a1505050505050565b6002546001600160a01b031633146108115760405162461bcd60e51b81526004016102fd90611313565b565b600061082e6c32bc3a1d26b2b9b9b2b733b2b960991b61098c565b905090565b600061082e776f766d3a4f776e657252656c61794f6e4f7074696d69736d60401b61098c565b600063ffffffff82166108755761087060056109e9565b610877565b815b90505b919050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106108c157fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610900578160200160208202803883390190505b50905060005b83518110156109425783818151811061091b57fe5b602002602001015182828151811061092f57fe5b6020908102919091010152600101610906565b5060005b82518110156109855782818151811061095b57fe5b602002602001015182828651018151811061097257fe5b6020908102919091010152600101610946565b5092915050565b60008181526001602090815260408083205490516001600160a01b0390911691821515916109bc91869101611189565b604051602081830303815290604052906109855760405162461bcd60e51b81526004016102fd91906112f2565b60006109f3610a89565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b610a1c85610aa6565b6040518363ffffffff1660e01b8152600401610a399291906112a9565b60206040518083038186803b158015610a5157600080fd5b505afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108779190810190610e12565b600061082e6e466c657869626c6553746f7261676560881b61098c565b600080826005811115610ab557fe5b1415610ae257507f63726f7373446f6d61696e4465706f7369744761734c696d697400000000000061087a565b6001826005811115610af057fe5b1415610b1d57507f63726f7373446f6d61696e457363726f774761734c696d69740000000000000061087a565b6002826005811115610b2b57fe5b1415610b5857507f63726f7373446f6d61696e5265776172644761734c696d69740000000000000061087a565b6003826005811115610b6657fe5b1415610b9357507f63726f7373446f6d61696e5769746864726177616c4761734c696d697400000061087a565b6005826005811115610ba157fe5b1415610bce57507f63726f7373446f6d61696e52656c61794761734c696d6974000000000000000061087a565b6004826005811115610bdc57fe5b1415610c0957507f63726f7373446f6d61696e436c6f73654761734c696d6974000000000000000061087a565b60405162461bcd60e51b81526004016102fd90611333565b8035610c2c8161142c565b92915050565b8051610c2c8161142c565b60008083601f840112610c4f57600080fd5b50813567ffffffffffffffff811115610c6757600080fd5b602083019150836020820283011115610c7f57600080fd5b9250929050565b60008083601f840112610c9857600080fd5b50813567ffffffffffffffff811115610cb057600080fd5b602083019150836001820283011115610c7f57600080fd5b8051610c2c81611443565b8035610c2c8161144c565b600060208284031215610cf057600080fd5b6000610cfc8484610c21565b949350505050565b600060208284031215610d1657600080fd5b6000610cfc8484610c32565b60008060008060608587031215610d3857600080fd5b6000610d448787610c21565b945050602085013567ffffffffffffffff811115610d6157600080fd5b610d6d87828801610c86565b93509350506040610d8087828801610cd3565b91505092959194509250565b600080600080600060608688031215610da457600080fd5b853567ffffffffffffffff811115610dbb57600080fd5b610dc788828901610c3d565b9550955050602086013567ffffffffffffffff811115610de657600080fd5b610df288828901610c3d565b93509350506040610e0588828901610cd3565b9150509295509295909350565b600060208284031215610e2457600080fd5b6000610cfc8484610cc8565b6000610e3c8383610e5d565b505060200190565b6000610e3c8383610f8a565b6000610cfc848484610fa4565b610e66816113b6565b82525050565b6000610e78838561134d565b9350610e83826102d3565b8060005b85811015610eb957610e998284611356565b610ea38882610e30565b9750610eae83611343565b925050600101610e87565b509495945050505050565b6000610ecf82611349565b610ed9818561134d565b9350610ee483611343565b8060005b83811015610eb9578151610efc8882610e44565b9750610f0783611343565b925050600101610ee8565b6000610f1e838561134d565b935083602084028501610f30846102d3565b8060005b87811015610f74578484038952610f4b8284611365565b610f56868284610e50565b9550610f6184611343565b60209b909b019a93505050600101610f34565b5091979650505050505050565b610e66816113c1565b610e66816102d3565b610e66610f9f826102d3565b6102d3565b6000610fb0838561134d565b9350610fbd8385846113e6565b610fc683611422565b9093019392505050565b6000610fdb82611349565b610fe5818561134d565b9350610ff58185602086016113f2565b610fc681611422565b610e66816113db565b600061101460358361134d565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061106b60118361087a565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611098602f8361134d565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006110e960198361087a565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061112260188361134d565b7f417267756d656e74206c656e677468206d69736d617463680000000000000000815260200192915050565b600061115b60168361134d565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b610e66816113d2565b60006111948261105e565b91506111a08284610f93565b50602001919050565b6000611194826110dc565b60208101610c2c8284610e5d565b604081016111d08285610e5d565b6111dd6020830184610e5d565b9392505050565b604081016111f28286610e5d565b8181036020830152611205818486610fa4565b95945050505050565b6060810161121c8286610e5d565b818103602083015261122e8185610fd0565b9050610cfc6040830184611180565b6040808252810161124f818688610e6c565b90508181036020830152611264818486610f12565b9695505050505050565b602080825281016111dd8184610ec4565b60208101610c2c8284610f81565b60208101610c2c8284610f8a565b604081016111d08285610f8a565b604081016112b78285610f8a565b6111dd6020830184610f8a565b604081016112d28285610f8a565b8181036020830152610cfc8184610fd0565b60208101610c2c8284610ffe565b602080825281016111dd8184610fd0565b6020808252810161087781611007565b602080825281016108778161108b565b6020808252810161087781611115565b602080825281016108778161114e565b60200190565b5190565b90815260200190565b60006111dd6020840184610c21565b6000808335601e193685900301811261137d57600080fd5b83810160208101935035915067ffffffffffffffff82111561139e57600080fd5b368290038413156113ae57600080fd5b509250929050565b6000610877826113c6565b151590565b6001600160a01b031690565b63ffffffff1690565b6000610877826113b6565b82818337506000910152565b60005b8381101561140d5781810151838201526020016113f5565b8381111561141c576000848401525b50505050565b601f01601f191690565b611435816113b6565b811461144057600080fd5b50565b611435816102d3565b611435816113d256fea365627a7a72315820563a532f64997bec6907bd251dcd334bcad71c9ba8cdcd6a6dcf051c67a7ddca6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address[]",
							"name": "targets",
							"type": "address[]"
						},
						{
							"indexed": false,
							"internalType": "bytes[]",
							"name": "payloads",
							"type": "bytes[]"
						}
					],
					"name": "RelayBatchInitiated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "RelayInitiated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						},
						{
							"internalType": "uint32",
							"name": "crossDomainGasLimit",
							"type": "uint32"
						}
					],
					"name": "initiateRelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "targets",
							"type": "address[]"
						},
						{
							"internalType": "bytes[]",
							"name": "payloads",
							"type": "bytes[]"
						},
						{
							"internalType": "uint32",
							"name": "crossDomainGasLimit",
							"type": "uint32"
						}
					],
					"name": "initiateRelayBatch",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x7b3ef14e884f1df60938ff9f47d5f2aa3d23ae958262bb3ab68bbb5c98e0674b",
				"urls": [
					"bzz-raw://cd57c44c36fcec4ab806633d89d8c69ebbc6d19bee1acbe98f50d8a4872d5702",
					"dweb:/ipfs/QmSQEUfF3eKeAkZ8yNLrB8GC7bupMghWw3CJqdyuTGouso"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OwnerRelayOnEthereum.sol": "OwnerRelayOnEthereum"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OwnerRelayOnEthereum.sol": {
						"keccak256": "0x7b3ef14e884f1df60938ff9f47d5f2aa3d23ae958262bb3ab68bbb5c98e0674b",
						"urls": [
							"bzz-raw://cd57c44c36fcec4ab806633d89d8c69ebbc6d19bee1acbe98f50d8a4872d5702",
							"dweb:/ipfs/QmSQEUfF3eKeAkZ8yNLrB8GC7bupMghWw3CJqdyuTGouso"
						]
					}
				},
				"version": 1
			}
		},
		"OwnerRelayOnOptimism": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620015fd380380620015fd8339810160408190526200003491620000f5565b600080546001600160a01b0319166001600160a01b0385811691909117909155829082908216620000825760405162461bcd60e51b81526004016200007990620001d1565b60405180910390fd5b60008111620000a55760405162461bcd60e51b81526004016200007990620001bf565b600280546001600160a01b0319166001600160a01b03939093169290921790915542016004555062000226915050565b8051620000e28162000201565b92915050565b8051620000e2816200021b565b6000806000606084860312156200010b57600080fd5b6000620001198686620000d5565b93505060206200012c86828701620000d5565b92505060406200013f86828701620000e8565b9150509250925092565b600062000158601483620001e3565b7f4475726174696f6e2063616e6e6f742062652030000000000000000000000000815260200192915050565b600062000193601e83620001e3565b7f54656d70206f776e657220616464726573732063616e6e6f7420626520300000815260200192915050565b60208082528101620000e28162000149565b60208082528101620000e28162000184565b90815260200190565b60006001600160a01b038216620000e2565b90565b6200020c81620001ec565b81146200021857600080fd5b50565b6200020c81620001fe565b6113c780620002366000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806379ba50971161008c578063a3578eed11610066578063a3578eed1461017e578063c3c79e5d14610186578063e3a7ef8f14610199578063f42a7bd2146101ac576100cf565b806379ba50971461014c578063899ffef41461015457806399bc0aea14610169576100cf565b806304f3bcec146100d45780631627540c146100f25780632af64bd314610107578063508d2ed71461011c57806353a47bb71461012f5780637418536014610144575b600080fd5b6100dc6101bf565b6040516100e991906111df565b60405180910390f35b610105610100366004610b7b565b6101ce565b005b61010f61022c565b6040516100e99190611195565b61010561012a366004610bbf565b610342565b6101376103ca565b6040516100e99190611100565b6101056103d9565b61010561052e565b61015c6105f4565b6040516100e99190611184565b610171610677565b6040516100e991906111a3565b61013761067d565b610105610194366004610bbf565b61068c565b6101056101a7366004610c85565b610707565b6101056101ba366004610c15565b610739565b6000546001600160a01b031681565b6101d661084d565b600380546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610221908390611100565b60405180910390a150565b600060606102386105f4565b905060005b815181101561033857600082828151811061025457fe5b60209081029190910181015160008181526001909252604080832054925490516321f8a72160e01b81529193506001600160a01b039283169216906321f8a721906102a39085906004016111a3565b60206040518083038186803b1580156102bb57600080fd5b505afa1580156102cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102f39190810190610ba1565b6001600160a01b031614158061031e57506000818152600160205260409020546001600160a01b0316155b1561032f576000935050505061033f565b5060010161023d565b5060019150505b90565b61034a61084d565b61038a8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061089a92505050565b7f5ee8f50848ed6666c1e2a13d826f32b3f50f8780c1adb816e395a3c1c959a77c8383836040516103bd93929190611129565b60405180910390a1505050565b6003546001600160a01b031681565b60606103e36105f4565b905060005b815181101561052a5760008282815181106103ff57fe5b6020026020010151905060008060009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161044091906110f5565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161046c9291906111bf565b60206040518083038186803b15801561048457600080fd5b505afa158015610498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104bc9190810190610ba1565b6000838152600160205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061051890849084906111b1565b60405180910390a150506001016103e8565b5050565b60045442106105585760405162461bcd60e51b815260040161054f90611252565b60405180910390fd5b6003546001600160a01b031633146105825760405162461bcd60e51b815260040161054f906111fe565b6002546003546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926105c5926001600160a01b039182169291169061110e565b60405180910390a160038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60408051600280825260608083018452926020830190803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b8160008151811061063257fe5b60200260200101818152505078626173653a4f776e657252656c61794f6e457468657265756d60381b8160018151811061066857fe5b60200260200101818152505090565b60045481565b6002546001600160a01b031681565b610694610943565b6106d48383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061089a92505050565b7fd189153a8ae167b55d4663dc838d4a9f7d3f6bc9d10c6f19831143bf30b986f58383836040516103bd93929190611129565b61070f61084d565b600454814201106107325760405162461bcd60e51b815260040161054f9061121e565b4201600455565b610741610943565b60005b838110156108095761080185858381811061075b57fe5b90506020020160206107709190810190610b7b565b84848481811061077c57fe5b602002820190508035601e193684900301811261079857600080fd5b9091016020810191503567ffffffffffffffff8111156107b757600080fd5b368190038213156107c757600080fd5b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061089a92505050565b600101610744565b507f5f62824dd3a89eff7c65b2cfecd20827dc0d1f8f84c7c7dca0959fe4dfb45a6c8484848460405161083f9493929190611153565b60405180910390a150505050565b600454421061086e5760405162461bcd60e51b815260040161054f90611252565b6002546001600160a01b031633146108985760405162461bcd60e51b815260040161054f90611262565b565b60006060836001600160a01b0316836040516108b691906110c2565b6000604051808303816000865af19150503d80600081146108f3576040519150601f19603f3d011682016040523d82523d6000602084013e6108f8565b606091505b5091509150818160405160200161090f919061122e565b6040516020818303038152906040529061093c5760405162461bcd60e51b815260040161054f91906111ed565b5050505050565b600061094d610a22565b9050336001600160a01b038216146109775760405162461bcd60e51b815260040161054f90611272565b61097f610a42565b6001600160a01b0316816001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c157600080fd5b505afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109f99190810190610ba1565b6001600160a01b031614610a1f5760405162461bcd60e51b815260040161054f9061120e565b50565b6000610a3d6c32bc3a1d26b2b9b9b2b733b2b960991b610a65565b905090565b6000610a3d78626173653a4f776e657252656c61794f6e457468657265756d60381b5b60008181526001602090815260408083205490516001600160a01b039091169182151591610a95918691016110d5565b60405160208183030381529060405290610ac25760405162461bcd60e51b815260040161054f91906111ed565b5092915050565b8035610ad481611367565b92915050565b8051610ad481611367565b60008083601f840112610af757600080fd5b50813567ffffffffffffffff811115610b0f57600080fd5b602083019150836020820283011115610b2757600080fd5b9250929050565b60008083601f840112610b4057600080fd5b50813567ffffffffffffffff811115610b5857600080fd5b602083019150836001820283011115610b2757600080fd5b8035610ad48161137b565b600060208284031215610b8d57600080fd5b6000610b998484610ac9565b949350505050565b600060208284031215610bb357600080fd5b6000610b998484610ada565b600080600060408486031215610bd457600080fd5b6000610be08686610ac9565b935050602084013567ffffffffffffffff811115610bfd57600080fd5b610c0986828701610b2e565b92509250509250925092565b60008060008060408587031215610c2b57600080fd5b843567ffffffffffffffff811115610c4257600080fd5b610c4e87828801610ae5565b9450945050602085013567ffffffffffffffff811115610c6d57600080fd5b610c7987828801610ae5565b95989497509550505050565b600060208284031215610c9757600080fd5b6000610b998484610b70565b6000610caf8383610cd0565b505060200190565b6000610caf8383610dfd565b6000610b99848484610e17565b610cd9816112fa565b82525050565b6000610ceb838561128c565b9350610cf68261033f565b8060005b85811015610d2c57610d0c828461129a565b610d168882610ca3565b9750610d2183611282565b925050600101610cfa565b509495945050505050565b6000610d4282611288565b610d4c818561128c565b9350610d5783611282565b8060005b83811015610d2c578151610d6f8882610cb7565b9750610d7a83611282565b925050600101610d5b565b6000610d91838561128c565b935083602084028501610da38461033f565b8060005b87811015610de7578484038952610dbe82846112a9565b610dc9868284610cc3565b9550610dd484611282565b60209b909b019a93505050600101610da7565b5091979650505050505050565b610cd981611305565b610cd98161033f565b610cd9610e128261033f565b61033f565b6000610e23838561128c565b9350610e30838584611321565b610e398361135d565b9093019392505050565b6000610e4e82611288565b610e58818561128c565b9350610e6881856020860161132d565b610e398161135d565b6000610e7c82611288565b610e868185611295565b9350610e9681856020860161132d565b9290920192915050565b610cd981611316565b6000610eb660358361128c565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610f0d60208361128c565b7f4c312073656e646572206973206e6f7420746865206f776e65722072656c6179815260200192915050565b6000610f4660338361128c565b7f4e6577206578706972792074696d65206d75737420626520736f6f6e6572207481527268616e2069742063757272656e746c7920697360681b602082015260400192915050565b6000610f9b601183611295565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000610fc860138361128c565b723c21b430b4b71031b0b636103330b4b632b21d60691b815260200192915050565b6000610ff7601983611295565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061103060118361128c565b7013dddb995c9cda1a5c08195e1c1a5c9959607a1b815260200192915050565b600061105d601d8361128c565b7f4f6e6c792065786563757461626c652062792074656d70206f776e6572000000815260200192915050565b6000611096601b8361128c565b7f53656e646572206973206e6f7420746865206d657373656e6765720000000000815260200192915050565b60006110ce8284610e71565b9392505050565b60006110e082610f8e565b91506110ec8284610e06565b50602001919050565b60006110e082610fea565b60208101610ad48284610cd0565b6040810161111c8285610cd0565b6110ce6020830184610cd0565b604081016111378286610cd0565b818103602083015261114a818486610e17565b95945050505050565b60408082528101611165818688610cdf565b9050818103602083015261117a818486610d85565b9695505050505050565b602080825281016110ce8184610d37565b60208101610ad48284610df4565b60208101610ad48284610dfd565b6040810161111c8285610dfd565b604081016111cd8285610dfd565b8181036020830152610b998184610e43565b60208101610ad48284610ea0565b602080825281016110ce8184610e43565b60208082528101610ad481610ea9565b60208082528101610ad481610f00565b60208082528101610ad481610f39565b6040808252810161123e81610fbb565b905081810360208301526110ce8184610e43565b60208082528101610ad481611023565b60208082528101610ad481611050565b60208082528101610ad481611089565b60200190565b5190565b90815260200190565b919050565b60006110ce6020840184610ac9565b6000808335601e19368590030181126112c157600080fd5b83810160208101935035915067ffffffffffffffff8211156112e257600080fd5b368290038413156112f257600080fd5b509250929050565b6000610ad48261130a565b151590565b6001600160a01b031690565b6000610ad4826112fa565b82818337506000910152565b60005b83811015611348578181015183820152602001611330565b83811115611357576000848401525b50505050565b601f01601f191690565b611370816112fa565b8114610a1f57600080fd5b6113708161033f56fea365627a7a72315820a3fa7180699b5cf1c1c189354d7d4de9785f88644c100208d2a8a5f68c0e383c6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_temporaryOwner",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_ownershipDuration",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "DirectRelay",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address[]",
							"name": "targets",
							"type": "address[]"
						},
						{
							"indexed": false,
							"internalType": "bytes[]",
							"name": "payloads",
							"type": "bytes[]"
						}
					],
					"name": "RelayBatchFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "RelayFinalized",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "directRelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "expiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "finalizeRelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "targets",
							"type": "address[]"
						},
						{
							"internalType": "bytes[]",
							"name": "payloads",
							"type": "bytes[]"
						}
					],
					"name": "finalizeRelayBatch",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_duration",
							"type": "uint256"
						}
					],
					"name": "setNewExpiryTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "temporaryOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd4e78ffb15c1707e6cb8f37e49214361bb0ab812e599d4cfbdf9f7bede7fe5ad",
				"urls": [
					"bzz-raw://dac0b3f32087c1b0a9137421e5825fde5bdd69e36fa355b27ae2a48a4ed81f5a",
					"dweb:/ipfs/QmPtK5k8sgYweaweF5H9M6c42MMb7KLnspFSNBfryu1f76"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OwnerRelayOnOptimism.sol": "OwnerRelayOnOptimism"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OwnerRelayOnOptimism.sol": {
						"keccak256": "0xd4e78ffb15c1707e6cb8f37e49214361bb0ab812e599d4cfbdf9f7bede7fe5ad",
						"urls": [
							"bzz-raw://dac0b3f32087c1b0a9137421e5825fde5bdd69e36fa355b27ae2a48a4ed81f5a",
							"dweb:/ipfs/QmPtK5k8sgYweaweF5H9M6c42MMb7KLnspFSNBfryu1f76"
						]
					}
				},
				"version": 1
			}
		},
		"SynthRedeemer": {
			"bytecode": "608060405234801561001057600080fd5b506040516110b03803806110b08339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561104b806100656000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806395a2251f1161007157806395a2251f146101a15780639bc3f269146101c7578063b915ece0146101ed578063d6232e8914610219578063e4dc2aa414610289578063f7888aec146102af576100b4565b806304f3bcec146100b95780632af64bd3146100dd5780633a70599c146100f9578063614d08f8146101275780637418536014610141578063899ffef414610149575b600080fd5b6100c16102dd565b604080516001600160a01b039092168252519081900360200190f35b6100e56102ec565b604080519115158252519081900360200190f35b6101256004803603604081101561010f57600080fd5b506001600160a01b0381351690602001356103f6565b005b61012f610685565b60408051918252519081900360200190f35b610125610699565b610151610864565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561018d578181015183820152602001610175565b505050509050019250505060405180910390f35b610125600480360360208110156101b757600080fd5b50356001600160a01b03166108d0565b61012f600480360360208110156101dd57600080fd5b50356001600160a01b0316610950565b6101256004803603604081101561020357600080fd5b506001600160a01b038135169060200135610962565b6101256004803603602081101561022f57600080fd5b81019060208101813564010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184602083028401116401000000008311171561027e57600080fd5b509092509050610a2b565b61012f6004803603602081101561029f57600080fd5b50356001600160a01b0316610aba565b61012f600480360360408110156102c557600080fd5b506001600160a01b0381358116916020013516610b5c565b6000546001600160a01b031681565b600060606102f8610864565b905060005b81518110156103ec57600082828151811061031457fe5b602090810291909101810151600081815260018352604080822054915481516321f8a72160e01b81526004810185905291519395506001600160a01b03928316949216926321f8a72192602480840193919291829003018186803b15801561037b57600080fd5b505afa15801561038f573d6000803e3d6000fd5b505050506040513d60208110156103a557600080fd5b50516001600160a01b03161415806103d257506000818152600160205260409020546001600160a01b0316155b156103e357600093505050506103f3565b506001016102fd565b5060019150505b90565b6103fe610bc0565b6001600160a01b03821660009081526002602052604090205482901561046b576040805162461bcd60e51b815260206004820152601b60248201527f53796e746820697320616c726561647920646570726563617465640000000000604482015290519081900360640190fd5b600082116104c0576040805162461bcd60e51b815260206004820152601b60248201527f4e6f207261746520666f722073796e746820746f2072656465656d0000000000604482015290519081900360640190fd5b6000836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104fb57600080fd5b505afa15801561050f573d6000803e3d6000fd5b505050506040513d602081101561052557600080fd5b50519050600061053b828563ffffffff610c2f16565b905080610546610c59565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d60208110156105c557600080fd5b5051101561061a576040805162461bcd60e51b815260206004820152601b60248201527f6f555344206d75737420666972737420626520737570706c6965640000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526002602090815260409182902087905581519288168352820186905281810184905260608201839052517f729d5d4b6f2f5105eb1f707c4929870479e07c211953ef7014da9463fb15d88a9181900360800190a15050505050565b6c29bcb73a342932b232b2b6b2b960991b81565b60606106a3610864565b905060005b81518110156108605760008282815181106106bf57fe5b60209081029190910181015160008054604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818701526039808201869052825180830390910181526059820180845263dacb2d0160e01b9052605d8201868152607d83019384528151609d840152815196985094966001600160a01b039094169563dacb2d0195899592949093909260bd90910191908501908083838c5b83811015610778578181015183820152602001610760565b50505050905090810190601f1680156107a55780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156107c357600080fd5b505afa1580156107d7573d6000803e3d6000fd5b505050506040513d60208110156107ed57600080fd5b505160008381526001602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016106a8565b5050565b60408051600280825260608083018452926020830190803883390190505090506524b9b9bab2b960d11b8160008151811061089b57fe5b6020026020010181815250506814de5b9d1a1bd554d160ba1b816001815181106108c157fe5b60200260200101818152505090565b604080516370a0823160e01b8152336004820152905161094d9183916001600160a01b038316916370a08231916024808301926020929190829003018186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d602081101561094657600080fd5b5051610c75565b50565b60026020526000908152604090205481565b604080516370a0823160e01b8152336004820152905182916001600160a01b038516916370a0823191602480820192602092909190829003018186803b1580156109ab57600080fd5b505afa1580156109bf573d6000803e3d6000fd5b505050506040513d60208110156109d557600080fd5b50511015610a21576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6108608282610c75565b60005b81811015610ab557610aad838383818110610a4557fe5b905060200201356001600160a01b0316848484818110610a6157fe5b604080516370a0823160e01b81523360048201529051602092830294909401356001600160a01b0316936370a08231935060248083019392829003018186803b15801561091c57600080fd5b600101610a2e565b505050565b6000610b5660026000846001600160a01b03166001600160a01b0316815260200190815260200160002054836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d6020811015610b4857600080fd5b50519063ffffffff610c2f16565b92915050565b6001600160a01b0380831660008181526002602090815260408083205481516370a0823160e01b8152958716600487015290519294610bb994919391926370a0823192602480840193829003018186803b158015610b1e57600080fd5b9392505050565b610bc8610ea4565b6001600160a01b0316336001600160a01b031614610c2d576040805162461bcd60e51b815260206004820152601d60248201527f5265737472696374656420746f2049737375657220636f6e7472616374000000604482015290519081900360640190fd5b565b6000670de0b6b3a7640000610c4a848463ffffffff610eb816565b81610c5157fe5b049392505050565b6000610c706814de5b9d1a1bd554d160ba1b610f11565b905090565b6001600160a01b03821660009081526002602052604090205480610cd7576040805162461bcd60e51b815260206004820152601460248201527353796e7468206e6f742072656465656d61626c6560601b604482015290519081900360640190fd5b60008211610d2c576040805162461bcd60e51b815260206004820152601d60248201527f4e6f2062616c616e6365206f662073796e746820746f2072656465656d000000604482015290519081900360640190fd5b610d34610ea4565b604080516335a1b01b60e21b81526001600160a01b038681166004830152336024830152604482018690529151929091169163d686c06c9160648082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505050506000610dba8284610c2f90919063ffffffff16565b9050610dc4610c59565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e2357600080fd5b505af1158015610e37573d6000803e3d6000fd5b505050506040513d6020811015610e4d57600080fd5b5050604080516001600160a01b03861681523360208201528082018590526060810183905290517f8734fd5c7511ef698c61bce7dd8eefb212edea08cf7d9d4694e223c6f6121aef9181900360800190a150505050565b6000610c706524b9b9bab2b960d11b610f11565b600082610ec757506000610b56565b82820282848281610ed457fe5b0414610bb95760405162461bcd60e51b8152600401808060200182810382526021815260200180610ff66021913960400191505060405180910390fd5b600081815260016020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610fee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fb3578181015183820152602001610f9b565b50505050905090810190601f168015610fe05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158206b8b0be8a913e187bf7dab1566984b43850ee0600b6d58b8e9f9a18302d1774c64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rateToRedeem",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalSynthSupply",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "supplyInoUSD",
							"type": "uint256"
						}
					],
					"name": "SynthDeprecated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountOfSynth",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountInoUSD",
							"type": "uint256"
						}
					],
					"name": "SynthRedeemed",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "balanceInoUSD",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "rateToRedeem",
							"type": "uint256"
						}
					],
					"name": "deprecate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						}
					],
					"name": "redeem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20[]",
							"name": "synthProxies",
							"type": "address[]"
						}
					],
					"name": "redeemAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amountOfSynth",
							"type": "uint256"
						}
					],
					"name": "redeemPartial",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "redemptions",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						}
					],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "supplyInoUSD",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x143a077ae4c3000dff1fedba6d97dea0a5364929528a74dbfdbbe68f8f832357",
				"urls": [
					"bzz-raw://b25b5dbabd84680ed609aca78ff1f5cd6ab2e224eb0a5106244fd77721266f50",
					"dweb:/ipfs/QmbsfNKWnXQjxtvoy6f9jWPqERn2m1Bf9dqW2SqH2CVTVH"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthRedeemer.sol": "SynthRedeemer"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthRedeemer.sol": {
						"keccak256": "0x143a077ae4c3000dff1fedba6d97dea0a5364929528a74dbfdbbe68f8f832357",
						"urls": [
							"bzz-raw://b25b5dbabd84680ed609aca78ff1f5cd6ab2e224eb0a5106244fd77721266f50",
							"dweb:/ipfs/QmbsfNKWnXQjxtvoy6f9jWPqERn2m1Bf9dqW2SqH2CVTVH"
						]
					}
				},
				"version": 1
			}
		},
		"WrapperFactory": {
			"bytecode": "608060405234801561001057600080fd5b506040516135553803806135558339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050613431806101246000396000f3fe608060405260043610620000d45760003560e01c806375d920a9116200008b5780638da5cb5b11620000615780638da5cb5b14620002ae578063a106935d14620002c6578063bb57ad201462000309578063e0aa2797146200032157620000d4565b806375d920a9146200021457806379ba5097146200022c578063899ffef4146200024457620000d4565b806304f3bcec14620001215780631627540c14620001555780632af64bd3146200018e57806353a47bb714620001ba578063614d08f814620001d25780637418536014620001fc575b6040805162461bcd60e51b815260206004820152601760248201527f436f6e7472616374206973206e6f742070617961626c65000000000000000000604482015290519081900360640190fd5b3480156200012e57600080fd5b506200013962000358565b604080516001600160a01b039092168252519081900360200190f35b3480156200016257600080fd5b506200018c600480360360208110156200017b57600080fd5b50356001600160a01b031662000367565b005b3480156200019b57600080fd5b50620001a6620003c5565b604080519115158252519081900360200190f35b348015620001c757600080fd5b5062000139620004db565b348015620001df57600080fd5b50620001ea620004ea565b60408051918252519081900360200190f35b3480156200020957600080fd5b506200018c620004ff565b3480156200022157600080fd5b50620001ea620006d2565b3480156200023957600080fd5b506200018c62000767565b3480156200025157600080fd5b506200025c62000825565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200029a57818101518382015260200162000280565b505050509050019250505060405180910390f35b348015620002bb57600080fd5b5062000139620008c3565b348015620002d357600080fd5b506200013960048036036060811015620002ec57600080fd5b506001600160a01b038135169060208101359060400135620008d2565b3480156200031657600080fd5b506200018c62000a8a565b3480156200032e57600080fd5b50620001a6600480360360208110156200034757600080fd5b50356001600160a01b031662000bff565b6002546001600160a01b031681565b6200037162000caa565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006060620003d362000825565b905060005b8151811015620004d1576000828281518110620003f157fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156200045a57600080fd5b505afa1580156200046f573d6000803e3d6000fd5b505050506040513d60208110156200048657600080fd5b50516001600160a01b0316141580620004b457506000818152600360205260409020546001600160a01b0316155b15620004c75760009350505050620004d8565b50600101620003d8565b5060019150505b90565b6001546001600160a01b031681565b6d57726170706572466163746f727960901b81565b60606200050b62000825565b905060005b8151811015620006ce5760008282815181106200052957fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015620005e1578181015183820152602001620005c7565b50505050905090810190601f1680156200060f5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156200062e57600080fd5b505afa15801562000643573d6000803e3d6000fd5b505050506040513d60208110156200065a57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a1505060010162000510565b5050565b6000620006de62000cf7565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156200073457600080fd5b505afa15801562000749573d6000803e3d6000fd5b505050506040513d60208110156200076057600080fd5b5051905090565b6001546001600160a01b03163314620007b25760405162461bcd60e51b8152600401808060200182810382526035815260200180620033996035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b604080516003808252608082019092526060916020820183803883390190505090506814de5b9d1a1bd554d160ba1b816000815181106200086257fe5b6020026020010181815250506e466c657869626c6553746f7261676560881b816001815181106200088f57fe5b60200260200101818152505066119959541bdbdb60ca1b81600281518110620008b457fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000620008de62000caa565b600080546002546040516001600160a01b039283169290911690879087908790620009099062000e2e565b6001600160a01b0395861681529385166020850152919093166040808401919091526060830193909352608082015290519081900360a001906000f08015801562000958573d6000803e3d6000fd5b509050806001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200099757600080fd5b505af1158015620009ac573d6000803e3d6000fd5b50505050620009ba62000d15565b60408051631d5b277f60e01b81526d57726170706572466163746f727960901b60048201526001600160a01b0384811660248301526001604483015291519290911691631d5b277f9160648082019260009290919082900301818387803b15801562000a2557600080fd5b505af115801562000a3a573d6000803e3d6000fd5b5050604080516001600160a01b038581168252915188945091891692507f8aba3d0a3cbd86bcfc8d4d553823cb5030939fb35208794c1ca597046b2b561e919081900360200190a3949350505050565b600062000a96620006d2565b9050801562000bfc57600062000aab62000cf7565b6001600160a01b031663a9059cbb62000ac362000d34565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801562000afc57600080fd5b505afa15801562000b11573d6000803e3d6000fd5b505050506040513d602081101562000b2857600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018690525160448083019260209291908290030181600087803b15801562000b7957600080fd5b505af115801562000b8e573d6000803e3d6000fd5b505050506040513d602081101562000ba557600080fd5b5051905080620006ce576040805162461bcd60e51b815260206004820152601860248201527f5472616e7366657220646964206e6f7420737563636565640000000000000000604482015290519081900360640190fd5b50565b60008062000c0c62000d15565b6001600160a01b03166323257c2b6d57726170706572466163746f727960901b856001600160a01b031660001b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801562000c7557600080fd5b505afa15801562000c8a573d6000803e3d6000fd5b505050506040513d602081101562000ca157600080fd5b50511192915050565b6000546001600160a01b0316331462000cf55760405162461bcd60e51b815260040180806020018281038252602f815260200180620033ce602f913960400191505060405180910390fd5b565b600062000d106814de5b9d1a1bd554d160ba1b62000d46565b905090565b600062000d106e466c657869626c6553746f7261676560881b62000d46565b600062000d1066119959541bdbdb60ca1b5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b0316908162000e275760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000deb57818101518382015260200162000dd1565b50505050905090810190601f16801562000e195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b61255c8062000e3d8339019056fe60806040523480156200001157600080fd5b506040516200255c3803806200255c833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091908380866001600160a01b038116620000b5576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b031662000160576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b60038054610100600160a81b0319166101006001600160a01b0393841602179055600580546001600160a01b031916868316179081905560068590556007849055600060088190556040805163095ea7b360e01b81523060048201526000196024820152905192909316935063095ea7b392604480820193602093909283900390910190829087803b158015620001f657600080fd5b505af11580156200020b573d6000803e3d6000fd5b505050506040513d60208110156200022257600080fd5b5050505050505061232380620002396000396000f3fe6080604052600436106101665760003560e01c80635c975abb116100d15780638a926d0f1161008a578063a0712d6811610064578063a0712d681461048d578063dbd06c85146104b7578063ee5f3f5c146104cc578063fc0c546a146104e157610166565b80638a926d0f1461044e5780638da5cb5b1461046357806391b4ded91461047857610166565b80635c975abb1461036b5780635cfc1a51146103805780636ad882691461039557806374185360146103bf57806379ba5097146103d4578063899ffef4146103e957610166565b80631f23a352116101235780631f23a352146102965780632af64bd3146102ab57806342966c68146102d4578063509bf42a146102fe57806353a47bb7146103135780635c095e541461032857610166565b806304f3bcec146101b35780630902f1ac146101e45780631627540c1461020b57806316c38b3c1461024057806317c943bc1461026c57806318819a3114610281575b6040805162461bcd60e51b815260206004820152601d60248201527f46616c6c6261636b2064697361626c65642c20757365206d696e742829000000604482015290519081900360640190fd5b3480156101bf57600080fd5b506101c86104f6565b604080516001600160a01b039092168252519081900360200190f35b3480156101f057600080fd5b506101f961050a565b60408051918252519081900360200190f35b34801561021757600080fd5b5061023e6004803603602081101561022e57600080fd5b50356001600160a01b0316610587565b005b34801561024c57600080fd5b5061023e6004803603602081101561026357600080fd5b503515156105e3565b34801561027857600080fd5b506101f961065d565b34801561028d57600080fd5b506101f9610663565b3480156102a257600080fd5b506101f9610673565b3480156102b757600080fd5b506102c0610679565b604080519115158252519081900360200190f35b3480156102e057600080fd5b5061023e600480360360208110156102f757600080fd5b5035610789565b34801561030a57600080fd5b506101f9610c73565b34801561031f57600080fd5b506101c8610c7e565b34801561033457600080fd5b506103526004803603602081101561034b57600080fd5b5035610c8d565b6040805192835290151560208301528051918290030190f35b34801561037757600080fd5b506102c0610ce2565b34801561038c57600080fd5b506101f9610ceb565b3480156103a157600080fd5b50610352600480360360208110156103b857600080fd5b5035610d2d565b3480156103cb57600080fd5b5061023e610d3a565b3480156103e057600080fd5b5061023e610f17565b3480156103f557600080fd5b506103fe610fd3565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043a578181015183820152602001610422565b505050509050019250505060405180910390f35b34801561045a57600080fd5b506101f96110f5565b34801561046f57600080fd5b506101c8611100565b34801561048457600080fd5b506101f961110f565b34801561049957600080fd5b5061023e600480360360208110156104b057600080fd5b5035611115565b3480156104c357600080fd5b506101f961156f565b3480156104d857600080fd5b506101f9611575565b3480156104ed57600080fd5b506101c86115dd565b60035461010090046001600160a01b031681565b600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561055557600080fd5b505afa158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190505b90565b61058f6115ec565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6105eb6115ec565b60035460ff16151581151514156106015761065a565b6003805460ff1916821515179081905560ff161561061e57426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60085481565b600061066e30611637565b905090565b60075481565b60006060610685610fd3565b905060005b81518110156107805760008282815181106106a157fe5b602090810291909101810151600081815260048084526040918290205460035483516321f8a72160e01b815292830185905292519395506001600160a01b039081169461010090930416926321f8a72192602480840193919291829003018186803b15801561070f57600080fd5b505afa158015610723573d6000803e3d6000fd5b505050506040513d602081101561073957600080fd5b50516001600160a01b031614158061076657506000818152600460205260409020546001600160a01b0316155b156107775760009350505050610584565b5060010161068a565b50600191505090565b60035460ff16156107cb5760405162461bcd60e51b815260040180806020018281038252603c815260200180612258603c913960400191505060405180910390fd5b6107d3611727565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561080b57600080fd5b505afa15801561081f573d6000803e3d6000fd5b5050505061082b611741565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561088057600080fd5b505afa158015610894573d6000803e3d6000fd5b505050506040513d60208110156108aa57600080fd5b50518111156108f5576040805162461bcd60e51b815260206004820152601260248201527142616c616e636520697320746f6f206c6f7760701b604482015290519081900360640190fd5b6108fd61174e565b6001600160a01b0316632528f0fe6006546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b5051156109bb576040805162461bcd60e51b815260206004820152601860248201527710dd5c9c995b98de481c985d19481a5cc81a5b9d985b1a5960421b604482015290519081900360640190fd5b60006109c5611575565b11610a015760405162461bcd60e51b81526004018080602001828103825260358152602001806122ba6035913960400191505060405180910390fd5b600080610a0f600854610d2d565b915091506000808215610ad1578460085410610a2b5784610a3e565b600854610a3e908563ffffffff61176916565b9150610aca610a4b610c73565b73__$b638afe8340e430a394ced2a8f566f670f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505af4158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b50518491900363ffffffff6117cb16565b9050610b92565b6008548590610ae6908663ffffffff6117f516565b10610af15784610b04565b600854610b04908563ffffffff6117f516565b9150610b8f610b11610c73565b73__$b638afe8340e430a394ced2a8f566f670f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5557600080fd5b505af4158015610b69573d6000803e3d6000fd5b505050506040513d6020811015610b7f57600080fd5b505184910163ffffffff61185616565b90505b600083610bae57610ba9838363ffffffff61176916565b610bb1565b60005b600554909150600090610bcf906001600160a01b0316303386611880565b905080610c1e576040805162461bcd60e51b8152602060048201526018602482015277151c985b9cd9995c88191a59081b9bdd081cdd58d8d9595960421b604482015290519081900360640190fd5b610c2784611925565b6040805184815260208101849052808201869052905133917f4c60206a5c1de41f3376d1d60f0949d96cb682033c90b1c2d9d9a62d4c4120c0919081900360600190a250505050505050565b600061066e30611b2b565b6001546001600160a01b031681565b6000806000610c9a610663565b90506000811215610cc557610cb984600083900363ffffffff611be916565b60019250925050610cdd565b610cd5848263ffffffff611be916565b600092509250505b915091565b60035460ff1681565b600080610cf661050a565b90506000610d026110f5565b9050808210610d1657600092505050610584565b610d26818363ffffffff61176916565b9250505090565b6000806000610c9a610c73565b6060610d44610fd3565b905060005b8151811015610f13576000828281518110610d6057fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e2b578181015183820152602001610e13565b50505050905090810190601f168015610e585780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610e7657600080fd5b505afa158015610e8a573d6000803e3d6000fd5b505050506040513d6020811015610ea057600080fd5b505160008381526004602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610d49565b5050565b6001546001600160a01b03163314610f605760405162461bcd60e51b81526004018080602001828103825260358152602001806121d36035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610fde611bfe565b60408051600680825260e08201909252919250606091906020820160c0803883390190505090506814de5b9d1a1bd554d160ba1b8160008151811061101f57fe5b6020026020010181815250506007548160018151811061103b57fe5b6020026020010181815250506c45786368616e6765526174657360981b8160028151811061106557fe5b6020026020010181815250506844656274436163686560b81b8160038151811061108b57fe5b6020026020010181815250506b53797374656d53746174757360a01b816004815181106110b457fe5b6020026020010181815250506d57726170706572466163746f727960901b816005815181106110df57fe5b602002602001018181525050610d268282611c4f565b600061066e30611d0b565b6000546001600160a01b031681565b60025481565b60035460ff16156111575760405162461bcd60e51b815260040180806020018281038252603c815260200180612258603c913960400191505060405180910390fd5b61115f611727565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561119757600080fd5b505afa1580156111ab573d6000803e3d6000fd5b505060055460408051636eb1769f60e11b815233600482015230602482015290516001600160a01b03909216935063dd62ed3e9250604480820192602092909190829003018186803b15801561120057600080fd5b505afa158015611214573d6000803e3d6000fd5b505050506040513d602081101561122a57600080fd5b5051811115611280576040805162461bcd60e51b815260206004820152601960248201527f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000604482015290519081900360640190fd5b600554604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156112cb57600080fd5b505afa1580156112df573d6000803e3d6000fd5b505050506040513d60208110156112f557600080fd5b5051811115611340576040805162461bcd60e51b815260206004820152601260248201527142616c616e636520697320746f6f206c6f7760701b604482015290519081900360640190fd5b61134861174e565b6001600160a01b0316632528f0fe6006546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b505115611406576040805162461bcd60e51b815260206004820152601860248201527710dd5c9c995b98de481c985d19481a5cc81a5b9d985b1a5960421b604482015290519081900360640190fd5b6000611410610ceb565b9050600081116114515760405162461bcd60e51b81526004018080602001828103825260268152602001806122946026913960400191505060405180910390fd5b60008282106114605782611462565b815b905060008061147083610c8d565b915091506000816114905761148b848463ffffffff61176916565b6114a0565b6114a0848463ffffffff6117f516565b6005549091506000906114be906001600160a01b0316333088611880565b90508061150d576040805162461bcd60e51b8152602060048201526018602482015277151c985b9cd9995c88191a59081b9bdd081cdd58d8d9595960421b604482015290519081900360640190fd5b61151682611dc7565b337f5a3358a3d27a5373c0df2604662088d37894d56b7cfd27f315770440f4e0d91983856115445786611547565b60005b604080519283526020830191909152818101899052519081900360600190a250505050505050565b60065481565b600061157f61174e565b6001600160a01b031663654a60ac600654600854631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561055557600080fd5b6005546001600160a01b031681565b6000546001600160a01b031633146116355760405162461bcd60e51b815260040180806020018281038252602f815260200180612208602f913960400191505060405180910390fd5b565b6000611641611f18565b6001600160a01b031663c4f610ed6d53797374656d53657474696e677360901b71777261707065724d696e744665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116f557600080fd5b505afa158015611709573d6000803e3d6000fd5b505050506040513d602081101561171f57600080fd5b505192915050565b600061066e6b53797374656d53746174757360a01b611f31565b600061066e600754611f31565b600061066e6c45786368616e6765526174657360981b611f31565b6000828211156117c0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000670de0b6b3a76400006117e6848463ffffffff61200e16565b816117ed57fe5b049392505050565b60008282018381101561184f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061184f8261187485670de0b6b3a764000063ffffffff61200e16565b9063ffffffff61206716565b604080516001600160a01b038086166024830152841660448201526064808201849052825180830390910181526084909101909152602081810180516001600160e01b03166323b872dd60e01b178152825160ff60009081529392909184908390828b5af16118ee57600080fd5b60005160ff811461190c576001811461190c57801561191557600080fd5b6001935061191a565b600093505b505050949350505050565b600061192f61050a565b600854909150600090611948838563ffffffff6117f516565b11611954576000611977565b6008546119779061196b848663ffffffff6117f516565b9063ffffffff61176916565b9050600061198361174e565b6001600160a01b031663654a60ac60065484631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b50519050611a15611741565b6001600160a01b0316639dc29fac33866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b505050506000811115611b1c57611a9d6120d1565b6001600160a01b031663867904b4611ab36120e8565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611b0357600080fd5b505af1158015611b17573d6000803e3d6000fd5b505050505b611b2583612104565b50505050565b6000611b35611f18565b6001600160a01b031663c4f610ed6d53797374656d53657474696e677360901b71777261707065724275726e4665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116f557600080fd5b600061184f8383670de0b6b3a764000061217f565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611c4057fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611c7f578160200160208202803883390190505b50905060005b8351811015611cc157838181518110611c9a57fe5b6020026020010151828281518110611cae57fe5b6020908102919091010152600101611c85565b5060005b8251811015611d0457828181518110611cda57fe5b6020026020010151828286510181518110611cf157fe5b6020908102919091010152600101611cc5565b5092915050565b6000611d15611f18565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f777261707065724d6178546f6b656e7360801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116f557600080fd5b6000611dd161050a565b90506000611dea836008546117f590919063ffffffff16565b8211611df7576000611e1b565b600854611e1b90611e0e908563ffffffff6117f516565b839063ffffffff61176916565b90506000611e2761174e565b6001600160a01b031663654a60ac60065484631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015611e8357600080fd5b505afa158015611e97573d6000803e3d6000fd5b505050506040513d6020811015611ead57600080fd5b50519050611eb9611741565b6001600160a01b031663867904b433866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a7457600080fd5b600061066e6e466c657869626c6553746f7261676560881b5b600081815260046020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611d045760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fd3578181015183820152602001611fbb565b50505050905090810190601f1680156120005780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60008261201d575060006117c5565b8282028284828161202a57fe5b041461184f5760405162461bcd60e51b81526004018080602001828103825260218152602001806122376021913960400191505060405180910390fd5b60008082116120bd576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816120c857fe5b04949350505050565b600061066e6814de5b9d1a1bd554d160ba1b611f31565b600061066e6d57726170706572466163746f727960901b611f31565b61210c6121bb565b6001600160a01b0316639e3b92ca60065460085484036040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561215f57600080fd5b505af1158015612173573d6000803e3d6000fd5b50505060089190915550565b600080600a8304612196868663ffffffff61200e16565b8161219d57fe5b0490506005600a8206106121af57600a015b600a9004949350505050565b600061066e6844656274436163686560b81b611f3156fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e747261637420697320706175736564436f6e747261637420686173206e6f20737061726520636170616369747920746f206d696e74436f6e74726163742063616e6e6f74206275726e20666f7220746f6b656e2c20746f6b656e2062616c616e6365206973207a65726fa265627a7a723158202b8639147f726c136c57dfae36bfaf3e1bcafb41fcdfeccc2705c43d3db9ba7064736f6c63430005100032596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820d2be7d77c9b92ffb233e482c8d8cd107ea1f64c872f6cdeb54339a2982e8c6a964736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapperAddress",
							"type": "address"
						}
					],
					"name": "WrapperCreated",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "synthContractName",
							"type": "bytes32"
						}
					],
					"name": "createWrapper",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "distributeFees",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feesEscrowed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "possibleWrapper",
							"type": "address"
						}
					],
					"name": "isWrapper",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x2c9b82299e9012315e3d7f633f73a87b3bb1a2db98c828f14a6e29d79969c658",
				"urls": [
					"bzz-raw://5572f53764faad73b8d8ecf91f5613680abc41c044691a2e54d95e5f0bf71244",
					"dweb:/ipfs/Qmc8vseEexv9WxRGP3YgwkavAwr1F1MfSMreHWUxFq61on"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"WrapperFactory.sol": "WrapperFactory"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"WrapperFactory.sol": {
						"keccak256": "0x2c9b82299e9012315e3d7f633f73a87b3bb1a2db98c828f14a6e29d79969c658",
						"urls": [
							"bzz-raw://5572f53764faad73b8d8ecf91f5613680abc41c044691a2e54d95e5f0bf71244",
							"dweb:/ipfs/Qmc8vseEexv9WxRGP3YgwkavAwr1F1MfSMreHWUxFq61on"
						]
					}
				},
				"version": 1
			}
		},
		"TokenState": {
			"bytecode": "608060405234801561001057600080fd5b5060405161075d38038061075d8339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050506105b7806101a66000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610155578063aefc4ccb1461015d578063b46310f614610165578063da46098c14610191578063dd62ed3e146101c75761009e565b80631627540c146100a357806352f445ca146100cb57806353a47bb7146100f157806370a082311461011557806379ba50971461014d575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b03166101f5565b005b6100c9600480360360208110156100e157600080fd5b50356001600160a01b0316610251565b6100f96102ad565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603602081101561012b57600080fd5b50356001600160a01b03166102bc565b60408051918252519081900360200190f35b6100c96102ce565b6100f961038a565b6100f9610399565b6100c96004803603604081101561017b57600080fd5b506001600160a01b0381351690602001356103a8565b6100c9600480360360608110156101a757600080fd5b506001600160a01b0381358116916020810135909116906040013561040d565b61013b600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610482565b6101fd61049f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b61025961049f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b60036020526000908152604090205481565b6001546001600160a01b031633146103175760405162461bcd60e51b81526004018080602001828103825260358152602001806104eb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6002546001600160a01b031633146103f15760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b03909116600090815260036020526040902055565b6002546001600160a01b031633146104565760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b600460209081526000928352604080842090915290825290205481565b6000546001600160a01b031633146104e85760405162461bcd60e51b815260040180806020018281038252602f815260200180610520602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a72315820f5c22a5543aa72f98fec63efd11268a7956490134d897a8d08a24889bde93afd64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenOwner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setAllowance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setBalanceOf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x4d75b8c856c82f325b713b4dbb3cbb5b0ee8e343bc9d164c0a9b6b9d924d57d5",
				"urls": [
					"bzz-raw://0e65df0de8b524352365b99ea09603feb10e08c92ef0963d734758c893a98121",
					"dweb:/ipfs/QmSSR1iyt5kTZAUWpEJx2voKXUtR2s5Zz13A6rFBLr3LPp"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"TokenState.sol": "TokenState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"TokenState.sol": {
						"keccak256": "0x4d75b8c856c82f325b713b4dbb3cbb5b0ee8e343bc9d164c0a9b6b9d924d57d5",
						"urls": [
							"bzz-raw://0e65df0de8b524352365b99ea09603feb10e08c92ef0963d734758c893a98121",
							"dweb:/ipfs/QmSSR1iyt5kTZAUWpEJx2voKXUtR2s5Zz13A6rFBLr3LPp"
						]
					}
				},
				"version": 1
			}
		},
		"MultiCollateralSynth": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620031273803806200312783398181016040526101008110156200003857600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006457600080fd5b9083019060208201858111156200007a57600080fd5b82516401000000008111828201881017156200009557600080fd5b82525081516020918201929091019080838360005b83811015620000c4578181015183820152602001620000aa565b50505050905090810190601f168015620000f25780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011657600080fd5b9083019060208201858111156200012c57600080fd5b82516401000000008111828201881017156200014757600080fd5b82525081516020918201929091019080838360005b83811015620001765781810151838201526020016200015c565b50505050905090810190601f168015620001a45780820380516001836020036101000a031916815260200191505b50604090815260208201519082015160608301516080909301519194509250878787878787878780888888888660128a86816001600160a01b03811662000232576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316620002dd576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9181900360200190a150600480546001600160a01b0319166001600160a01b03881617905584516200035f90600590602088019062000464565b5083516200037590600690602087019062000464565b50506007919091556008805460ff191660ff90921691909117610100600160a81b0319166101006001600160a01b03978816021790555050509089169050620003fa576040805162461bcd60e51b815260206004820152601260248201527105f70726f78792063616e6e6f7420626520360741b604482015290519081900360640190fd5b6001600160a01b0384166200044b576040805162461bcd60e51b815260206004820152601260248201527105f6f776e65722063616e6e6f7420626520360741b604482015290519081900360640190fd5b5050600a5550620005099b505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004a757805160ff1916838001178555620004d7565b82800160010185558215620004d7579182015b82811115620004d7578251825591602001919060010190620004ba565b50620004e5929150620004e9565b5090565b6200050691905b80821115620004e55760008155600101620004f0565b90565b612c0e80620005196000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063d67bdd25116100ad578063e90dd9e21161007c578063e90dd9e2146105cb578063eb1edd61146105d3578063ec556889146105db578063f7ea7a3d146105e3578063ffff51d614610600576101fb565b8063d67bdd2514610557578063dbd06c851461055f578063dd62ed3e14610567578063e73cced314610595576101fb565b80639f769807116100e95780639f769807146104b3578063a9059cbb146104d9578063b014c3a314610505578063bc67f83214610531576101fb565b80638da5cb5b1461045157806395d89b411461045957806397107d6d146104615780639dc29fac14610487576101fb565b8063313ce56711610192578063741853601161016157806374185360146103bd57806379ba5097146103c5578063867904b4146103cd578063899ffef4146103f9576101fb565b8063313ce5671461037f57806353a47bb714610387578063614d08f81461038f57806370a0823114610397576101fb565b806318160ddd116101ce57806318160ddd1461030957806323b872dd146103235780632af64bd3146103595780632e0f262514610361576101fb565b806304f3bcec1461020057806306fdde0314610224578063095ea7b3146102a15780631627540c146102e1575b600080fd5b610208610626565b604080516001600160a01b039092168252519081900360200190f35b61022c61063a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026657818101518382015260200161024e565b50505050905090810190601f1680156102935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cd600480360360408110156102b757600080fd5b506001600160a01b0381351690602001356106c8565b604080519115158252519081900360200190f35b610307600480360360208110156102f757600080fd5b50356001600160a01b0316610765565b005b6103116107c1565b60408051918252519081900360200190f35b6102cd6004803603606081101561033957600080fd5b506001600160a01b038135811691602081013590911690604001356107c7565b6102cd6107ee565b610369610900565b6040805160ff9092168252519081900360200190f35b610369610905565b61020861090e565b61031161091d565b610311600480360360208110156103ad57600080fd5b50356001600160a01b0316610938565b6103076109bf565b610307610b9c565b610307600480360360408110156103e357600080fd5b506001600160a01b038135169060200135610c58565b610401610e1b565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043d578181015183820152602001610425565b505050509050019250505060405180910390f35b610208610edf565b61022c610eee565b6103076004803603602081101561047757600080fd5b50356001600160a01b0316610f49565b6103076004803603604081101561049d57600080fd5b506001600160a01b038135169060200135610fa5565b610307600480360360208110156104c957600080fd5b50356001600160a01b0316611169565b6102cd600480360360408110156104ef57600080fd5b506001600160a01b038135169060200135611198565b6102cd6004803603604081101561051b57600080fd5b506001600160a01b038135169060200135611230565b6103076004803603602081101561054757600080fd5b50356001600160a01b0316611387565b6102086113b1565b6103116113c0565b6103116004803603604081101561057d57600080fd5b506001600160a01b03813581169160200135166113c6565b6102cd600480360360608110156105ab57600080fd5b506001600160a01b03813581169160208101359091169060400135611454565b6102086115a8565b6102086115b7565b6102086115cf565b610307600480360360208110156105f957600080fd5b50356115de565b6103116004803603602081101561061657600080fd5b50356001600160a01b03166115eb565b60085461010090046001600160a01b031681565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106c05780601f10610695576101008083540402835291602001916106c0565b820191906000526020600020905b8154815290600101906020018083116106a357829003601f168201915b505050505081565b60006106d2611732565b6003546004805460408051633691826360e21b81526001600160a01b03948516938101849052878516602482015260448101879052905192939091169163da46098c9160648082019260009290919082900301818387803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b50505050610759818585611772565b60019150505b92915050565b61076d6118a2565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60075481565b60006107d1611732565b6107db84836118eb565b6107e6848484611a62565b949350505050565b600060606107fa610e1b565b905060005b81518110156108f657600082828151811061081657fe5b6020908102919091018101516000818152600983526040908190205460085482516321f8a72160e01b81526004810185905292519395506001600160a01b0391821694610100909104909116926321f8a721926024808201939291829003018186803b15801561088557600080fd5b505afa158015610899573d6000803e3d6000fd5b505050506040513d60208110156108af57600080fd5b50516001600160a01b03161415806108dc57506000818152600960205260409020546001600160a01b0316155b156108ed57600093505050506108fd565b506001016107ff565b5060019150505b90565b601281565b60085460ff1681565b6001546001600160a01b031681565b7309aead8e8d286ded8d8c2e8cae4c2d8a6f2dce8d60631b81565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b15801561098b57600080fd5b505afa15801561099f573d6000803e3d6000fd5b505050506040513d60208110156109b557600080fd5b505190505b919050565b60606109c9610e1b565b905060005b8151811015610b985760008282815181106109e557fe5b602002602001015190506000600860019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ab0578181015183820152602001610a98565b50505050905090810190601f168015610add5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610afb57600080fd5b505afa158015610b0f573d6000803e3d6000fd5b505050506040513d6020811015610b2557600080fd5b505160008381526009602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016109ce565b5050565b6001546001600160a01b03163314610be55760405162461bcd60e51b8152600401808060200182810382526035815260200180612ae06035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610c6333611c24565b90506000610c6f611cb0565b6001600160a01b0316336001600160a01b03161490506000610c8f611ccf565b6001600160a01b031663e0aa2797336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610ce457600080fd5b505afa158015610cf8573d6000803e3d6000fd5b505050506040513d6020811015610d0e57600080fd5b505190506000610d1c611ceb565b6001600160a01b031663b38988f7336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d7157600080fd5b505afa158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b505190508380610da85750815b80610db05750805b80610db85750825b610e09576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920696e7465726e616c20636f6e74726163747320616c6c6f77656400604482015290519081900360640190fd5b610e138686611d0a565b505050505050565b606080610e26611e36565b60408051600380825260808201909252919250606091906020820183803883390190505090507021b7b63630ba32b930b626b0b730b3b2b960791b81600081518110610e6e57fe5b6020026020010181815250506b22ba3432b92bb930b83832b960a11b81600181518110610e9757fe5b6020026020010181815250506d57726170706572466163746f727960901b81600281518110610ec257fe5b602002602001018181525050610ed88282611f23565b9250505090565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106c05780601f10610695576101008083540402835291602001916106c0565b610f516118a2565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9181900360200190a150565b6000610fb033611c24565b90506000610fbc611cb0565b6001600160a01b0316336001600160a01b03161490506000610fdc611ccf565b6001600160a01b031663e0aa2797336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561103157600080fd5b505afa158015611045573d6000803e3d6000fd5b505050506040513d602081101561105b57600080fd5b505190506000611069611ceb565b6001600160a01b031663b38988f7336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156110be57600080fd5b505afa1580156110d2573d6000803e3d6000fd5b505050506040513d60208110156110e857600080fd5b5051905083806110f55750815b806110fd5750805b806111055750825b611156576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920696e7465726e616c20636f6e74726163747320616c6c6f77656400604482015290519081900360640190fd5b6111608686611fdf565b50505050505050565b6111716120de565b600480546001600160a01b0319166001600160a01b03831617905561119581612177565b50565b60006111a2611732565b6003546111b8906001600160a01b0316836118eb565b6001600160a01b03831673feefeefeefeefeefeefeefeefeefeefeefeefeef14156111ee576111e783836122bd565b905061075f565b6001600160a01b038316611212576003546111e7906001600160a01b031683611fdf565b600354611229906001600160a01b0316848461243a565b9392505050565b600061123a611732565b600061124461266b565b600354600a54604080516306c5a00b60e21b81526001600160a01b0393841660048201526024810192909252519290911691631b16802c916044808201926060929091908290030181600087803b15801561129e57600080fd5b505af11580156112b2573d6000803e3d6000fd5b505050506040513d60608110156112c857600080fd5b506040015190508281156113555760048054600354604080516370a0823160e01b81526001600160a01b0392831694810194909452519116916370a08231916024808301926020929190829003018186803b15801561132657600080fd5b505afa15801561133a573d6000803e3d6000fd5b505050506040513d602081101561135057600080fd5b505190505b8084116113625783611364565b805b60035490945061137e906001600160a01b0316868661243a565b95945050505050565b61138f612682565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b600a5481565b6004805460408051636eb1769f60e11b81526001600160a01b0386811694820194909452848416602482015290516000939092169163dd62ed3e91604480820192602092909190829003018186803b15801561142157600080fd5b505afa158015611435573d6000803e3d6000fd5b505050506040513d602081101561144b57600080fd5b50519392505050565b600061145e611732565b600061146861266b565b6001600160a01b0316631b16802c86600a546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050606060405180830381600087803b1580156114c957600080fd5b505af11580156114dd573d6000803e3d6000fd5b505050506040513d60608110156114f357600080fd5b506040015190508281156115815760048054604080516370a0823160e01b81526001600160a01b038a811694820194909452905192909116916370a0823191602480820192602092909190829003018186803b15801561155257600080fd5b505afa158015611566573d6000803e3d6000fd5b505050506040513d602081101561157c57600080fd5b505190505b8084101561158f5783611591565b805b935061159e868686611a62565b9695505050505050565b6004546001600160a01b031681565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b6115e66120de565b600755565b6000806115f661266b565b6001600160a01b03166319d5c66584600a546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060606040518083038186803b15801561165557600080fd5b505afa158015611669573d6000803e3d6000fd5b505050506040513d606081101561167f57600080fd5b505160048054604080516370a0823160e01b81526001600160a01b0388811694820194909452905193945060009392909116916370a0823191602480820192602092909190829003018186803b1580156116d857600080fd5b505afa1580156116ec573d6000803e3d6000fd5b505050506040513d602081101561170257600080fd5b5051905080821115611719576000925050506109ba565b611729818363ffffffff6126e116565b925050506109ba565b6002546001600160a01b0316331480159061175857506003546001600160a01b03163314155b1561177057600380546001600160a01b031916331790555b565b60025460408051602080820185905282518083039091018152908201918290526001600160a01b039092169163907dff9791600390806021612b738239602101905060405180910390206117c58861273e565b6117ce8861273e565b60006040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018481526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b8381101561183d578181015183820152602001611825565b50505050905090810190601f16801561186a5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561188e57600080fd5b505af1158015611160573d6000803e3d6000fd5b6000546001600160a01b031633146117705760405162461bcd60e51b815260040180806020018281038252602f815260200180612b44602f913960400191505060405180910390fd5b6118f361266b565b6001600160a01b031663059c29ec83600a546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561195257600080fd5b505afa158015611966573d6000803e3d6000fd5b505050506040513d602081101561197c57600080fd5b5051156119ba5760405162461bcd60e51b8152600401808060200182810382526025815260200180612b946025913960400191505060405180910390fd5b806119c4836115eb565b1015611a015760405162461bcd60e51b815260040180806020018281038252602f815260200180612b15602f913960400191505060405180910390fd5b611a0961274a565b6001600160a01b03166342a28e21600a546040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b158015611a4e57600080fd5b505afa158015610e13573d6000803e3d6000fd5b6004805460035460408051636eb1769f60e11b81526001600160a01b038881169582019590955291841660248301525160009360001993169163dd62ed3e916044808301926020929190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b505114611c19576004805460035460408051636eb1769f60e11b81526001600160a01b0389811695820195909552918416602483018190529051939092169263da46098c9288929091611b98918891879163dd62ed3e916044808301926020929190829003018186803b158015611b6057600080fd5b505afa158015611b74573d6000803e3d6000fd5b505050506040513d6020811015611b8a57600080fd5b50519063ffffffff6126e116565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015611c0057600080fd5b505af1158015611c14573d6000803e3d6000fd5b505050505b6107e684848461243a565b6000611c2e612764565b6001600160a01b0316826001600160a01b03161480611c655750611c5061266b565b6001600160a01b0316826001600160a01b0316145b80611c885750611c73612779565b6001600160a01b0316826001600160a01b0316145b8061075f5750611c9661278d565b6001600160a01b0316826001600160a01b03161492915050565b6000611cca6b22ba3432b92bb930b83832b960a11b6127ab565b905090565b6000611cca6d57726170706572466163746f727960901b6127ab565b6000611cca7021b7b63630ba32b930b626b0b730b3b2b960791b6127ab565b60048054604080516370a0823160e01b81526001600160a01b03868116948201949094529051929091169163b46310f6918591611da291869186916370a08231916024808301926020929190829003018186803b158015611d6a57600080fd5b505afa158015611d7e573d6000803e3d6000fd5b505050506040513d6020811015611d9457600080fd5b50519063ffffffff61288816565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611df157600080fd5b505af1158015611e05573d6000803e3d6000fd5b5050600754611e1d925090508263ffffffff61288816565b600755611e2c600083836128e2565b610b988282612935565b60408051600580825260c082019092526060916020820160a0803883390190505090506b53797374656d53746174757360a01b81600081518110611e7657fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611e9c57fe5b6020026020010181815250506524b9b9bab2b960d11b81600281518110611ebf57fe5b60200260200101818152505066119959541bdbdb60ca1b81600381518110611ee357fe5b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b81600481518110611f1457fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611f53578160200160208202803883390190505b50905060005b8351811015611f9557838181518110611f6e57fe5b6020026020010151828281518110611f8257fe5b6020908102919091010152600101611f59565b5060005b8251811015611fd857828181518110611fae57fe5b6020026020010151828286510181518110611fc557fe5b6020908102919091010152600101611f99565b5092915050565b60048054604080516370a0823160e01b81526001600160a01b038681169482019490945290516000939092169163b46310f691869161204191879186916370a08231916024808301926020929190829003018186803b158015611b6057600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b50506007546120bc925090508363ffffffff6126e116565b6007556120cb836000846128e2565b6120d58383612a76565b50600192915050565b6002546001600160a01b0316331480159061210457506003546001600160a01b03163314155b1561211c57600380546001600160a01b031916331790555b6000546003546001600160a01b03908116911614611770576040805162461bcd60e51b815260206004820152601360248201527227bbb732b91037b7363c90333ab731ba34b7b760691b604482015290519081900360640190fd5b600254604080516001600160a01b038481166020808401919091528351808403820181528385018086527f546f6b656e5374617465557064617465642861646472657373290000000000009052935192839003605a01832063907dff9760e01b8452600160248501819052604485018290526000606486018190526084860181905260a4860181905260c060048701908152875160c48801528751959098169763907dff97979692959394919384938493839260e490920191908a0190808383885b83811015612251578181015183820152602001612239565b50505050905090810190601f16801561227e5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b1580156122a257600080fd5b505af11580156122b6573d6000803e3d6000fd5b5050505050565b600080600a54631bd554d160e21b14156122f1575060035482906122eb906001600160a01b0316858361243a565b506123cb565b6122f961266b565b600354600a54604080516327c319e960e11b81526001600160a01b03938416600482018190526024820152604481019290925260648201879052631bd554d160e21b608483015273feefeefeefeefeefeefeefeefeefeefeefeefeef60a4830152600060c4830181905260e48301819052610104830181905281519490931693634f8633d293610124808501948390030190829087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050506040513d60408110156123c657600080fd5b505190505b6123d3612764565b6001600160a01b03166322bf55ef826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561241857600080fd5b505af115801561242c573d6000803e3d6000fd5b506001979650505050505050565b60006001600160a01b0383161580159061245d57506001600160a01b0383163014155b801561247757506002546001600160a01b03848116911614155b6124c8576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f2074686973206164647265737300604482015290519081900360640190fd5b60048054604080516370a0823160e01b81526001600160a01b03888116948201949094529051929091169163b46310f691879161252891879186916370a08231916024808301926020929190829003018186803b158015611b6057600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b505060048054604080516370a0823160e01b81526001600160a01b0389811694820194909452905192909116935063b46310f6925086916125ef91879186916370a08231916024808301926020929190829003018186803b158015611d6a57600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561263e57600080fd5b505af1158015612652573d6000803e3d6000fd5b505050506126618484846128e2565b5060019392505050565b6000611cca6822bc31b430b733b2b960b91b6127ab565b6002546001600160a01b03163314611770576040805162461bcd60e51b815260206004820152601760248201527f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000604482015290519081900360640190fd5b600082821115612738576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b031690565b6000611cca6b53797374656d53746174757360a01b6127ab565b6000611cca66119959541bdbdb60ca1b6127ab565b6000611cca6524b9b9bab2b960d11b6127ab565b6000611cca73233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b5b600081815260096020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611fd85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561284d578181015183820152602001612835565b50505050905090810190601f16801561287a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082820183811015611229576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60025460408051602080820185905282518083039091018152908201918290526001600160a01b039092169163907dff9791600390806021612bb98239602101905060405180910390206117c58861273e565b60028054604080516020808201869052825180830390910181528183018084527f49737375656428616464726573732c75696e7432353629000000000000000000905291519081900360570190206001600160a01b039092169263907dff979261299e8761273e565b6000806040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018460001b81526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b83811015612a115781810151838201526020016129f9565b50505050905090810190601f168015612a3e5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b158015612a6257600080fd5b505af1158015610e13573d6000803e3d6000fd5b60028054604080516020808201869052825180830390910181528183018084527f4275726e656428616464726573732c75696e7432353629000000000000000000905291519081900360570190206001600160a01b039092169263907dff979261299e8761273e56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970496e73756666696369656e742062616c616e636520616674657220616e7920736574746c656d656e74206f77696e674f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e417070726f76616c28616464726573732c616464726573732c75696e743235362943616e6e6f74207472616e7366657220647572696e672077616974696e6720706572696f645472616e7366657228616464726573732c616464726573732c75696e7432353629a265627a7a7231582088db3f3778969700e5a3312bb200e0fccd5a713884da2546fd2f55653583ccc064736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						},
						{
							"internalType": "string",
							"name": "_tokenName",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "_tokenSymbol",
							"type": "string"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Burned",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Issued",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTokenState",
							"type": "address"
						}
					],
					"name": "TokenStateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECIMALS",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_ADDRESS",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burn",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currencyKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						}
					],
					"name": "setTokenState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setTotalSupply",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tokenState",
					"outputs": [
						{
							"internalType": "contract TokenState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFromAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "transferableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x03fedf84e684167219823f445df12ea5aec548fb59e21b63a512d7d08320b785",
				"urls": [
					"bzz-raw://e0aaf41845780a370591ae2c91f863b38cc34129ae0b4adc396153b4ed8b0748",
					"dweb:/ipfs/QmTLtT8YDfE74F6b5orbGR3q2dKPUWDKkFjs89uqHyhBA3"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"MultiCollateralSynth.sol": "MultiCollateralSynth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"MultiCollateralSynth.sol": {
						"keccak256": "0x03fedf84e684167219823f445df12ea5aec548fb59e21b63a512d7d08320b785",
						"urls": [
							"bzz-raw://e0aaf41845780a370591ae2c91f863b38cc34129ae0b4adc396153b4ed8b0748",
							"dweb:/ipfs/QmTLtT8YDfE74F6b5orbGR3q2dKPUWDKkFjs89uqHyhBA3"
						]
					}
				},
				"version": 1
			}
		},
		"Depot": {
			"bytecode": "60806040819052630241ebdb60e61b815273__$5b1a0139898c1861867d128118276f8f0f$__9063907af6c09060849060209060048186803b1580156200004557600080fd5b505af41580156200005a573d6000803e3d6000fd5b505050506040513d60208110156200007157600080fd5b5051603202600c5560408051630241ebdb60e61b8152905173__$5b1a0139898c1861867d128118276f8f0f$__9163907af6c0916004808301926020929190829003018186803b158015620000c557600080fd5b505af4158015620000da573d6000803e3d6000fd5b505050506040513d6020811015620000f157600080fd5b50516101f402600d553480156200010757600080fd5b50604051620033b7380380620033b7833981810160405260608110156200012d57600080fd5b508051602082015160409092015190919080836001600160a01b0381166200019c576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b031662000247576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6001600455600580546001600160a01b039283166001600160a01b03199182161790915560078054949092169316929092179091555050613129806200028e6000396000f3fe6080604052600436106101f95760003560e01c8063741853601161010d578063aab483d6116100a0578063c6abb7c71161006f578063c6abb7c71461076e578063c6f99c0b146107a1578063dc8fa6c2146107cb578063e77e9a50146107f5578063fd12167f14610818576101f9565b8063aab483d6146106b8578063b02c43d0146106e2578063b1338cc41461072f578063bb7df17214610744576101f9565b806381b797dc116100dc57806381b797dc14610614578063899ffef4146106295780638da5cb5b1461068e57806391b4ded9146106a3576101f9565b8063741853601461059057806376c27f8b146105a557806379ba5097146105d55780637abad8e3146105ea576101f9565b80632af64bd31161019057806353a47bb71161015f57806353a47bb71461051657806357ecb3ae1461052b5780635c975abb1461053357806364e39b87146105485780636d5ab4a91461057b576101f9565b80632af64bd3146104845780632b02104a146104ad5780634d0387fb146104d75780635118fdbd146104ec576101f9565b80631627540c116101cc5780631627540c1461040657806316c38b3c1461043b5780631f930115146104675780632194f3a21461046f576101f9565b806304f3bcec14610367578063080c279a146103985780630c928bc2146103bf5780630c928f05146103dc575b60048054600101908190556208aa8960eb1b61021361082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561025657600080fd5b505afa15801561026a573d6000803e3d6000fd5b505050506040513d602081101561028057600080fd5b5051156102c2576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b60035460ff16156103045760405162461bcd60e51b815260040180806020018281038252603c815260200180613094603c913960400191505060405180910390fd5b61030c61084e565b50506004548114610364576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b50005b34801561037357600080fd5b5061037c61103e565b604080516001600160a01b039092168252519081900360200190f35b3480156103a457600080fd5b506103ad61104d565b60408051918252519081900360200190f35b6103ad600480360360208110156103d557600080fd5b5035611053565b3480156103e857600080fd5b506103ad600480360360208110156103ff57600080fd5b503561121e565b34801561041257600080fd5b506104396004803603602081101561042957600080fd5b50356001600160a01b03166112b3565b005b34801561044757600080fd5b506104396004803603602081101561045e57600080fd5b5035151561130f565b6103ad611389565b34801561047b57600080fd5b5061037c6114fc565b34801561049057600080fd5b5061049961150b565b604080519115158252519081900360200190f35b3480156104b957600080fd5b506103ad600480360360208110156104d057600080fd5b5035611615565b3480156104e357600080fd5b506103ad6116a4565b3480156104f857600080fd5b506103ad6004803603602081101561050f57600080fd5b50356116aa565b34801561052257600080fd5b5061037c6117b5565b6103ad6117c4565b34801561053f57600080fd5b50610499611993565b34801561055457600080fd5b506104396004803603602081101561056b57600080fd5b50356001600160a01b031661199c565b34801561058757600080fd5b506103ad6119fe565b34801561059c57600080fd5b50610439611a04565b3480156105b157600080fd5b506103ad600480360360408110156105c857600080fd5b5080359060200135611bcc565b3480156105e157600080fd5b50610439611d99565b3480156105f657600080fd5b506104396004803603602081101561060d57600080fd5b5035611e55565b34801561062057600080fd5b50610439611eed565b34801561063557600080fd5b5061063e612127565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561067a578181015183820152602001610662565b505050509050019250505060405180910390f35b34801561069a57600080fd5b5061037c6121be565b3480156106af57600080fd5b506103ad6121cd565b3480156106c457600080fd5b50610439600480360360208110156106db57600080fd5b50356121d3565b3480156106ee57600080fd5b5061070c6004803603602081101561070557600080fd5b50356122c3565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561073b57600080fd5b506103ad6122e8565b34801561075057600080fd5b506104396004803603602081101561076757600080fd5b50356122ee565b34801561077a57600080fd5b506103ad6004803603602081101561079157600080fd5b50356001600160a01b0316612331565b3480156107ad57600080fd5b506103ad600480360360208110156107c457600080fd5b5035612343565b3480156107d757600080fd5b50610439600480360360208110156107ee57600080fd5b50356123de565b6103ad6004803603604081101561080b57600080fd5b50803590602001356125a2565b34801561082457600080fd5b506103ad6128e7565b60006108486c45786368616e6765526174657360981b6128ed565b90505b90565b6000600d543411156108915760405162461bcd60e51b815260040180806020018281038252602581526020018061301f6025913960400191505060405180910390fd5b60008061092161089f61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156108e857600080fd5b505afa1580156108fc573d6000803e3d6000fd5b505050506040513d602081101561091257600080fd5b5051349063ffffffff6129d116565b60095490915081905b60008211801561093b5750600a5481105b15610ee957610948612f0b565b50600081815260086020908152604091829020825180840190935280546001600160a01b03168084526001909101549183019190915261099e5760095461099690600163ffffffff6129fb16565b600955610ee0565b8281602001511115610c425760208101516000906109c2908563ffffffff612a5516565b60408051808201825284516001600160a01b039081168252602080830185815260008981526008909252939020915182546001600160a01b03191691161781559051600190910155600b54909150610a1a9085612a55565b600b55610aaa610a2861082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b5051859063ffffffff612ab216565b82516040519197506001600160a01b03169087156108fc029088906000818181858888f19350505050610b58576007546040516001600160a01b039091169087156108fc029088906000818181858888f19350505050158015610b11573d6000803e3d6000fd5b5081516040805188815290516001600160a01b03909216917ff2435d3901399daa085f8b58d2409fff9b83ce4ca97c1f144b532f5a08b1c96c9181900360200190a2610ba4565b81516040805188815260208101879052815186936001600160a01b03169233927f6d957e9e816107f67cb7118461e3c259e96896f80223c9af2972596c2fdd401c929081900390910190a45b610bac612adc565b6001600160a01b031663a9059cbb33866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b505050506040513d6020811015610c3557600080fd5b5060009450610ee0915050565b82816020015111610ee057600082815260086020526040812080546001600160a01b0319168155600190810191909155600954610c849163ffffffff6129fb16565b6009556020810151600b54610c9e9163ffffffff612a5516565b600b55610d32610cac61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610cf557600080fd5b505afa158015610d09573d6000803e3d6000fd5b505050506040513d6020811015610d1f57600080fd5b505160208301519063ffffffff612ab216565b81516040519196506001600160a01b03169086156108fc029087906000818181858888f19350505050610de0576007546040516001600160a01b039091169086156108fc029087906000818181858888f19350505050158015610d99573d6000803e3d6000fd5b5080516040805187815290516001600160a01b03909216917ff2435d3901399daa085f8b58d2409fff9b83ce4ca97c1f144b532f5a08b1c96c9181900360200190a2610e30565b80516020808301516040805189815292830191909152805185936001600160a01b03169233927f6d957e9e816107f67cb7118461e3c259e96896f80223c9af2972596c2fdd401c92918290030190a45b610e38612adc565b6001600160a01b031663a9059cbb3383602001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e9b57600080fd5b505af1158015610eaf573d6000803e3d6000fd5b505050506040513d6020811015610ec557600080fd5b50506020810151610edd90849063ffffffff612a5516565b92505b5060010161092a565b508015610fab57336108fc610f81610eff61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610f4857600080fd5b505afa158015610f5c573d6000803e3d6000fd5b505050506040513d6020811015610f7257600080fd5b5051849063ffffffff612ab216565b6040518115909202916000818181858888f19350505050158015610fa9573d6000803e3d6000fd5b505b6000610fbd838363ffffffff612a5516565b9050801561103657604080513460208201526060810183905260808082526003908201526208aa8960eb1b60a082015260c0818301819052600490820152631bd554d160e21b60e082015290517fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd918190036101000190a15b935050505090565b6005546001600160a01b031681565b600c5481565b60006208aa8960eb1b61106461082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156110a757600080fd5b505afa1580156110bb573d6000803e3d6000fd5b505050506040513d60208110156110d157600080fd5b505115611113576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b60035460ff16156111555760405162461bcd60e51b815260040180806020018281038252603c815260200180613094603c913960400191505060405180910390fd5b61115d61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156111a657600080fd5b505afa1580156111ba573d6000803e3d6000fd5b505050506040513d60208110156111d057600080fd5b5051831461120f5760405162461bcd60e51b81526004018080602001828103825260258152602001806130d06025913960400191505060405180910390fd5b61121761084e565b9392505050565b60006112ad61122b61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561127457600080fd5b505afa158015611288573d6000803e3d6000fd5b505050506040513d602081101561129e57600080fd5b5051839063ffffffff6129d116565b92915050565b6112bb612af3565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b611317612af3565b60035460ff161515811515141561132d57611386565b6003805460ff1916821515179081905560ff161561134a57426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60048054600101908190556000906208aa8960eb1b6113a661082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156113e957600080fd5b505afa1580156113fd573d6000803e3d6000fd5b505050506040513d602081101561141357600080fd5b505115611455576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b60035460ff16156114975760405162461bcd60e51b815260040180806020018281038252603c815260200180613094603c913960400191505060405180910390fd5b61149f61084e565b92505060045481146114f8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5090565b6007546001600160a01b031681565b60006060611517612127565b905060005b815181101561160c57600082828151811061153357fe5b6020908102919091018101516000818152600683526040908190205460055482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561159b57600080fd5b505afa1580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b50516001600160a01b03161415806115f257506000818152600660205260409020546001600160a01b0316155b15611603576000935050505061084b565b5060010161151c565b50600191505090565b60006112ad61162261082d565b6001600160a01b031663ac82f608624f4b5360e81b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561166b57600080fd5b505afa15801561167f573d6000803e3d6000fd5b505050506040513d602081101561169557600080fd5b5051839063ffffffff612ab216565b600b5481565b6000624f4b5360e81b6116bb61082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156116fe57600080fd5b505afa158015611712573d6000803e3d6000fd5b505050506040513d602081101561172857600080fd5b50511561176a576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b60035460ff16156117ac5760405162461bcd60e51b815260040180806020018281038252603c815260200180613094603c913960400191505060405180910390fd5b61121783612b3e565b6001546001600160a01b031681565b6000624f4b5360e81b6117d561082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561181857600080fd5b505afa15801561182c573d6000803e3d6000fd5b505050506040513d602081101561184257600080fd5b505115611884576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b6208aa8960eb1b61189361082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156118d657600080fd5b505afa1580156118ea573d6000803e3d6000fd5b505050506040513d602081101561190057600080fd5b505115611942576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b60035460ff16156119845760405162461bcd60e51b815260040180806020018281038252603c815260200180613094603c913960400191505060405180910390fd5b61198c612ce8565b9250505090565b60035460ff1681565b6119a4612af3565b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4deb077bf9c4bc824cc2c989e01a5e53b0a4ecc44c5039d46abc9ffc88f8a050916020908290030190a150565b60095481565b6060611a0e612127565b905060005b8151811015611bc8576000828281518110611a2a57fe5b602090810291909101810151600554604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015611ae0578181015183820152602001611ac8565b50505050905090810190601f168015611b0d5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015611b2b57600080fd5b505afa158015611b3f573d6000803e3d6000fd5b505050506040513d6020811015611b5557600080fd5b505160008381526006602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101611a13565b5050565b6000624f4b5360e81b611bdd61082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611c2057600080fd5b505afa158015611c34573d6000803e3d6000fd5b505050506040513d6020811015611c4a57600080fd5b505115611c8c576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b60035460ff1615611cce5760405162461bcd60e51b815260040180806020018281038252603c815260200180613094603c913960400191505060405180910390fd5b611cd661082d565b6001600160a01b031663ac82f608624f4b5360e81b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611d1f57600080fd5b505afa158015611d33573d6000803e3d6000fd5b505050506040513d6020811015611d4957600080fd5b50518314611d885760405162461bcd60e51b81526004018080602001828103825260258152602001806130d06025913960400191505060405180910390fd5b611d9184612b3e565b949350505050565b6001546001600160a01b03163314611de25760405162461bcd60e51b8152600401808060200182810382526035815260200180612f4e6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b611e5d612af3565b611e65612e35565b600080546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018690529051939091169263a9059cbb92604480840193602093929083900390910190829087803b158015611ebe57600080fd5b505af1158015611ed2573d6000803e3d6000fd5b505050506040513d6020811015611ee857600080fd5b505050565b6009546000905b600a54811015611fd057611f06612f0b565b50600081815260086020908152604091829020825180840190935280546001600160a01b031680845260019091015491830191909152331415611fc7576020810151611f5990849063ffffffff6129fb16565b600083815260086020908152604080832080546001600160a01b0319168155600101929092558351848201518351908152925193965085936001600160a01b03909116927f3aa2b18eace5e5727a4ab525921b9b0a1ca1afdb0f96b599e3ab2d76cb5e7f7292908290030190a35b50600101611ef4565b50600b54611fe4908263ffffffff612a5516565b600b55336000908152600e602052604090205461200890829063ffffffff6129fb16565b336000908152600e60205260408120559050806120565760405162461bcd60e51b8152600401808060200182810382526021815260200180612fae6021913960400191505060405180910390fd5b61205e612adc565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156120bd57600080fd5b505af11580156120d1573d6000803e3d6000fd5b505050506040513d60208110156120e757600080fd5b5050604080513381526020810183905281517faf6ec623f558c7b3527ff6c9c09432c7d81a3d38bd2e1eaaee2efe7aac23c28b929181900390910190a150565b604080516003808252608082019092526060916020820183803883390190505090506814de5b9d1a1bd554d160ba1b8160008151811061216357fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061218d57fe5b602002602001018181525050644f696b6f7360d81b816002815181106121af57fe5b60200260200101818152505090565b6000546001600160a01b031681565b60025481565b6121db612af3565b73__$5b1a0139898c1861867d128118276f8f0f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561221f57600080fd5b505af4158015612233573d6000803e3d6000fd5b505050506040513d602081101561224957600080fd5b505181116122885760405162461bcd60e51b81526004018080602001828103825260308152602001806130646030913960400191505060405180910390fd5b600c8190556040805182815290517fa39eacd162ee82c70b2b030a1bc8fe89adcccc61122fad4821a8772dbcc542679181900360200190a150565b600860205260009081526040902080546001909101546001600160a01b039091169082565b600d5481565b6122f6612af3565b600d8190556040805182815290517fdc2be810a133e01cb21a41082f15b2863d96f9fe79d1f84d7e2d5b810c5c82439181900360200190a150565b600e6020526000908152604090205481565b6000806123d361235161082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561239a57600080fd5b505afa1580156123ae573d6000803e3d6000fd5b505050506040513d60208110156123c457600080fd5b5051849063ffffffff6129d116565b905061121781611615565b6123e6612adc565b604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b505050506040513d602081101561246857600080fd5b5050600c548110156124f157336000908152600e6020526040902054612494908263ffffffff6129fb16565b336000818152600e602090815260409182902093909355600c5481519283529282018490528181019290925290517fbc3a12638d840d60760c64b39c73985a6498cf6eb8176f124995b0e07236cbd29181900360600190a1611386565b604080518082018252338082526020808301858152600a8054600090815260088452869020945185546001600160a01b0319166001600160a01b039091161785559051600190940193909355915483518581529351909391927fd9acabe6e09d178728ba5c366661c5be0621b4770f216305b059ec175b37e0b4928290030190a3600a5461258690600163ffffffff6129fb16565b600a55600b5461259c908263ffffffff6129fb16565b600b5550565b6000624f4b5360e81b6125b361082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156125f657600080fd5b505afa15801561260a573d6000803e3d6000fd5b505050506040513d602081101561262057600080fd5b505115612662576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b6208aa8960eb1b61267161082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156126b457600080fd5b505afa1580156126c8573d6000803e3d6000fd5b505050506040513d60208110156126de57600080fd5b505115612720576040805162461bcd60e51b815260206004820152601b6024820152600080516020613044833981519152604482015290519081900360640190fd5b60035460ff16156127625760405162461bcd60e51b815260040180806020018281038252603c815260200180613094603c913960400191505060405180910390fd5b61276a61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156127b357600080fd5b505afa1580156127c7573d6000803e3d6000fd5b505050506040513d60208110156127dd57600080fd5b5051851461281c5760405162461bcd60e51b815260040180806020018281038252602b815260200180612f23602b913960400191505060405180910390fd5b61282461082d565b6001600160a01b031663ac82f608624f4b5360e81b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561286d57600080fd5b505afa158015612881573d6000803e3d6000fd5b505050506040513d602081101561289757600080fd5b505184146128d65760405162461bcd60e51b815260040180806020018281038252602b815260200180612f83602b913960400191505060405180910390fd5b6128de612ce8565b95945050505050565b600a5481565b600081815260066020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816129ca5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561298f578181015183820152602001612977565b50505050905090810190601f1680156129bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b6000670de0b6b3a76400006129ec848463ffffffff612e4816565b816129f357fe5b049392505050565b600082820183811015611217576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115612aac576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061121782612ad085670de0b6b3a764000063ffffffff612e4816565b9063ffffffff612ea116565b60006108486814de5b9d1a1bd554d160ba1b6128ed565b6000546001600160a01b03163314612b3c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612fcf602f913960400191505060405180910390fd5b565b600080612b4a83611615565b9050612b54612adc565b600754604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101879052905192909116916323b872dd916064808201926020929091908290030181600087803b158015612bb157600080fd5b505af1158015612bc5573d6000803e3d6000fd5b505050506040513d6020811015612bdb57600080fd5b50612be69050612e35565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612c4557600080fd5b505af1158015612c59573d6000803e3d6000fd5b505050506040513d6020811015612c6f57600080fd5b50506040805160208101859052606081018390526080808252600490820152631bd554d160e21b60a082015260c0818301819052600390820152624f4b5360e81b60e082015290517fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd918190036101000190a192915050565b600080612cf434612343565b6007546040519192506001600160a01b0316903480156108fc02916000818181858888f19350505050158015612d2e573d6000803e3d6000fd5b50612d37612e35565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612d9657600080fd5b505af1158015612daa573d6000803e3d6000fd5b505050506040513d6020811015612dc057600080fd5b50506040805134602082015260608101839052608080825260039082018190526208aa8960eb1b60a083015260c0828401819052820152624f4b5360e81b60e082015290517fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd918190036101000190a1905090565b6000610848644f696b6f7360d81b6128ed565b600082612e57575060006112ad565b82820282848281612e6457fe5b04146112175760405162461bcd60e51b8152600401808060200182810382526021815260200180612ffe6021913960400191505060405180910390fd5b6000808211612ef7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481612f0257fe5b04949350505050565b60408051808201909152600080825260208201529056fe47756172616e74656564206574686572207261746520776f756c64206e6f74206265207265636569766564596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697047756172616e74656564206f696b6f73207261746520776f756c64206e6f74206265207265636569766564596f752068617665206e6f206465706f7369747320746f2077697468647261772e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745544820616d6f756e742061626f7665206d61784574685075726368617365206c696d69745261746520696e76616c6964206f72206e6f7420612073796e746800000000004d696e696d756d206465706f73697420616d6f756e74206d7573742062652067726561746572207468616e20554e49545468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e74726163742069732070617573656447756172616e74656564207261746520776f756c64206e6f74206265207265636569766564a265627a7a723158205f0aedacbcb85b8173c325defae5ef5277e60b5985a0dd392bea587f90a3ec0b64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address payable",
							"name": "_fundsWallet",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "fromAddress",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromETHAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "depositIndex",
							"type": "uint256"
						}
					],
					"name": "ClearedDeposit",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "string",
							"name": "fromCurrency",
							"type": "string"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "string",
							"name": "toCurrency",
							"type": "string"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						}
					],
					"name": "Exchange",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newFundsWallet",
							"type": "address"
						}
					],
					"name": "FundsWalletUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "MaxEthPurchaseUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "MinimumDepositAmountUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "receiver",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "NonPayableContract",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "depositIndex",
							"type": "uint256"
						}
					],
					"name": "SynthDeposit",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minimum",
							"type": "uint256"
						}
					],
					"name": "SynthDepositNotAccepted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "depositIndex",
							"type": "uint256"
						}
					],
					"name": "SynthDepositRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "SynthWithdrawal",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "depositEndIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "depositStartIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "depositSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "deposits",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "user",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "exchangeEtherForOKS",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "guaranteedEtherRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "guaranteedOikosRate",
							"type": "uint256"
						}
					],
					"name": "exchangeEtherForOKSAtRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "exchangeEtherForSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "guaranteedRate",
							"type": "uint256"
						}
					],
					"name": "exchangeEtherForSynthsAtRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "synthAmount",
							"type": "uint256"
						}
					],
					"name": "exchangeSynthsForOKS",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "synthAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "guaranteedRate",
							"type": "uint256"
						}
					],
					"name": "exchangeSynthsForOKSAtRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "fundsWallet",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxEthPurchase",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumDepositAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "oikosReceivedForEther",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "oikosReceivedForSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_fundsWallet",
							"type": "address"
						}
					],
					"name": "setFundsWallet",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxEthPurchase",
							"type": "uint256"
						}
					],
					"name": "setMaxEthPurchase",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "setMinimumDepositAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "smallDeposits",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "synthsReceivedForEther",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSellableDeposits",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "withdrawMyDepositedSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdrawOikos",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x8d6fa57351304a48a3183fc46786016831ccef19a11963a043761ab14797f81c",
				"urls": [
					"bzz-raw://ada80a28790d99f9d8637f6ca5937dbe32606b3349ed01e932d7cfbbb876b821",
					"dweb:/ipfs/QmNSg8JJsaTA4zoDCtEXM9amzBMXAh4NpMe5Wm3gooH9jN"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Depot.sol": "Depot"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Depot.sol": {
						"keccak256": "0x8d6fa57351304a48a3183fc46786016831ccef19a11963a043761ab14797f81c",
						"urls": [
							"bzz-raw://ada80a28790d99f9d8637f6ca5937dbe32606b3349ed01e932d7cfbbb876b821",
							"dweb:/ipfs/QmNSg8JJsaTA4zoDCtEXM9amzBMXAh4NpMe5Wm3gooH9jN"
						]
					}
				},
				"version": 1
			}
		},
		"EtherWrapper": {
			"bytecode": "608060405260006006556000600755600060085534801561001f57600080fd5b506040516123403803806123408339818101604052606081101561004257600080fd5b50805160208201516040909201519091908180846001600160a01b0381166100b1576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b031661015b576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b60038054610100600160a81b0319166101006001600160a01b0393841602179055600580546001600160a01b03191693909116929092179091555061219791508190506101a96000396000f3fe6080604052600436106101815760003560e01c80635c975abb116100d157806379ba50971161008a57806391b4ded91161006457806391b4ded9146104a4578063a0712d68146104b9578063bb57ad20146104e3578063ee5f3f5c146104f857610181565b806379ba509714610415578063899ffef41461042a5780638da5cb5b1461048f57610181565b80635c975abb146103825780635cfc1a511461039757806368eb5e4f146103ac5780636ad88269146103c157806374185360146103eb57806375d920a91461040057610181565b806318819a311161013e57806342966c681161011857806342966c6814610304578063509bf42a1461032e57806353a47bb7146103435780635c095e541461035857610181565b806318819a31146102b15780632af64bd3146102c65780633fc8cef3146102ef57610181565b806302814b86146101ce57806304f3bcec146101f55780630902f1ac146102265780631627540c1461023b57806316893bcd1461027057806316c38b3c14610285575b6040805162461bcd60e51b815260206004820152601d60248201527f46616c6c6261636b2064697361626c65642c20757365206d696e742829000000604482015290519081900360640190fd5b3480156101da57600080fd5b506101e361050d565b60408051918252519081900360200190f35b34801561020157600080fd5b5061020a61051d565b604080516001600160a01b039092168252519081900360200190f35b34801561023257600080fd5b506101e3610531565b34801561024757600080fd5b5061026e6004803603602081101561025e57600080fd5b50356001600160a01b03166105ad565b005b34801561027c57600080fd5b506101e3610609565b34801561029157600080fd5b5061026e600480360360208110156102a857600080fd5b5035151561060f565b3480156102bd57600080fd5b506101e3610689565b3480156102d257600080fd5b506102db610693565b604080519115158252519081900360200190f35b3480156102fb57600080fd5b5061020a6107a3565b34801561031057600080fd5b5061026e6004803603602081101561032757600080fd5b50356107b2565b34801561033a57600080fd5b506101e3610918565b34801561034f57600080fd5b5061020a610922565b34801561036457600080fd5b506101e36004803603602081101561037b57600080fd5b5035610931565b34801561038e57600080fd5b506102db610951565b3480156103a357600080fd5b506101e361095a565b3480156103b857600080fd5b506101e361099d565b3480156103cd57600080fd5b506101e3600480360360208110156103e457600080fd5b50356109a3565b3480156103f757600080fd5b5061026e6109b0565b34801561040c57600080fd5b506101e3610b8d565b34801561042157600080fd5b5061026e610b93565b34801561043657600080fd5b5061043f610c4f565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047b578181015183820152602001610463565b505050509050019250505060405180910390f35b34801561049b57600080fd5b5061020a610d4f565b3480156104b057600080fd5b506101e3610d5e565b3480156104c557600080fd5b5061026e600480360360208110156104dc57600080fd5b5035610d64565b3480156104ef57600080fd5b5061026e610f9d565b34801561050457600080fd5b506101e3611395565b600061051761141c565b90505b90565b60035461010090046001600160a01b031681565b600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561057c57600080fd5b505afa158015610590573d6000803e3d6000fd5b505050506040513d60208110156105a657600080fd5b5051905090565b6105b5611497565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60075481565b610617611497565b60035460ff161515811515141561062d57610686565b6003805460ff1916821515179081905560ff161561064a57426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60006105176114e2565b6000606061069f610c4f565b905060005b815181101561079a5760008282815181106106bb57fe5b602090810291909101810151600081815260048084526040918290205460035483516321f8a72160e01b815292830185905292519395506001600160a01b039081169461010090930416926321f8a72192602480840193919291829003018186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d602081101561075357600080fd5b50516001600160a01b031614158061078057506000818152600460205260409020546001600160a01b0316155b15610791576000935050505061051a565b506001016106a4565b50600191505090565b6005546001600160a01b031690565b60035460ff16156107f45760405162461bcd60e51b815260040180806020018281038252603c8152602001806120c9603c913960400191505060405180910390fd5b60006107fe610531565b90506000811161083f5760405162461bcd60e51b815260040180806020018281038252603881526020018061212b6038913960400191505060405180910390fd5b60006108d86108cb61084f610918565b73__$d4f9e2232a762468832913f371b83514a4$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561089357600080fd5b505af41580156108a7573d6000803e3d6000fd5b505050506040513d60208110156108bd57600080fd5b50519063ffffffff61156816565b849063ffffffff6115c916565b9050818110156108f1576108ec81846115de565b610913565b6109138261090e610901856109a3565b859063ffffffff61156816565b6115de565b505050565b600061051761199b565b6001546001600160a01b031681565b600061094b61093e610689565b839063ffffffff611a2116565b92915050565b60035460ff1681565b600080610965610531565b905061096f61050d565b811061097f57600091505061051a565b6109978161098b61050d565b9063ffffffff611a3616565b91505090565b60065481565b600061094b61093e610918565b60606109ba610c4f565b905060005b8151811015610b895760008282815181106109d657fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610aa1578181015183820152602001610a89565b50505050905090810190601f168015610ace5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610aec57600080fd5b505afa158015610b00573d6000803e3d6000fd5b505050506040513d6020811015610b1657600080fd5b505160008381526004602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016109bf565b5050565b60085481565b6001546001600160a01b03163314610bdc5760405162461bcd60e51b81526004018080602001828103825260358152602001806120446035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610c5a611a93565b60408051600580825260c08201909252919250606091906020820160a080388339019050509050680a6f2dce8d0de8aa8960bb1b81600081518110610c9b57fe5b6020026020010181815250506814de5b9d1a1bd554d160ba1b81600181518110610cc157fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110610ceb57fe5b6020026020010181815250506524b9b9bab2b960d11b81600381518110610d0e57fe5b60200260200101818152505066119959541bdbdb60ca1b81600481518110610d3257fe5b602002602001018181525050610d488282611ae4565b9250505090565b6000546001600160a01b031681565b60025481565b60035460ff1615610da65760405162461bcd60e51b815260040180806020018281038252603c8152602001806120c9603c913960400191505060405180910390fd5b60055460408051636eb1769f60e11b815233600482015230602482015290516001600160a01b039092169163dd62ed3e91604480820192602092909190829003018186803b158015610df757600080fd5b505afa158015610e0b573d6000803e3d6000fd5b505050506040513d6020811015610e2157600080fd5b5051811115610e73576040805162461bcd60e51b8152602060048201526019602482015278082d8d8deeec2dcc6ca40dcdee840d0d2ced040cadcdeeaced603b1b604482015290519081900360640190fd5b600554604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610ebe57600080fd5b505afa158015610ed2573d6000803e3d6000fd5b505050506040513d6020811015610ee857600080fd5b5051811115610f33576040805162461bcd60e51b815260206004820152601260248201527142616c616e636520697320746f6f206c6f7760701b604482015290519081900360640190fd5b6000610f3d61095a565b905060008111610f7e5760405162461bcd60e51b81526004018080602001828103825260268152602001806121056026913960400191505060405180910390fd5b80821015610f9457610f8f82611ba0565b610b89565b610b8981611ba0565b610fa5611dbc565b6001600160a01b0316632528f0fe630e68aa8960e31b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610fef57600080fd5b505afa158015611003573d6000803e3d6000fd5b505050506040513d602081101561101957600080fd5b50511561106d576040805162461bcd60e51b815260206004820152601860248201527f43757272656e6379207261746520697320696e76616c69640000000000000000604482015290519081900360640190fd5b6000611077611dbc565b6001600160a01b031663654a60ac630e68aa8960e31b600854631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156110da57600080fd5b505afa1580156110ee573d6000803e3d6000fd5b505050506040513d602081101561110457600080fd5b50519050611110611dd7565b6001600160a01b0316639dc29fac306008546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561117157600080fd5b505af1158015611185573d6000803e3d6000fd5b50505050600854600654106111ae576008546006546111a99163ffffffff611a3616565b6111b1565b60005b6006556111bc611dee565b6001600160a01b03166332608039631bd554d160e21b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561120657600080fd5b505afa15801561121a573d6000803e3d6000fd5b505050506040513d602081101561123057600080fd5b50516001600160a01b031663867904b4611248611e02565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561128057600080fd5b505afa158015611294573d6000803e3d6000fd5b505050506040513d60208110156112aa57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820185905251604480830192600092919082900301818387803b1580156112f957600080fd5b505af115801561130d573d6000803e3d6000fd5b5050600754611325925090508263ffffffff61156816565b600755611330611e02565b6001600160a01b03166322bf55ef826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50506000600855505050565b60006105176007546113a5611dbc565b6001600160a01b031663654a60ac630e68aa8960e31b600654631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561140857600080fd5b505afa1580156108a7573d6000803e3d6000fd5b6000611426611e17565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561057c57600080fd5b6000546001600160a01b031633146114e05760405162461bcd60e51b815260040180806020018281038252602f815260200180612079602f913960400191505060405180910390fd5b565b60006114ec611e17565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6574686572577261707065724d696e74466565526174650000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561057c57600080fd5b6000828201838110156115c2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006115c28383670de0b6b3a7640000611e34565b60006115f0828463ffffffff611a3616565b90506115fa611dd7565b60408051636eb1769f60e11b815233600482015230602482015290516001600160a01b03929092169163dd62ed3e91604480820192602092909190829003018186803b15801561164957600080fd5b505afa15801561165d573d6000803e3d6000fd5b505050506040513d602081101561167357600080fd5b50518211156116c5576040805162461bcd60e51b8152602060048201526019602482015278082d8d8deeec2dcc6ca40dcdee840d0d2ced040cadcdeeaced603b1b604482015290519081900360640190fd5b6116cd611dd7565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561172257600080fd5b505afa158015611736573d6000803e3d6000fd5b505050506040513d602081101561174c57600080fd5b5051821115611797576040805162461bcd60e51b815260206004820152601260248201527142616c616e636520697320746f6f206c6f7760701b604482015290519081900360640190fd5b61179f611dd7565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117fe57600080fd5b505af1158015611812573d6000803e3d6000fd5b50505050826006541061183757600654611832908463ffffffff611a3616565b61183a565b60005b600655611845611dd7565b6001600160a01b031663867904b430836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156118a457600080fd5b505af11580156118b8573d6000803e3d6000fd5b50506008546118d0925090508263ffffffff61156816565b6008556005546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561192757600080fd5b505af115801561193b573d6000803e3d6000fd5b505050506040513d602081101561195157600080fd5b50506040805184815260208101839052808201849052905133917f4c60206a5c1de41f3376d1d60f0949d96cb682033c90b1c2d9d9a62d4c4120c0919081900360600190a2505050565b60006119a5611e17565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6574686572577261707065724275726e466565526174650000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561057c57600080fd5b60006115c28383670de0b6b3a7640000611e78565b600082821115611a8d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611ad557fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611b14578160200160208202803883390190505b50905060005b8351811015611b5657838181518110611b2f57fe5b6020026020010151828281518110611b4357fe5b6020908102919091010152600101611b1a565b5060005b8251811015611b9957828181518110611b6f57fe5b6020026020010151828286510181518110611b8657fe5b6020908102919091010152600101611b5a565b5092915050565b6000611bab82610931565b90506000611bbf838363ffffffff611a3616565b600554604080516323b872dd60e01b81523360048201523060248201526044810187905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b158015611c1c57600080fd5b505af1158015611c30573d6000803e3d6000fd5b505050506040513d6020811015611c4657600080fd5b50611c519050611dd7565b6001600160a01b031663867904b433836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b50505050611cd0611dd7565b6001600160a01b031663867904b430846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611d2f57600080fd5b505af1158015611d43573d6000803e3d6000fd5b5050600854611d5b925090508363ffffffff61156816565b600855600654611d71908463ffffffff61156816565b6006556040805182815260208101849052808201859052905133917f5a3358a3d27a5373c0df2604662088d37894d56b7cfd27f315770440f4e0d919919081900360600190a2505050565b60006105176c45786368616e6765526174657360981b611ea3565b6000610517680a6f2dce8d0de8aa8960bb1b611ea3565b60006105176524b9b9bab2b960d11b611ea3565b600061051766119959541bdbdb60ca1b611ea3565b60006105176e466c657869626c6553746f7261676560881b611ea3565b600080611e5a84611e4e87600a870263ffffffff611f8016565b9063ffffffff611fd916565b90506005600a825b0610611e6c57600a015b600a9004949350505050565b600080600a8304611e8f868663ffffffff611f8016565b81611e9657fe5b0490506005600a82611e62565b600081815260046020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611b995760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f45578181015183820152602001611f2d565b50505050905090810190601f168015611f725780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082611f8f5750600061094b565b82820282848281611f9c57fe5b04146115c25760405162461bcd60e51b81526004018080602001828103825260218152602001806120a86021913960400191505060405180910390fd5b600080821161202f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161203a57fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e747261637420697320706175736564436f6e747261637420686173206e6f20737061726520636170616369747920746f206d696e74436f6e74726163742063616e6e6f74206275726e207345544820666f7220574554482c20574554482062616c616e6365206973207a65726fa265627a7a7231582030302595ccb1f4ce98e7869325a5b3e5b3d11e4e4abeb53e93535d730b215def64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "address payable",
							"name": "_WETH",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountIn",
							"type": "uint256"
						}
					],
					"name": "Burned",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountIn",
							"type": "uint256"
						}
					],
					"name": "Minted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amountIn",
							"type": "uint256"
						}
					],
					"name": "burn",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "burnFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "calculateBurnFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "calculateMintFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "capacity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "_capacity",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "distributeFees",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feesEscrowed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getReserves",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxETH",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amountIn",
							"type": "uint256"
						}
					],
					"name": "mint",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "mintFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oUSDIssued",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "sETHIssued",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "weth",
					"outputs": [
						{
							"internalType": "contract IWETH",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xf754f899a7f4eeae003efaa015c48deb6f86e0a78c90f4ccb93328ae48a21bc2",
				"urls": [
					"bzz-raw://3a9d9d47160d79ec84337fe9567a00fdd436debb257102598bfa95f91dc9d234",
					"dweb:/ipfs/QmPvwngGUX8VktU8VkqRxJCrUwg4ZEntfT7exREpq3Rbre"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EtherWrapper.sol": "EtherWrapper"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EtherWrapper.sol": {
						"keccak256": "0xf754f899a7f4eeae003efaa015c48deb6f86e0a78c90f4ccb93328ae48a21bc2",
						"urls": [
							"bzz-raw://3a9d9d47160d79ec84337fe9567a00fdd436debb257102598bfa95f91dc9d234",
							"dweb:/ipfs/QmPvwngGUX8VktU8VkqRxJCrUwg4ZEntfT7exREpq3Rbre"
						]
					}
				},
				"version": 1
			}
		},
		"NativeEtherWrapper": {
			"bytecode": "608060405234801561001057600080fd5b506040516110703803806110708339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050610f4c806101246000396000f3fe6080604052600436106100915760003560e01c806353a47bb71161005957806353a47bb714610152578063741853601461016757806379ba50971461017c578063899ffef4146101915780638da5cb5b146101f657610091565b806304f3bcec146100935780631249c58b146100c45780631627540c146100cc5780632af64bd3146100ff57806342966c6814610128575b005b34801561009f57600080fd5b506100a861020b565b604080516001600160a01b039092168252519081900360200190f35b61009161021a565b3480156100d857600080fd5b50610091600480360360208110156100ef57600080fd5b50356001600160a01b031661051c565b34801561010b57600080fd5b50610114610578565b604080519115158252519081900360200190f35b34801561013457600080fd5b506100916004803603602081101561014b57600080fd5b5035610683565b34801561015e57600080fd5b506100a86109c2565b34801561017357600080fd5b506100916109d1565b34801561018857600080fd5b50610091610b99565b34801561019d57600080fd5b506101a6610c55565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101e25781810151838201526020016101ca565b505050509050019250505060405180910390f35b34801561020257600080fd5b506100a8610ccc565b6002546001600160a01b031681565b348061026d576040805162461bcd60e51b815260206004820181905260248201527f6d73672e76616c7565206d7573742062652067726561746572207468616e2030604482015290519081900360640190fd5b610275610cdb565b6001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156102af57600080fd5b505af11580156102c3573d6000803e3d6000fd5b50505050506102d0610cdb565b6001600160a01b031663095ea7b36102e6610d4e565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b505050506040513d602081101561036057600080fd5b5061036b9050610d4e565b6001600160a01b031663a0712d68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050506103d0610d6d565b6001600160a01b031663a9059cbb336103e7610d6d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561043c57600080fd5b505afa158015610450573d6000803e3d6000fd5b505050506040513d602081101561046657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156104b757600080fd5b505af11580156104cb573d6000803e3d6000fd5b505050506040513d60208110156104e157600080fd5b505060408051828152905133917f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe919081900360200190a250565b610524610d84565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006060610584610c55565b905060005b81518110156106795760008282815181106105a057fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561060857600080fd5b505afa15801561061c573d6000803e3d6000fd5b505050506040513d602081101561063257600080fd5b50516001600160a01b031614158061065f57506000818152600360205260409020546001600160a01b0316155b156106705760009350505050610680565b50600101610589565b5060019150505b90565b600081116106d8576040805162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b60006106e2610cdb565b90506106ec610d6d565b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b505050506040513d602081101561076e57600080fd5b506107799050610d6d565b6001600160a01b031663095ea7b361078f610d4e565b846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107df57600080fd5b505af11580156107f3573d6000803e3d6000fd5b505050506040513d602081101561080957600080fd5b506108149050610d4e565b6001600160a01b03166342966c68836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516001600160a01b0385169350632e1a7d4d925083916370a08231916024808301926020929190829003018186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d60208110156108e957600080fd5b5051604080516001600160e01b031960e085901b168152600481019290925251602480830192600092919082900301818387803b15801561092957600080fd5b505af115801561093d573d6000803e3d6000fd5b5050604051339250479150600081818185875af1925050503d8060008114610981576040519150601f19603f3d011682016040523d82523d6000602084013e610986565b606091505b50506040805184815290513392507f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df79181900360200190a25050565b6001546001600160a01b031681565b60606109db610c55565b905060005b8151811015610b955760008282815181106109f757fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610aad578181015183820152602001610a95565b50505050905090810190601f168015610ada5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610af857600080fd5b505afa158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016109e0565b5050565b6001546001600160a01b03163314610be25760405162461bcd60e51b8152600401808060200182810382526035815260200180610eb46035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6040805160028082526060808301845292839291906020830190803883390190505090506b22ba3432b92bb930b83832b960a11b81600081518110610c9657fe5b602002602001018181525050680a6f2dce8d0de8aa8960bb1b81600181518110610cbc57fe5b6020908102919091010152905090565b6000546001600160a01b031681565b6000610ce5610d4e565b6001600160a01b0316633fc8cef36040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1d57600080fd5b505afa158015610d31573d6000803e3d6000fd5b505050506040513d6020811015610d4757600080fd5b5051905090565b6000610d686b22ba3432b92bb930b83832b960a11b610dcf565b905090565b6000610d68680a6f2dce8d0de8aa8960bb1b610dcf565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ee9602f913960400191505060405180910390fd5b565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610eac5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e71578181015183820152602001610e59565b50505050905090810190601f168015610e9e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820604ce3f0adb38a00bb2f819c7e7f38c10f19d381dd9d7e760da1b60d4d1e388d64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Burned",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Minted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burn",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "mint",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc5e540dd9ef97f684acb1be8ea1b67acbd57ff416ec70120e1626ae3d86e5612",
				"urls": [
					"bzz-raw://86d6349c6b6ca14b05d1d8c97f139869b1669ec55359e0814f5063fba48f21f3",
					"dweb:/ipfs/QmQ8LbXnBY1W4mAHEMF4cpDWkGdkrwrVc1E5fiyAX78yso"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"NativeEtherWrapper.sol": "NativeEtherWrapper"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"NativeEtherWrapper.sol": {
						"keccak256": "0xc5e540dd9ef97f684acb1be8ea1b67acbd57ff416ec70120e1626ae3d86e5612",
						"urls": [
							"bzz-raw://86d6349c6b6ca14b05d1d8c97f139869b1669ec55359e0814f5063fba48f21f3",
							"dweb:/ipfs/QmQ8LbXnBY1W4mAHEMF4cpDWkGdkrwrVc1E5fiyAX78yso"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralUtil": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200160f3803806200160f83398101604081905262000034916200006d565b600080546001600160a01b0319166001600160a01b0392909216919091179055620000c2565b80516200006781620000a8565b92915050565b6000602082840312156200008057600080fd5b60006200008e84846200005a565b949350505050565b60006001600160a01b03821662000067565b620000b38162000096565b8114620000bf57600080fd5b50565b61153d80620000d26000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063899ffef41161005b578063899ffef4146100ea5780638a739975146100ff578063e99f964714610112578063fbfeca401461012557610088565b806304f3bcec1461008d5780632af64bd3146100ab5780633c4aa0f3146100c057806374185360146100e0575b600080fd5b610095610138565b6040516100a29190611402565b60405180910390f35b6100b3610147565b6040516100a29190611349565b6100d36100ce366004610f52565b61025d565b6040516100a29190611357565b6100e861039a565b005b6100f26104ef565b6040516100a29190611338565b6100d361010d36600461103f565b61055b565b6100d3610120366004610f9f565b61068f565b6100d3610133366004610fdb565b6107ee565b6000546001600160a01b031681565b600060606101536104ef565b905060005b815181101561025357600082828151811061016f57fe5b60209081029190910181015160008181526001909252604080832054925490516321f8a72160e01b81529193506001600160a01b039283169216906321f8a721906101be908590600401611357565b60206040518083038186803b1580156101d657600080fd5b505afa1580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061020e9190810190610f34565b6001600160a01b031614158061023957506000818152600160205260409020546001600160a01b0316155b1561024a576000935050505061025a565b50600101610158565b5060019150505b90565b600080610268610acb565b9050610272610b7d565b6001600160a01b031663654a60ac8686866040518463ffffffff1660e01b81526004016102a1939291906113da565b60206040518083038186803b1580156102b957600080fd5b505afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102f19190810190611021565b915061038f6103828273__$97b3e989cac6f491ef7ec53236026bc2c9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561033e57600080fd5b505af4158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103769190810190611021565b9063ffffffff610c0e16565b839063ffffffff610c3c16565b9150505b9392505050565b60606103a46104ef565b905060005b81518110156104eb5760008282815181106103c057fe5b6020026020010151905060008060009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610401919061132d565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161042d92919061139b565b60206040518083038186803b15801561044557600080fd5b505afa158015610459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061047d9190810190610f34565b6000838152600160205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906104d99084908490611365565b60405180910390a150506001016103a9565b5050565b6060806104fa610c66565b60408051600180825281830190925291925060609190602080830190803883390190505090506c45786368616e6765526174657360981b8160008151811061053e57fe5b6020026020010181815250506105548282610cb7565b9250505090565b6000806105ea8473__$97b3e989cac6f491ef7ec53236026bc2c9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156105a657600080fd5b505af41580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105de9190810190611021565b9063ffffffff610d7316565b90506106836105f7610b7d565b6001600160a01b031663654a60ac8589896040518463ffffffff1660e01b8152600401610626939291906113da565b60206040518083038186803b15801561063e57600080fd5b505afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106769190810190611021565b829063ffffffff610c3c16565b9150505b949350505050565b60008061069a610b7d565b6001600160a01b031663654a60ac848660400135631bd554d160e21b6040518463ffffffff1660e01b81526004016106d4939291906113da565b60206040518083038186803b1580156106ec57600080fd5b505afa158015610700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107249190810190611021565b90506000610730610b7d565b6001600160a01b031663654a60ac606087013561075b608089013560c08a013563ffffffff610c0e16565b631bd554d160e21b6040518463ffffffff1660e01b8152600401610781939291906113da565b60206040518083038186803b15801561079957600080fd5b505afa1580156107ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107d19190810190611021565b90506107e3828263ffffffff610d8816565b925050505b92915050565b6000806107f9610acb565b90506000610805610b7d565b6001600160a01b031663654a60ac606088013561083060808a013560c08b013563ffffffff610c0e16565b631bd554d160e21b6040518463ffffffff1660e01b8152600401610856939291906113da565b60206040518083038186803b15801561086e57600080fd5b505afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108a69190810190611021565b905060006108b2610b7d565b6001600160a01b031663654a60ac868960400135631bd554d160e21b6040518463ffffffff1660e01b81526004016108ec939291906113da565b60206040518083038186803b15801561090457600080fd5b505afa158015610918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061093c9190810190611021565b9050600073__$97b3e989cac6f491ef7ec53236026bc2c9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561098457600080fd5b505af4158015610998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bc9190810190611021565b905060006109e06109d3848a63ffffffff610d8816565b859063ffffffff610db216565b90506000610a14610a078a6109fb868a63ffffffff610c0e16565b9063ffffffff610d8816565b849063ffffffff610db216565b90506000610a28838363ffffffff610d8816565b9050610a32610b7d565b6001600160a01b031663654a60ac631bd554d160e21b838e606001356040518463ffffffff1660e01b8152600401610a6c939291906113da565b60206040518083038186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610abc9190810190611021565b9b9a5050505050505050505050565b6000610ad5610dda565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401610b28929190611380565b60206040518083038186803b158015610b4057600080fd5b505afa158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b789190810190611021565b905090565b6000805460405163dacb2d0160e01b81526001600160a01b039091169063dacb2d0190610bbe906c45786368616e6765526174657360981b906004016113bb565b60206040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b789190810190610f34565b6000828201838110156103935760405162461bcd60e51b8152600401610c3390611421565b60405180910390fd5b6000670de0b6b3a7640000610c57848463ffffffff610df716565b81610c5e57fe5b049392505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110610ca857fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610ce7578160200160208202803883390190505b50905060005b8351811015610d2957838181518110610d0257fe5b6020026020010151828281518110610d1657fe5b6020908102919091010152600101610ced565b5060005b8251811015610d6c57828181518110610d4257fe5b6020026020010151828286510181518110610d5957fe5b6020908102919091010152600101610d2d565b5092915050565b60006103938383670de0b6b3a7640000610e31565b600061039382610da685670de0b6b3a764000063ffffffff610df716565b9063ffffffff610e6816565b600082821115610dd45760405162461bcd60e51b8152600401610c3390611431565b50900390565b6000610b786e466c657869626c6553746f7261676560881b610e9d565b600082610e06575060006107e8565b82820282848281610e1357fe5b04146103935760405162461bcd60e51b8152600401610c3390611451565b600080610e4b84610da687600a870263ffffffff610df716565b90506005600a820610610e5c57600a015b600a9004949350505050565b6000808211610e895760405162461bcd60e51b8152600401610c3390611441565b6000828481610e9457fe5b04949350505050565b60008181526001602090815260408083205490516001600160a01b039091169182151591610ecd9186910161130d565b60405160208183030381529060405290610d6c5760405162461bcd60e51b8152600401610c339190611410565b80516107e8816114da565b80356107e8816114f1565b60006101208284031215610f2357600080fd5b50919050565b80516107e8816114f1565b600060208284031215610f4657600080fd5b60006106878484610efa565b600080600060608486031215610f6757600080fd5b6000610f738686610f05565b9350506020610f8486828701610f05565b9250506040610f9586828701610f05565b9150509250925092565b6000806101408385031215610fb357600080fd5b6000610fbf8585610f10565b925050610120610fd185828601610f05565b9150509250929050565b60008060006101608486031215610ff157600080fd5b6000610ffd8686610f10565b93505061012061100f86828701610f05565b925050610140610f9586828701610f05565b60006020828403121561103357600080fd5b60006106878484610f29565b6000806000806080858703121561105557600080fd5b60006110618787610f05565b945050602061107287828801610f05565b935050604061108387828801610f05565b925050606061109487828801610f05565b91505092959194509250565b60006110ac8383611125565b505060200190565b6110bd81611479565b82525050565b60006110ce82611467565b6110d8818561146b565b93506110e383611461565b8060005b838110156111115781516110fb88826110a0565b975061110683611461565b9250506001016110e7565b509495945050505050565b6110bd81611484565b6110bd8161025a565b6110bd61113a8261025a565b61025a565b6110bd81611495565b600061115382611467565b61115d818561146b565b935061116d8185602086016114a0565b611176816114d0565b9093019392505050565b600061118d601b8361146b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006111c6601e8361146b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006111ff601a8361146b565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611238601183611474565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061126560218361146b565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006112a8601e8361146b565b7f4d697373696e672045786368616e6765526174657320636f6e74726163740000815260200192915050565b60006112e1601983611474565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006113188261122b565b9150611324828461112e565b50602001919050565b6000611318826112d4565b6020808252810161039381846110c3565b602081016107e8828461111c565b602081016107e88284611125565b604081016113738285611125565b61039360208301846110b4565b6040810161138e8285611125565b6103936020830184611125565b604081016113a98285611125565b81810360208301526106878184611148565b604081016113c98284611125565b81810360208301526103938161129b565b606081016113e88286611125565b6113f56020830185611125565b6106876040830184611125565b602081016107e8828461113f565b602080825281016103938184611148565b602080825281016107e881611180565b602080825281016107e8816111b9565b602080825281016107e8816111f2565b602080825281016107e881611258565b60200190565b5190565b90815260200190565b919050565b60006107e882611489565b151590565b6001600160a01b031690565b60006107e882611479565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b601f01601f191690565b6114e381611479565b81146114ee57600080fd5b50565b6114e38161025a56fea365627a7a7231582015afe1fe63fc9d22947a06eadf49b17aa9120cf14ae86f8fe906c4fa064d82256c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "collateralRedeemed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "getCollateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						},
						{
							"internalType": "uint256",
							"name": "minCratio",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "minCratio",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x1e7959c5a235d77251b73f4f27d7fe50f2f0af028d0cfd14a86c7ae75540021b",
				"urls": [
					"bzz-raw://c205a83a6aeb826876a51a55a14f2eeb86e35520c7032bf3f15ea81974a5e685",
					"dweb:/ipfs/Qmf5xFVdtXyiNCUDygunqVEATPibc1qJJMAanBDsW79N4m"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralUtil.sol": "CollateralUtil"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralUtil.sol": {
						"keccak256": "0x1e7959c5a235d77251b73f4f27d7fe50f2f0af028d0cfd14a86c7ae75540021b",
						"urls": [
							"bzz-raw://c205a83a6aeb826876a51a55a14f2eeb86e35520c7032bf3f15ea81974a5e685",
							"dweb:/ipfs/Qmf5xFVdtXyiNCUDygunqVEATPibc1qJJMAanBDsW79N4m"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManagerState": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620011b2380380620011b2833981016040819052620000349162000190565b80826001600160a01b038116620000685760405162461bcd60e51b81526004016200005f906200029d565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b591849062000265565b60405180910390a1506000546001600160a01b0316620000e95760405162461bcd60e51b81526004016200005f906200028b565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03906200013690839062000255565b60405180910390a150506004805460018101825560009182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01555042600555620002f8565b80516200018a81620002de565b92915050565b60008060408385031215620001a457600080fd5b6000620001b285856200017d565b9250506020620001c5858286016200017d565b9150509250929050565b620001da81620002ca565b82525050565b620001da81620002b8565b6000620001fa601183620002af565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b600062000229601983620002af565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200018a8284620001e0565b60408101620002758285620001cf565b620002846020830184620001e0565b9392505050565b602080825281016200018a81620001eb565b602080825281016200018a816200021a565b90815260200190565b60006001600160a01b0382166200018a565b60006200018a8260006200018a82620002b8565b620002e981620002b8565b8114620002f557600080fd5b50565b610eaa80620003086000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638c58250311610104578063cc952b57116100a2578063e50a31b311610071578063e50a31b31461038f578063eb94bbde146103a2578063ed039154146103b5578063f53037b6146103c8576101cf565b8063cc952b571461034e578063d2f0047514610356578063e31f27c114610369578063e32261fe1461037c576101cf565b8063a29fe7b8116100de578063a29fe7b81461030d578063aefc4ccb14610320578063af07aa9d14610328578063b52e0dc81461033b576101cf565b80638c582503146102ea5780638da5cb5b146102f2578063a0356f6e146102fa576101cf565b806352f445ca116101715780636431e0bd1161014b5780636431e0bd146102a6578063781dc0e2146102b957806379ba5097146102c157806383d625d4146102c9576101cf565b806352f445ca1461026b57806353a47bb71461027e5780635537479914610293576101cf565b806322e07b7a116101ad57806322e07b7a14610235578063246206391461023d578063381c5cb5146102505780635246f2b914610258576101cf565b806303f048b0146101d45780631627540c14610200578063173fcb4114610215575b600080fd5b6101e76101e2366004610b70565b6103db565b6040516101f79493929190610df2565b60405180910390f35b61021361020e366004610b4a565b610415565b005b610228610223366004610b8e565b610473565b6040516101f79190610dc9565b6102286104a1565b61021361024b366004610b8e565b6104a7565b61022861050d565b610213610266366004610b8e565b610514565b610213610279366004610b4a565b610579565b6102866105cc565b6040516101f79190610d50565b6102286102a1366004610b70565b6105db565b6102136102b4366004610b70565b6105ed565b610228610631565b610213610637565b6102dc6102d7366004610b70565b6106d3565b6040516101f7929190610dd7565b6102286106ec565b610286610737565b610228610308366004610b70565b610746565b61022861031b366004610b70565b610758565b610286610776565b6101e7610336366004610b8e565b610785565b610228610349366004610b70565b6107c5565b6102286107e6565b610228610364366004610b70565b6107ec565b610213610377366004610b8e565b61082c565b61022861038a366004610b70565b610878565b61021361039d366004610b8e565b6108bb565b6102136103b0366004610b8e565b61091a565b6102136103c3366004610b70565b610963565b6102136103d6366004610b70565b6109d6565b6000806000806103e961050d565b90506103f4856107c5565b9350610402600182036107c5565b925061040c610631565b91509193509193565b61041d610a39565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610468908390610d50565b60405180910390a150565b6006602052816000526040600020818154811061048c57fe5b90600052602060002001600091509150505481565b60055481565b6002546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d190610db9565b60405180910390fd5b60008281526006602090815260408083208054600181018255908452828420019390935592815260079092529020429055565b6004545b90565b6002546001600160a01b0316331461053e5760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a6516565b6000928352600860205260409092206001019190915550565b610581610a39565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390610468908390610d50565b6001546001600160a01b031681565b60076020526000908152604090205481565b6002546001600160a01b031633146106175760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040812061062e91610afd565b50565b60055490565b6001546001600160a01b031633146106615760405162461bcd60e51b81526004016104d190610d79565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926106a4926001600160a01b0391821692911690610d5e565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6008602052600090815260409020805460019091015482565b6002546000906001600160a01b031633146107195760405162461bcd60e51b81526004016104d190610db9565b60035461072d90600163ffffffff610a9216565b6003819055905090565b6000546001600160a01b031681565b60009081526006602052604090205490565b6004818154811061076557fe5b600091825260209091200154905081565b6002546001600160a01b031681565b60008060008061079486610746565b90506107a08686610abe565b93506107af8660018303610abe565b92506107ba86610aeb565b915092959194509250565b6000600482815481106107d457fe5b90600052602060002001549050919050565b60035481565b6002546000906001600160a01b031633146108195760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090205490565b6002546001600160a01b031633146108565760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a9216565b6002546000906001600160a01b031633146108a55760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090206001015490565b6002546001600160a01b031633146108e55760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a6516565b6000928352600860205260409092209190915550565b6002546001600160a01b031633146109445760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a9216565b6002546001600160a01b0316331461098d5760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040902054156109a65761062e565b60008181526006602090815260408083208054600181018255908452828420018390559282526007905220429055565b6002546001600160a01b03163314610a005760405162461bcd60e51b81526004016104d190610db9565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015542600555565b6000546001600160a01b03163314610a635760405162461bcd60e51b81526004016104d190610da9565b565b600082821115610a875760405162461bcd60e51b81526004016104d190610d99565b508082035b92915050565b600082820183811015610ab75760405162461bcd60e51b81526004016104d190610d89565b9392505050565b6000828152600660205260408120805483908110610ad857fe5b9060005260206000200154905092915050565b60009081526007602052604090205490565b508054600082559060005260206000209081019061062e919061051191905b80821115610b305760008155600101610b1c565b5090565b8035610a8c81610e4a565b8035610a8c81610e5e565b600060208284031215610b5c57600080fd5b6000610b688484610b34565b949350505050565b600060208284031215610b8257600080fd5b6000610b688484610b3f565b60008060408385031215610ba157600080fd5b6000610bad8585610b3f565b9250506020610bbe85828601610b3f565b9150509250929050565b610bd181610e39565b82525050565b6000610be4603583610e30565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610c3b601b83610e30565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610c74601e83610e30565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000610cad602f83610e30565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000610cfe603483610e30565b7f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e815273103832b93337b936903a3434b99030b1ba34b7b760611b602082015260400192915050565b610bd181610511565b60208101610a8c8284610bc8565b60408101610d6c8285610bc8565b610ab76020830184610bc8565b60208082528101610a8c81610bd7565b60208082528101610a8c81610c2e565b60208082528101610a8c81610c67565b60208082528101610a8c81610ca0565b60208082528101610a8c81610cf1565b60208101610a8c8284610d47565b60408101610de58285610d47565b610ab76020830184610d47565b60808101610e008287610d47565b610e0d6020830186610d47565b610e1a6040830185610d47565b610e276060830184610d47565b95945050505050565b90815260200190565b60006001600160a01b038216610a8c565b610e5381610e39565b811461062e57600080fd5b610e538161051156fea365627a7a72315820c19dbd24a404baae02a8f485303c1bd280c7bb80a3bbbeb828efadbd4368cdaa6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "addShortCurrency",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "borrowRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "borrowRatesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRateAt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getRatesLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getShortRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "getShortRatesLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "incrementTotalLoans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "long",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "ratesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "removeShortCurrency",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "short",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "shortRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortRatesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "long",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "short",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLoans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateBorrowRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateShortRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x217e07ca735bbb08b4f54548d02172eba805ada81e01a95f68cb1e3ae6ea326c",
				"urls": [
					"bzz-raw://236bb7e9d321a360d692f09dfbd6109151f2513313b605cf6231efe0544d48b9",
					"dweb:/ipfs/QmYpLEEJ4ck8tu8XZD6neUVGZSuYNoHMQeRXMZJTWjGtND"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralManagerState.sol": "CollateralManagerState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralManagerState.sol": {
						"keccak256": "0x217e07ca735bbb08b4f54548d02172eba805ada81e01a95f68cb1e3ae6ea326c",
						"urls": [
							"bzz-raw://236bb7e9d321a360d692f09dfbd6109151f2513313b605cf6231efe0544d48b9",
							"dweb:/ipfs/QmYpLEEJ4ck8tu8XZD6neUVGZSuYNoHMQeRXMZJTWjGtND"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManager": {
			"bytecode": "670de0b6b3a764000060105560c06040526524b9b9bab2b960d11b60809081526c45786368616e6765526174657360981b60a0526200004390601590600262000369565b503480156200005157600080fd5b5060405162004093380380620040938339810160408190526200007491620003f9565b84866001600160a01b038116620000a85760405162461bcd60e51b81526004016200009f906200061f565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000f5918490620005c3565b60405180910390a1506000546001600160a01b0316620001295760405162461bcd60e51b81526004016200009f906200060d565b60038054610100600160a81b0319166101006001600160a01b039384160217905560008054336001600160a01b031991821617909155600580549091169189169190911790556200017a84620001e4565b6200018e836001600160e01b036200025c16565b620001a2826001600160e01b03620002a616565b620001b6816001600160e01b03620002f016565b5050600080546001600160a01b0319166001600160a01b03959095169490941790935550620006ad92505050565b620001f76001600160e01b036200033a16565b600081116200021a5760405162461bcd60e51b81526004016200009f90620005e9565b60118190556040517f3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f906200025190839062000631565b60405180910390a150565b6200026f6001600160e01b036200033a16565b60128190556040517f465c1047eec44dfecb260ee7e6187823a7cbdd80f19082eb56c35967b16d8e26906200025190839062000631565b620002b96001600160e01b036200033a16565b60138190556040517f08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004906200025190839062000631565b620003036001600160e01b036200033a16565b60148190556040517fe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9906200025190839062000631565b6000546001600160a01b03163314620003675760405162461bcd60e51b81526004016200009f90620005fb565b565b82601881019282156200039a579160200282015b828111156200039a5782518255916020019190600101906200037d565b50620003a8929150620003ac565b5090565b620003c991905b80821115620003a85760008155600101620003b3565b90565b8051620003d9816200067d565b92915050565b8051620003d98162000697565b8051620003d981620006a2565b600080600080600080600060e0888a0312156200041557600080fd5b6000620004238a8a620003df565b9750506020620004368a828b01620003cc565b9650506040620004498a828b01620003cc565b95505060606200045c8a828b01620003ec565b94505060806200046f8a828b01620003ec565b93505060a0620004828a828b01620003ec565b92505060c0620004958a828b01620003ec565b91505092959891949750929550565b620004af8162000670565b82525050565b620004af816200064a565b6000620004cf60168362000641565b7f4d7573742062652067726561746572207468616e203000000000000000000000815260200192915050565b60006200050a602f8362000641565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006200055d60118362000641565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b60006200058c60198362000641565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b620004af81620003c9565b60408101620005d38285620004a4565b620005e26020830184620004b5565b9392505050565b60208082528101620003d981620004c0565b60208082528101620003d981620004fb565b60208082528101620003d9816200054e565b60208082528101620003d9816200057d565b60208101620003d98284620005b8565b90815260200190565b6000620003d98262000664565b6000620003d9826200064a565b6001600160a01b031690565b6000620003d98262000657565b62000688816200064a565b81146200069457600080fd5b50565b620006888162000657565b6200068881620003c9565b6139d680620006bd6000396000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c80638da5cb5b116101b8578063bbb601cd11610104578063e31f27c1116100a2578063eb94bbde1161007c578063eb94bbde146106a7578063edc77dc2146106ba578063ee81f790146106c2578063ffa749cd146106d557610342565b8063e31f27c11461066e578063e32261fe14610681578063e50a31b31461069457610342565b8063c9e18015116100de578063c9e1801514610638578063ca969f2314610640578063d0064c0014610653578063d2f004751461065b57610342565b8063bbb601cd14610615578063bf38668214610628578063c19d93fb1461063057610342565b8063af07aa9d11610171578063b4d6cb401161014b578063b4d6cb40146105c6578063b9e2451c146105e7578063ba1c5e80146105fa578063baa380361461060257610342565b8063af07aa9d14610598578063b38988f7146105ab578063b3b46732146105be57610342565b80638da5cb5b1461054757806391b4ded91461054f57806393a72fbe146105575780639f7eac371461056a578063a894a14b1461057d578063ad79a8581461059057610342565b8063614d08f81161029257806379ba509711610230578063899ffef41161020a578063899ffef4146105045780638b173e81146105195780638d1341901461052c5780638d6ad02d1461053f57610342565b806379ba5097146104c857806380054666146104d05780638471db13146104f157610342565b806372e18b6a1161026c57806372e18b6a14610487578063741853601461049a578063744d646e146104a25780637687402a146104b557610342565b8063614d08f8146104595780636526941b14610461578063710388d11461047457610342565b806323d60e2e116102ff5780634db7764c116102d95780634db7764c146104215780635246f2b91461042957806353a47bb71461043c5780635c975abb1461045157610342565b806323d60e2e146103d95780632af64bd3146103ec578063382453771461040157610342565b806303f048b01461034757806304f3bcec146103735780630c9c81a1146103885780631627540c1461039d57806316c38b3c146103b05780631e33fc6b146103c3575b600080fd5b61035a61035536600461317d565b6106e8565b60405161036a9493929190613877565b60405180910390f35b61037b61077f565b60405161036a91906137a8565b61039b61039636600461317d565b610793565b005b61039b6103ab366004612fcd565b6107db565b61039b6103be366004613141565b61082e565b6103cb6108a3565b60405161036a929190613737565b61039b6103e7366004613080565b610b1e565b6103f4610c4e565b60405161036a91906136f2565b61041461040f36600461317d565b610d6b565b60405161036a919061371b565b610414610d7d565b61039b6104373660046131b9565b610d83565b610444610e16565b60405161036a91906136b8565b6103f4610e25565b610414610e2e565b61039b61046f36600461317d565b610e46565b61039b610482366004613080565b610ea3565b6103f4610495366004613080565b610fb7565b61039b611051565b6103f46104b036600461304b565b6111a7565b61039b6104c33660046131b9565b6111f1565b61039b61124d565b6104e36104de366004613208565b6112e9565b60405161036a929190613765565b6103f46104ff36600461317d565b611414565b61050c611428565b60405161036a91906136e1565b61039b61052736600461317d565b611595565b61039b61053a36600461317d565b6115d2565b610414611662565b610444611668565b610414611677565b6103f4610565366004613080565b61167d565b61039b61057836600461317d565b611760565b61039b61058b366004613080565b6117bd565b6103cb61190c565b61035a6105a63660046131b9565b611afa565b6103f46105b9366004612fcd565b611b95565b610414611bae565b6105d96105d43660046131b9565b611c67565b60405161036a929190613700565b6104146105f536600461317d565b611d2f565b6103cb611d41565b61039b61061036600461317d565b611e64565b61039b610623366004613009565b611ea1565b610414611f81565b61037b611f87565b610414611f96565b61039b61064e366004613009565b611f9c565b610414612155565b61041461066936600461317d565b61215b565b61039b61067c3660046131b9565b6121dc565b61041461068f36600461317d565b612238565b61039b6106a23660046131b9565b612269565b61039b6106b53660046131b9565b6122c5565b6103cb612321565b6103cb6106d036600461317d565b612515565b61039b6106e3366004613009565b612745565b600554604051623f048b60e41b81526000918291829182916001600160a01b03909116906303f048b09061072090889060040161371b565b60806040518083038186803b15801561073857600080fd5b505afa15801561074c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107709190810190613255565b92989197509550909350915050565b60035461010090046001600160a01b031681565b61079b6127fe565b60138190556040517f08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004906107d090839061371b565b60405180910390a150565b6107e36127fe565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107d09083906136b8565b6108366127fe565b60035460ff161515811515141561084c576108a0565b6003805460ff1916821515179081905560ff161561086957426002555b6003546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916107d09160ff909116906136f2565b50565b600880546040805160208084028201810190925282815260009384936060938301828280156108f157602002820191906000526020600020905b8154815260200190600101908083116108dd575b50505050509050600081511115610b195760005b8151811015610b1757600082828151811061091c57fe5b60200260200101519050631bd554d160e21b8114156109cb5760055460405163d2f0047560e01b81526109c4916001600160a01b03169063d2f004759061096790859060040161371b565b60206040518083038186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109b7919081019061319b565b869063ffffffff61282a16565b9450610b0e565b6000806109d6612856565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401610a01919061371b565b604080518083038186803b158015610a1857600080fd5b505afa158015610a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a5091908101906131e9565b60055460405163d2f0047560e01b8152929450909250600091610aeb9185916001600160a01b039091169063d2f0047590610a8f90899060040161371b565b60206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610adf919081019061319b565b9063ffffffff61287616565b9050610afd888263ffffffff61282a16565b97508115610b0a57600196505b5050505b50600101610905565b505b509091565b610b266127fe565b828114610b4e5760405162461bcd60e51b8152600401610b45906137c7565b60405180910390fd5b60005b83811015610c3f57610b7f858583818110610b6857fe5b90506020020135600a6128a090919063ffffffff16565b610c37576000858583818110610b9157fe5b905060200201359050610bae81600a6128f090919063ffffffff16565b610bd4848484818110610bbd57fe5b9050602002013560086128f090919063ffffffff16565b80600c6000868686818110610be557fe5b905060200201358152602001908152602001600020819055507f87f8a613724bd8be7a9139e4c83bc8d58fedee7206e2d7077849f5988d78759981604051610c2d919061371b565b60405180910390a1505b600101610b51565b50610c48611051565b50505050565b60006060610c5a611428565b905060005b8151811015610d61576000828281518110610c7657fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b039081169361010090920416916321f8a72191610ccc9186910161371b565b60206040518083038186803b158015610ce457600080fd5b505afa158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d1c9190810190612feb565b6001600160a01b0316141580610d4757506000818152600460205260409020546001600160a01b0316155b15610d585760009350505050610d68565b50600101610c5f565b5060019150505b90565b600c6020526000908152604090205481565b60145481565b6000610d8e33611b95565b905080610dad5760405162461bcd60e51b8152600401610b4590613857565b600554604051635246f2b960e01b81526001600160a01b0390911690635246f2b990610ddf9086908690600401613765565b600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b031681565b60035460ff1681565b7021b7b63630ba32b930b626b0b730b3b2b960791b81565b610e4e6127fe565b60008111610e6e5760405162461bcd60e51b8152600401610b4590613827565b60118190556040517f3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f906107d090839061371b565b610eab6127fe565b828114610eca5760405162461bcd60e51b8152600401610b45906137c7565b60005b83811015610fb057610ee4858583818110610b6857fe5b15610fa857610f0f858583818110610ef857fe5b90506020020135600a61292890919063ffffffff16565b610f35838383818110610f1e57fe5b90506020020135600861292890919063ffffffff16565b600c6000848484818110610f4557fe5b905060200201358152602001908152602001600020600090557f788aff97f65e6ddeee9246c47d08b819813066c87876a912c79baddffb138f0a858583818110610f8b57fe5b90506020020135604051610f9f919061371b565b60405180910390a15b600101610ecd565b5050505050565b600a546000908414610fcb57506000611049565b60005b8481101561104357610fe5868683818110610b6857fe5b610ff3576000915050611049565b858582818110610fff57fe5b90506020020135600c600086868581811061101657fe5b905060200201358152602001908152602001600020541461103b576000915050611049565b600101610fce565b50600190505b949350505050565b606061105b611428565b905060005b81518110156111a357600082828151811061107757fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016110b991906136ad565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016110e5929190613745565b60206040518083038186803b1580156110fd57600080fd5b505afa158015611111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111359190810190612feb565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906111919084908490613729565b60405180910390a15050600101611060565b5050565b6000805b82518110156111e6576111d08382815181106111c357fe5b6020026020010151611b95565b6111de5760009150506111ec565b6001016111ab565b50600190505b919050565b60006111fc33611b95565b90508061121b5760405162461bcd60e51b8152600401610b4590613857565b600554604051632462063960e01b81526001600160a01b0390911690632462063990610ddf9086908690600401613765565b6001546001600160a01b031633146112775760405162461bcd60e51b8152600401610b45906137d7565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926112ba926001600160a01b03918216929116906136c6565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60008060006112f733611b95565b9050806113165760405162461bcd60e51b8152600401610b4590613857565b6000806000808761132f5761132a8a6106e8565b611339565b611339898b611afa565b93509350935093506000808961135657611351611d41565b61135f565b61135f8b612515565b9150915080156113815760405162461bcd60e51b8152600401610b4590613867565b60006113ab670de0b6b3a764000061139f428863ffffffff6129fc16565b9063ffffffff612a2416565b905060006113cf6113c2858463ffffffff61287616565b889063ffffffff61282a16565b90506113e1818963ffffffff6129fc16565b9a508499508b6113f9576113f481612a5e565b611403565b6114038d82612abc565b505050505050505050935093915050565b6000908152600c6020526040902054151590565b6040805160028082526060808301845292839291906020830190803883390190505090506524b9b9bab2b960d11b8160008151811061146357fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061148d57fe5b6020908102919091010152600d54606090801561151657806040519080825280602002602001820160405280156114ce578160200160208202803883390190505b50915060005b8181101561151457600d8054829081106114ea57fe5b906000526020600020015483828151811061150157fe5b60209081029190910101526001016114d4565b505b600a80546040805160208084028201810190925282815260609361156f93879383018282801561156557602002820191906000526020600020905b815481526020019060010190808311611551575b5050505050612aee565b80519091501561158a576115838185612aee565b945061158e565b8394505b5050505090565b61159d6127fe565b60148190556040517fe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9906107d090839061371b565b60006115dd33611b95565b9050806115fc5760405162461bcd60e51b8152600401610b4590613857565b600554604051637a981bdb60e11b81526001600160a01b039091169063f53037b69061162c90859060040161371b565b600060405180830381600087803b15801561164657600080fd5b505af115801561165a573d6000803e3d6000fd5b505050505050565b60125481565b6000546001600160a01b031681565b60025481565b600083821461169e5760405162461bcd60e51b8152600401610b45906137c7565b600d5484146116af57506000611049565b60005b82811015611043576005546001600160a01b031663a0356f6e8585848181106116d757fe5b905060200201356040518263ffffffff1660e01b81526004016116fa919061371b565b60206040518083038186803b15801561171257600080fd5b505afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174a919081019061319b565b611758576000915050611049565b6001016116b2565b6117686127fe565b600081116117885760405162461bcd60e51b8152600401610b4590613827565b60108190556040517fcf53b24098da84a81615c6450c76443db743815230079981717af7ff9d647fd4906107d090839061371b565b6117c56127fe565b8281146117e45760405162461bcd60e51b8152600401610b45906137c7565b60005b83811015610c3f5760008585838181106117fd57fe5b90506020020135905061181a81600d6128a090919063ffffffff16565b6119035761182f600d8263ffffffff6128f016565b80600f600086868681811061184057fe5b905060200201358152602001908152602001600020819055507fa71e21d8a72d99830e0d382f042d37e6a20c8a33ec3185affcaf6586e9a0187a81604051611888919061371b565b60405180910390a16005546001600160a01b031663ed0391548585858181106118ad57fe5b905060200201356040518263ffffffff1660e01b81526004016118d0919061371b565b600060405180830381600087803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b505050505b506001016117e7565b600d805460408051602080840282018101909252828152600093849360609383018282801561195a57602002820191906000526020600020905b815481526020019060010190808311611946575b50505050509050600081511115610b195760005b8151811015610b1757600061199583838151811061198857fe5b6020026020010151612baa565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156119cd57600080fd5b505afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a05919081019061319b565b9050600080611a12612856565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401611a3d919061371b565b604080518083038186803b158015611a5457600080fd5b505afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a8c91908101906131e9565b60055460405163719130ff60e11b8152929450909250600091611acb9185916001600160a01b039091169063e32261fe90610a8f90899060040161371b565b9050611add888263ffffffff61282a16565b97508115611aea57600196505b50506001909201915061196e9050565b60055460405163af07aa9d60e01b81526000918291829182916001600160a01b039091169063af07aa9d90611b359089908990600401613765565b60806040518083038186803b158015611b4d57600080fd5b505afa158015611b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b859190810190613255565b9299919850965090945092505050565b6000611ba860068363ffffffff612bb516565b92915050565b600080611bba33611b95565b905080611bd95760405162461bcd60e51b8152600401610b4590613857565b600560009054906101000a90046001600160a01b03166001600160a01b0316638c5825036040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c61919081019061319b565b91505090565b6000806000611c74612856565b6001600160a01b031663654a60ac8587631bd554d160e21b6040518463ffffffff1660e01b8152600401611caa93929190613780565b60206040518083038186803b158015611cc257600080fd5b505afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cfa919081019061319b565b9050600080611d07612321565b6011549193509150611d1f838563ffffffff61282a16565b11159450925050505b9250929050565b600f6020526000908152604090205481565b6000806000611d4e612c22565b6001600160a01b0316637b1001b7631bd554d160e21b60016040518363ffffffff1660e01b8152600401611d83929190613737565b60206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dd3919081019061319b565b9050600080611de06108a3565b90925090506000611df7848463ffffffff61282a16565b90506000611e266a1a1a7062e5185d7e380000611e1a868563ffffffff612c3616565b9063ffffffff612c3616565b90506000611e3f6010548361287690919063ffffffff16565b9050611e566013548261282a90919063ffffffff16565b989397509295505050505050565b611e6c6127fe565b60128190556040517f465c1047eec44dfecb260ee7e6187823a7cbdd80f19082eb56c35967b16d8e26906107d090839061371b565b611ea96127fe565b60005b81811015611f7c57611ee6838383818110611ec357fe5b9050602002016020611ed89190810190612fcd565b60069063ffffffff612bb516565b611f7457611f1c838383818110611ef957fe5b9050602002016020611f0e9190810190612fcd565b60069063ffffffff612c6016565b7f7db05e63d635a68c62fd7fd8f3107ae8ab584a383e102d1bd8a40f4c977e465f838383818110611f4957fe5b9050602002016020611f5e9190810190612fcd565b604051611f6b91906136b8565b60405180910390a15b600101611eac565b505050565b60135481565b6005546001600160a01b031681565b60105481565b611fa46127fe565b60005b81811015611f7c57611fd5838383818110611fbe57fe5b90506020020135600d6128a090919063ffffffff16565b1561214d57612000838383818110611fe957fe5b90506020020135600d61292890919063ffffffff16565b600061201d84848481811061201157fe5b90506020020135612baa565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561205557600080fd5b505afa158015612069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061208d919081019061319b565b6000818152600f6020526040808220919091556005549051636431e0bd60e01b81529192506001600160a01b031690636431e0bd906120d090849060040161371b565b600060405180830381600087803b1580156120ea57600080fd5b505af11580156120fe573d6000803e3d6000fd5b505050507f23caa21d7c1015aa7051e1ae4a09f99de36dab4545dfec5f4dde3a54173a123b84848481811061212f57fe5b90506020020135604051612143919061371b565b60405180910390a1505b600101611fa7565b60115481565b60055460405163d2f0047560e01b81526000916001600160a01b03169063d2f004759061218c90859060040161371b565b60206040518083038186803b1580156121a457600080fd5b505afa1580156121b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ba8919081019061319b565b60006121e733611b95565b9050806122065760405162461bcd60e51b8152600401610b4590613857565b60055460405163e31f27c160e01b81526001600160a01b039091169063e31f27c190610ddf9086908690600401613765565b60055460405163719130ff60e11b81526000916001600160a01b03169063e32261fe9061218c90859060040161371b565b600061227433611b95565b9050806122935760405162461bcd60e51b8152600401610b4590613857565b60055460405163e50a31b360e01b81526001600160a01b039091169063e50a31b390610ddf9086908690600401613765565b60006122d033611b95565b9050806122ef5760405162461bcd60e51b8152600401610b4590613857565b6005546040516375ca5def60e11b81526001600160a01b039091169063eb94bbde90610ddf9086908690600401613765565b6008805460408051602080840282018101909252828152600093849360609383018282801561236f57602002820191906000526020600020905b81548152602001906001019080831161235b575b50505050509050600081511115610b19576060600061238c612856565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004016123b791906136e1565b60006040518083038186803b1580156123cf57600080fd5b505afa1580156123e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261240b91908101906130f0565b909250905060005b825181101561250d57600061248984838151811061242d57fe5b6020026020010151600560009054906101000a90046001600160a01b03166001600160a01b031663d2f0047588868151811061246557fe5b60200260200101516040518263ffffffff1660e01b8152600401610a8f919061371b565b905060006124d485848151811061249c57fe5b6020026020010151600560009054906101000a90046001600160a01b03166001600160a01b031663e32261fe89878151811061246557fe5b90506124f6816124ea8a8563ffffffff61282a16565b9063ffffffff61282a16565b9750831561250357600196505b5050600101612413565b505050509091565b600080612520612856565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b815260040161254b919061371b565b60206040518083038186803b15801561256357600080fd5b505afa158015612577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061259b919081019061315f565b6000848152600f6020526040812054919250906125b790612baa565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125ef57600080fd5b505afa158015612603573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612627919081019061319b565b60055460405163719130ff60e11b81529192506000916001600160a01b039091169063e32261fe9061265d90889060040161371b565b60206040518083038186803b15801561267557600080fd5b505afa158015612689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126ad919081019061319b565b9050808211156126c35750600092506127409050565b60006126d5828463ffffffff6129fc16565b905060006127086a1a1a7062e5185d7e380000611e1a6126fb878763ffffffff61282a16565b859063ffffffff612c3616565b905060006127216012548361287690919063ffffffff16565b90506127386014548261282a90919063ffffffff16565b965050505050505b915091565b61274d6127fe565b60005b81811015611f7c57612767838383818110611ec357fe5b156127f65761279e83838381811061277b57fe5b90506020020160206127909190810190612fcd565b60069063ffffffff612cb216565b7fd89d2ee68ab04dca0193f48a4aff55e20fa5ec0429a8a8c1c51b8dad6178a5938383838181106127cb57fe5b90506020020160206127e09190810190612fcd565b6040516127ed91906136b8565b60405180910390a15b600101612750565b6000546001600160a01b031633146128285760405162461bcd60e51b8152600401610b4590613837565b565b60008282018381101561284f5760405162461bcd60e51b8152600401610b45906137e7565b9392505050565b60006128716c45786368616e6765526174657360981b612dc8565b905090565b6000670de0b6b3a7640000612891848463ffffffff612a2416565b8161289857fe5b049392505050565b81546000906128b157506000611ba8565b600082815260018401602052604090205480151580611049575082846000016000815481106128dc57fe5b906000526020600020015414949350505050565b6128fa82826128a0565b6111a35781546000828152600180850160209081526040832084905590830185558482529020018190555050565b61293282826128a0565b61294e5760405162461bcd60e51b8152600401610b45906137f7565b60008181526001830160205260409020548254600019018082146129bc57600084600001828154811061297d57fe5b906000526020600020015490508085600001848154811061299a57fe5b6000918252602080832090910192909255918252600186019052604090208290555b83548490806129c757fe5b600190038181906000526020600020016000905590558360010160008481526020019081526020016000206000905550505050565b600082821115612a1e5760405162461bcd60e51b8152600401610b4590613807565b50900390565b600082612a3357506000611ba8565b82820282848281612a4057fe5b041461284f5760405162461bcd60e51b8152600401610b4590613847565b600554604051637a981bdb60e11b81526001600160a01b039091169063f53037b690612a8e90849060040161371b565b600060405180830381600087803b158015612aa857600080fd5b505af1158015610fb0573d6000803e3d6000fd5b600554604051632462063960e01b81526001600160a01b039091169063246206399061162c9085908590600401613765565b60608151835101604051908082528060200260200182016040528015612b1e578160200160208202803883390190505b50905060005b8351811015612b6057838181518110612b3957fe5b6020026020010151828281518110612b4d57fe5b6020908102919091010152600101612b24565b5060005b8251811015612ba357828181518110612b7957fe5b6020026020010151828286510181518110612b9057fe5b6020908102919091010152600101612b64565b5092915050565b6000611ba882612dc8565b8154600090612bc657506000611ba8565b6001600160a01b0382166000908152600184016020526040902054801515806110495750826001600160a01b031684600001600081548110612c0457fe5b6000918252602090912001546001600160a01b031614949350505050565b60006128716524b9b9bab2b960d11b612dc8565b600061284f82612c5485670de0b6b3a764000063ffffffff612a2416565b9063ffffffff612e2516565b612c6a8282612bb5565b6111a35781546001600160a01b038216600081815260018086016020908152604083208590559084018655858252902090910180546001600160a01b03191690911790555050565b612cbc8282612bb5565b612cd85760405162461bcd60e51b8152600401610b45906137f7565b6001600160a01b0381166000908152600183016020526040902054825460001901808214612d77576000846000018281548110612d1157fe5b60009182526020909120015485546001600160a01b0390911691508190869085908110612d3a57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018601909152604090208290555b8354849080612d8257fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0394909416815260019490940190925250506040812055565b60008181526004602090815260408083205490516001600160a01b039091169182151591612df89186910161368d565b60405160208183030381529060405290612ba35760405162461bcd60e51b8152600401610b4591906137b6565b6000808211612e465760405162461bcd60e51b8152600401610b4590613817565b6000828481612e5157fe5b04949350505050565b8035611ba88161396d565b8051611ba88161396d565b60008083601f840112612e8257600080fd5b50813567ffffffffffffffff811115612e9a57600080fd5b602083019150836020820283011115611d2857600080fd5b600082601f830112612ec357600080fd5b8135612ed6612ed1826138dc565b6138b5565b91508181835260208401935060208101905083856020840282011115612efb57600080fd5b60005b83811015612f275781612f118882612e5a565b8452506020928301929190910190600101612efe565b5050505092915050565b600082601f830112612f4257600080fd5b8151612f50612ed1826138dc565b91508181835260208401935060208101905083856020840282011115612f7557600080fd5b60005b83811015612f275781612f8b8882612fc2565b8452506020928301929190910190600101612f78565b8035611ba881613981565b8051611ba881613981565b8035611ba88161398a565b8051611ba88161398a565b600060208284031215612fdf57600080fd5b60006110498484612e5a565b600060208284031215612ffd57600080fd5b60006110498484612e65565b6000806020838503121561301c57600080fd5b823567ffffffffffffffff81111561303357600080fd5b61303f85828601612e70565b92509250509250929050565b60006020828403121561305d57600080fd5b813567ffffffffffffffff81111561307457600080fd5b61104984828501612eb2565b6000806000806040858703121561309657600080fd5b843567ffffffffffffffff8111156130ad57600080fd5b6130b987828801612e70565b9450945050602085013567ffffffffffffffff8111156130d857600080fd5b6130e487828801612e70565b95989497509550505050565b6000806040838503121561310357600080fd5b825167ffffffffffffffff81111561311a57600080fd5b61312685828601612f31565b925050602061313785828601612fac565b9150509250929050565b60006020828403121561315357600080fd5b60006110498484612fa1565b60006020828403121561317157600080fd5b60006110498484612fac565b60006020828403121561318f57600080fd5b60006110498484612fb7565b6000602082840312156131ad57600080fd5b60006110498484612fc2565b600080604083850312156131cc57600080fd5b60006131d88585612fb7565b925050602061313785828601612fb7565b600080604083850312156131fc57600080fd5b60006131268585612fc2565b60008060006060848603121561321d57600080fd5b60006132298686612fb7565b935050602061323a86828701612fb7565b925050604061324b86828701612fa1565b9150509250925092565b6000806000806080858703121561326b57600080fd5b60006132778787612fc2565b945050602061328887828801612fc2565b935050604061329987828801612fc2565b92505060606132aa87828801612fc2565b91505092959194509250565b60006132c2838361333b565b505060200190565b6132d381613910565b82525050565b60006132e482613903565b6132ee8185613907565b93506132f9836138fd565b8060005b8381101561332757815161331188826132b6565b975061331c836138fd565b9250506001016132fd565b509495945050505050565b6132d38161391b565b6132d381610d68565b6132d361335082610d68565b610d68565b6132d38161392c565b600061336982613903565b6133738185613907565b9350613383818560208601613937565b61338c81613963565b9093019392505050565b60006133a3601b83613907565b7f496e707574206172726179206c656e677468206d69736d617463680000000000815260200192915050565b60006133dc603583613907565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613433601b83613907565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061346c601383613907565b7222b632b6b2b73a103737ba1034b71039b2ba1760691b815260200192915050565b600061349b601e83613907565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006134d4601a83613907565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061350d6011836111ec565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061353a601683613907565b7504d7573742062652067726561746572207468616e20360541b815260200192915050565b600061356c602f83613907565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006135bd602183613907565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613600601983613907565b7f4f6e6c7920636f6c6c61746572616c20636f6e74726163747300000000000000815260200192915050565b60006136396019836111ec565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613672600c83613907565b6b496e76616c6964207261746560a01b815260200192915050565b600061369882613500565b91506136a48284613344565b50602001919050565b60006136988261362c565b60208101611ba882846132ca565b604081016136d482856132ca565b61284f60208301846132ca565b6020808252810161284f81846132d9565b60208101611ba88284613332565b6040810161370e8285613332565b61284f6020830184613332565b60208101611ba8828461333b565b604081016136d4828561333b565b6040810161370e828561333b565b60408101613753828561333b565b8181036020830152611049818461335e565b60408101613773828561333b565b61284f602083018461333b565b6060810161378e828661333b565b61379b602083018561333b565b611049604083018461333b565b60208101611ba88284613355565b6020808252810161284f818461335e565b60208082528101611ba881613396565b60208082528101611ba8816133cf565b60208082528101611ba881613426565b60208082528101611ba88161345f565b60208082528101611ba88161348e565b60208082528101611ba8816134c7565b60208082528101611ba88161352d565b60208082528101611ba88161355f565b60208082528101611ba8816135b0565b60208082528101611ba8816135f3565b60208082528101611ba881613665565b60808101613885828761333b565b613892602083018661333b565b61389f604083018561333b565b6138ac606083018461333b565b95945050505050565b60405181810167ffffffffffffffff811182821017156138d457600080fd5b604052919050565b600067ffffffffffffffff8211156138f357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000611ba882613920565b151590565b6001600160a01b031690565b6000611ba882613910565b60005b8381101561395257818101518382015260200161393a565b83811115610c485750506000910152565b601f01601f191690565b61397681613910565b81146108a057600080fd5b6139768161391b565b61397681610d6856fea365627a7a72315820da775038d7ca0513e12e20f0664c5eb8ec84b3b39b5a41fd0def463a490b18b86c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract CollateralManagerState",
							"name": "_state",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_maxDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_maxSkewRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_baseBorrowRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_baseShortRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "baseBorrowRate",
							"type": "uint256"
						}
					],
					"name": "BaseBorrowRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "baseShortRate",
							"type": "uint256"
						}
					],
					"name": "BaseShortRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "CollateralAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "CollateralRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "liquidationPenalty",
							"type": "uint256"
						}
					],
					"name": "LiquidationPenaltyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxDebt",
							"type": "uint256"
						}
					],
					"name": "MaxDebtUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxSkewRate",
							"type": "uint256"
						}
					],
					"name": "MaxSkewRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "ShortableSynthAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "ShortableSynthRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "SynthAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "SynthRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "utilisationMultiplier",
							"type": "uint256"
						}
					],
					"name": "UtilisationMultiplierUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "isShort",
							"type": "bool"
						}
					],
					"name": "accrueInterest",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "difference",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "addCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredSynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addShortableSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredSynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areShortableSynthsSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredSynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "baseBorrowRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "baseShortRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "exceedsDebtLimit",
					"outputs": [
						{
							"internalType": "bool",
							"name": "canIssue",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getBorrowRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "borrowRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "getNewLoanId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						}
					],
					"name": "getShortRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "shortRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "rateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getShortRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "hasAllCollaterals",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "hasCollateral",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isSynthManaged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "long",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxSkewRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "removeCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synths",
							"type": "bytes32[]"
						}
					],
					"name": "removeShortableSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "removeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_baseBorrowRate",
							"type": "uint256"
						}
					],
					"name": "setBaseBorrowRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_baseShortRate",
							"type": "uint256"
						}
					],
					"name": "setBaseShortRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxDebt",
							"type": "uint256"
						}
					],
					"name": "setMaxDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxSkewRate",
							"type": "uint256"
						}
					],
					"name": "setMaxSkewRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_utilisationMultiplier",
							"type": "uint256"
						}
					],
					"name": "setUtilisationMultiplier",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "short",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortableSynthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "state",
					"outputs": [
						{
							"internalType": "contract CollateralManagerState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLong",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLongAndShort",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalShort",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateBorrowRatesCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateShortRatesCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "utilisationMultiplier",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xa3aba27e71dc5c1b54c32f95ab9d3ad6f4ba44c21dfee8f09034607da7415a81",
				"urls": [
					"bzz-raw://b7bb6146035285e56739e5a31067aec3451835054b955ab4745132d602351531",
					"dweb:/ipfs/QmaSca4Qp9RG88zLzn5bvUA3HcWzzaBAs9RoAwqocLqgoQ"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralManager.sol": "CollateralManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralManager.sol": {
						"keccak256": "0xa3aba27e71dc5c1b54c32f95ab9d3ad6f4ba44c21dfee8f09034607da7415a81",
						"urls": [
							"bzz-raw://b7bb6146035285e56739e5a31067aec3451835054b955ab4745132d602351531",
							"dweb:/ipfs/QmaSca4Qp9RG88zLzn5bvUA3HcWzzaBAs9RoAwqocLqgoQ"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralEth": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b506040516200476938038062004769833981016040819052620000419162000150565b8585858585858380876001600160a01b0381166200007c5760405162461bcd60e51b8152600401620000739062000261565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c99184906200023b565b60405180910390a150600280546001600160a01b039283166001600160a01b0319918216179091556006805498909216971696909617909555600492909255600a55600b5550506001600e5550620002e295505050505050565b80516200013081620002b2565b92915050565b80516200013081620002cc565b80516200013081620002d7565b60008060008060008060c087890312156200016a57600080fd5b600062000178898962000123565b96505060206200018b89828a0162000143565b95505060406200019e89828a0162000123565b9450506060620001b189828a0162000136565b9350506080620001c489828a0162000136565b92505060a0620001d789828a0162000136565b9150509295509295509295565b620001ef81620002a5565b82525050565b620001ef816200027c565b60006200020f60198362000273565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200024b8285620001e4565b6200025a6020830184620001f5565b9392505050565b60208082528101620001308162000200565b90815260200190565b6000620001308262000299565b90565b600062000130826200027c565b6001600160a01b031690565b600062000130826200028c565b620002bd816200027c565b8114620002c957600080fd5b50565b620002bd8162000289565b620002bd816200028c565b61447780620002f26000396000f3fe60806040526004361061020f5760003560e01c806372e18b6a11610118578063925ead11116100a0578063ba2de9bc1161006f578063ba2de9bc146105b0578063d2b8035a146105c5578063de81eda9146105e5578063e1ec3c6814610605578063f3f437031461063a5761020f565b8063925ead1114610546578063a76cdfa51461055b578063aa2d8ce31461057b578063b562a1ab1461059b5761020f565b8063846321a4116100e7578063846321a4146104af578063899ffef4146104cf5780638cd2e0c7146104f15780638da5cb5b1461051157806390abb4d9146105265761020f565b806372e18b6a14610445578063741853601461046557806379ba50971461047a5780637e1323551461048f5761020f565b8063379607f51161019b578063441a3e701161016a578063441a3e70146103bb57806347e7ef24146103db578063481c6a75146103ee57806353a47bb7146104035780635eb2ad01146104255761020f565b8063379607f51461034657806338245377146103665780634065b81b1461038657806341c738011461039b5761020f565b80631627540c116101e25780631627540c146102af57806323d60e2e146102cf5780632af64bd3146102ef57806330edd96114610311578063361e2086146103315761020f565b806304f3bcec1461021457806306c19e3f1461023f5780630710285c1461025f5780630aebeb4e14610281575b600080fd5b34801561022057600080fd5b5061022961065a565b6040516102369190614009565b60405180910390f35b61025261024d3660046136c0565b610669565b6040516102369190613f97565b34801561026b57600080fd5b5061027f61027a36600461355b565b61067f565b005b34801561028d57600080fd5b506102a161029c366004613684565b6106c5565b604051610236929190613fb3565b3480156102bb57600080fd5b5061027f6102ca3660046134e5565b61070e565b3480156102db57600080fd5b5061027f6102ea3660046135a8565b61076c565b3480156102fb57600080fd5b5061030461083b565b6040516102369190613f89565b34801561031d57600080fd5b5061025261032c366004613684565b610953565b34801561033d57600080fd5b50610252610971565b34801561035257600080fd5b5061027f610361366004613684565b610977565b34801561037257600080fd5b50610252610381366004613684565b610a4c565b34801561039257600080fd5b50610304610a5e565b3480156103a757600080fd5b506102526103b6366004613684565b610a67565b3480156103c757600080fd5b506102a16103d63660046136c0565b610b7f565b6102a16103e9366004613521565b610bca565b3480156103fa57600080fd5b50610229610be3565b34801561040f57600080fd5b50610418610bf2565b6040516102369190613f26565b34801561043157600080fd5b5061027f610440366004613521565b610c01565b34801561045157600080fd5b506103046104603660046135a8565b610c37565b34801561047157600080fd5b5061027f610cfb565b34801561048657600080fd5b5061027f610e4d565b34801561049b57600080fd5b506102526104aa3660046136c0565b610ee9565b3480156104bb57600080fd5b5061027f6104ca366004613684565b610f2e565b3480156104db57600080fd5b506104e4610f6b565b6040516102369190613f78565b3480156104fd57600080fd5b506102a161050c36600461355b565b6110fb565b34801561051d57600080fd5b50610418611116565b34801561053257600080fd5b5061027f610541366004613618565b611125565b34801561055257600080fd5b50610252611171565b34801561056757600080fd5b5061027f610576366004613684565b611177565b34801561058757600080fd5b50610252610596366004613684565b6111b4565b3480156105a757600080fd5b50610252611278565b3480156105bc57600080fd5b5061025261127e565b3480156105d157600080fd5b506102a16105e03660046136c0565b611284565b3480156105f157600080fd5b50610418610600366004613684565b611291565b34801561061157600080fd5b50610625610620366004613684565b6112ac565b604051610236999897969594939291906141ee565b34801561064657600080fd5b506102526106553660046134e5565b611306565b6002546001600160a01b031681565b60006106783484846000611318565b9392505050565b600061068c8484846119c0565b336000908152600f60205260409020549091506106af908263ffffffff611d2716565b336000908152600f602052604090205550505050565b6000806106d23384611d4c565b336000908152600f602052604090205491935091506106f7908263ffffffff611d2716565b336000908152600f60205260409020559092909150565b610716611e42565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610761908390613f26565b60405180910390a150565b610774611e42565b82811461079c5760405162461bcd60e51b815260040161079390614048565b60405180910390fd5b60005b8381101561082c5760008585838181106107b557fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061080957fe5b60209081029290920135835250810191909152604001600020555060010161079f565b50610835610cfb565b50505050565b60006060610847610f6b565b905060005b815181101561094957600082828151811061086357fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906108b4908590600401613f97565b60206040518083038186803b1580156108cc57600080fd5b505afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109049190810190613503565b6001600160a01b031614158061092f57506000818152600360205260409020546001600160a01b0316155b156109405760009350505050610950565b5060010161084c565b5060019150505b90565b6007818154811061096057fe5b600091825260209091200154905081565b600c5481565b600e805460010190819055336000908152600f60205260409020546109a2908363ffffffff611e6e16565b336000818152600f602052604080822093909355915184906109c390613f1b565b60006040518083038185875af1925050503d8060008114610a00576040519150601f19603f3d011682016040523d82523d6000602084013e610a05565b606091505b5050905080610a265760405162461bcd60e51b815260040161079390614058565b50600e548114610a485760405162461bcd60e51b815260040161079390614168565b5050565b60086020526000908152604090205481565b600d5460ff1681565b6000610a71613407565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152610afc611e96565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b8152600401610b2f939291906141a5565b60206040518083038186803b158015610b4757600080fd5b505afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067891908101906136a2565b600080610b8c8484611eb7565b336000908152600f60205260409020549193509150610bb1908463ffffffff611d2716565b336000908152600f602052604090205590939092509050565b600080610bd8848434611f5c565b909590945092505050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610c09611e42565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610c4b57506000610cf3565b60005b84811015610ced576000868683818110610c6457fe5b9050602002013590508060078381548110610c7b57fe5b906000526020600020015414610c9657600092505050610cf3565b60078281548110610ca357fe5b906000526020600020015460086000878786818110610cbe57fe5b9050602002013581526020019081526020016000205414610ce457600092505050610cf3565b50600101610c4e565b50600190505b949350505050565b6060610d05610f6b565b905060005b8151811015610a48576000828281518110610d2157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d639190613f10565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d8f929190613fc1565b60206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ddf9190810190613503565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610e3b9084908490613fa5565b60405180910390a15050600101610d0a565b6001546001600160a01b03163314610e775760405162461bcd60e51b815260040161079390614038565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610eba926001600160a01b0391821692911690613f4f565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610ef3611e96565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610b2f94939291906142da565b92915050565b610f36611e42565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d90610761908390613f97565b606080610f7661202d565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610fb557fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610fdf57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061100557fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061102e57fe5b6020026020010181815250506814de5b9d1a1bd554d160ba1b8160048151811061105457fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b8160058151811061107f57fe5b6020026020010181815250506060611097838361207e565b90506110f38160078054806020026020016040519081016040528092919081815260200182805480156110e957602002820191906000526020600020905b8154815260200190600101908083116110d5575b505050505061207e565b935050505090565b60008061110a8533868661213a565b90969095509350505050565b6000546001600160a01b031681565b61112d611e42565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916107619160ff90911690613f89565b600a5481565b61117f611e42565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c90610761908390613f97565b60006111be613407565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152611249611e96565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b8152600401610b2f929190614188565b60045481565b600b5481565b600080610bd884846122e9565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b600f6020526000908152604090205481565b600061132261272b565b61132a6127cd565b600d5460ff1661134c5760405162461bcd60e51b815260040161079390614118565b6000838152600860205260409020546113775760405162461bcd60e51b815260040161079390614068565b61137f612821565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016113aa9190613f97565b60206040518083038186803b1580156113c257600080fd5b505afa1580156113d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113fa9190810190613636565b156114175760405162461bcd60e51b8152600401610793906140f8565b600b548510156114395760405162461bcd60e51b815260040161079390614148565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb40906114709089908990600401613fb3565b604080518083038186803b15801561148757600080fd5b505afa15801561149b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114bf9190810190613654565b915091508180156114ce575080155b6114ea5760405162461bcd60e51b8152600401610793906140d8565b6114f48786610ee9565b8611156115135760405162461bcd60e51b815260040161079390614138565b600061152a600c548861283c90919063ffffffff16565b9050600061153e888363ffffffff611e6e16565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115c891908101906136a2565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff191692151592909217909155905160068301555160078201559051600882015590955061169290612851565b61169c8288612943565b851561188f576116aa612b2f565b6001600160a01b031663867904b4336116c1612821565b6001600160a01b031663654a60ac8b86631bd554d160e21b6040518463ffffffff1660e01b81526004016116f793929190613fe1565b60206040518083038186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174791908101906136a2565b6040518363ffffffff1660e01b8152600401611764929190613f34565b600060405180830381600087803b15801561177e57600080fd5b505af1158015611792573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c191506117c8908a908c90600401613fb3565b600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b031615905061188a576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906118579033908c90600401613f34565b600060405180830381600087803b15801561187157600080fd5b505af1158015611885573d6000803e3d6000fd5b505050505b61196b565b6000878152600860205260409020546118a790612b46565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016118d4929190613f34565b600060405180830381600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde9150611938908a908c90600401613fb3565b600060405180830381600087803b15801561195257600080fd5b505af1158015611966573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b876040516119ac9594939291906142f5565b60405180910390a250505050949350505050565b60006119ca61272b565b6119d26127cd565b600082116119f25760405162461bcd60e51b815260040161079390614178565b60006119fe8486612b51565b9050611a0f33826003015485612ba5565b600a54611a1a611e96565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b8152600401611a499291906141d0565b60206040518083038186803b158015611a6157600080fd5b505afa158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a9991908101906136a2565b10611ab65760405162461bcd60e51b815260040161079390614158565b6000611ac0611e96565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b8152600401611af3939291906141df565b60206040518083038186803b158015611b0b57600080fd5b505afa158015611b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b4391908101906136a2565b90506000848210611b545784611b56565b815b90506000611b7584600601548560040154611d2790919063ffffffff16565b9050808210611b9657611b89883386612c5d565b9550610678945050505050565b611ba533856003015484612ba5565b611baf8483612cce565b611bb7611e96565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b8152600401611bec93929190613fe1565b60206040518083038186803b158015611c0457600080fd5b505afa158015611c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c3c91908101906136a2565b6002850154909550611c54908663ffffffff611e6e16565b60028501556003840154600090815260086020526040902054611c7690612b46565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b8152600401611ca3929190613f34565b600060405180830381600087803b158015611cbd57600080fd5b505af1158015611cd1573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c588338589604051611d149493929190614274565b60405180910390a2505050509392505050565b6000828201838110156106785760405162461bcd60e51b815260040161079390614078565b600080611d5761272b565b611d5f6127cd565b6000611d6b8486612b51565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611de790612ebd565b611df2858683612f0a565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f90611e32908790613f97565b60405180910390a2509250929050565b6000546001600160a01b03163314611e6c5760405162461bcd60e51b8152600401610793906140b8565b565b600082821115611e905760405162461bcd60e51b815260040161079390614098565b50900390565b6000611eb26d10dbdb1b185d195c985b155d1a5b60921b613170565b905090565b600080611ec261272b565b611eca6127cd565b6000611ed68533612b51565b6002810154909150611eee908563ffffffff611e6e16565b6002820155611efc816131cd565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611f3d93929190613fe1565b60405180910390a28060040154816002015492509250505b9250929050565b600080611f6761272b565b611f6f6127cd565b60008311611f8f5760405162461bcd60e51b815260040161079390614128565b60008481526005602052604090206007810154611fab90613206565b611fb481612851565b6002810154611fc9908563ffffffff611d2716565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c9161200e918991899190613fe1565b60405180910390a2806004015481600201549250925050935093915050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061206f57fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156120ae578160200160208202803883390190505b50905060005b83518110156120f0578381815181106120c957fe5b60200260200101518282815181106120dd57fe5b60209081029190910101526001016120b4565b5060005b82518110156121335782818151811061210957fe5b602002602001015182828651018151811061212057fe5b60209081029190910101526001016120f4565b5092915050565b60008061214561272b565b61214d6127cd565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e082015260088201546101008201526121d790612ebd565b6121e686826003015486612ba5565b6121ef81612851565b6121f98185612cce565b600381015460009081526008602052604090205461221690612b46565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401612243929190613f6a565b600060405180830381600087803b15801561225d57600080fd5b505af1158015612271573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f878785600401546040516122c993929190613fe1565b60405180910390a380600401548160020154925092505094509492505050565b6000806122f461272b565b6122fc6127cd565b60006123088533612b51565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061238490612ebd565b6004810154612399908563ffffffff611d2716565b60048201556123a7816131cd565b60006123be600c548661283c90919063ffffffff16565b905060006123d2868363ffffffff611e6e16565b600584015490915060ff16156125df57600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c191612417918a90600401613fb3565b600060405180830381600087803b15801561243157600080fd5b505af1158015612445573d6000803e3d6000fd5b50505050612451612b2f565b6001600160a01b031663867904b433612468612821565b6001600160a01b031663654a60ac876003015486631bd554d160e21b6040518463ffffffff1660e01b81526004016124a293929190613fe1565b60206040518083038186803b1580156124ba57600080fd5b505afa1580156124ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124f291908101906136a2565b6040518363ffffffff1660e01b815260040161250f929190613f34565b600060405180830381600087803b15801561252957600080fd5b505af115801561253d573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b0316156125da5760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906125a79033908a90600401613f34565b600060405180830381600087803b1580156125c157600080fd5b505af11580156125d5573d6000803e3d6000fd5b505050505b6126c3565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde91612614918a90600401613fb3565b600060405180830381600087803b15801561262e57600080fd5b505af1158015612642573d6000803e3d6000fd5b50505060038401546000908152600860205260409020546126639150612b46565b6001600160a01b031663867904b433836040518363ffffffff1660e01b8152600401612690929190613f34565b600060405180830381600087803b1580156126aa57600080fd5b505af11580156126be573d6000803e3d6000fd5b505050505b6126d1828460030154612943565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf3583106549061270b908a908a90613fb3565b60405180910390a282600401548360020154945094505050509250929050565b612733612821565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b81526004016127609190613f97565b60206040518083038186803b15801561277857600080fd5b505afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127b09190810190613636565b15611e6c5760405162461bcd60e51b8152600401610793906140f8565b6127d5613223565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561280d57600080fd5b505afa158015610835573d6000803e3d6000fd5b6000611eb26c45786368616e6765526174657360981b613170565b60006106788383670de0b6b3a764000061323d565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b03909116936380054666936128999360ff909116906004016142b2565b6040805180830381600087803b1580156128b257600080fd5b505af11580156128c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128ea91908101906136df565b9150915060008360070154600014612916576004840154612911908463ffffffff61327916565b612919565b60005b6006850154909150612931908263ffffffff611d2716565b60068501555060079092019190915550565b8115610a4857631bd554d160e21b81146129e85761295f612821565b6001600160a01b031663654a60ac8284631bd554d160e21b6040518463ffffffff1660e01b815260040161299593929190613fe1565b60206040518083038186803b1580156129ad57600080fd5b505afa1580156129c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129e591908101906136a2565b91505b6129f0612b2f565b6001600160a01b031663867904b4612a066132a3565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015612a3e57600080fd5b505afa158015612a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a769190810190613503565b846040518363ffffffff1660e01b8152600401612a94929190613f6a565b600060405180830381600087803b158015612aae57600080fd5b505af1158015612ac2573d6000803e3d6000fd5b50505050612ace6132a3565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b8152600401612af99190613f97565b600060405180830381600087803b158015612b1357600080fd5b505af1158015612b27573d6000803e3d6000fd5b505050505050565b6000611eb26814de5b9d1a1bd554d160ba1b613170565b6000610f2882613170565b60008281526005602052604090206007810154612b6d90613206565b60018101546001600160a01b03838116911614612b9c5760405162461bcd60e51b815260040161079390614108565b610f2881612851565b6000828152600860205260409020548190612bbf90612b46565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401612bea9190613f26565b60206040518083038186803b158015612c0257600080fd5b505afa158015612c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c3a91908101906136a2565b1015612c585760405162461bcd60e51b8152600401610793906140a8565b505050565b600080612c6b858585612f0a565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612cbe93929190613fe1565b60405180910390a3935093915050565b60008111612cee5760405162461bcd60e51b815260040161079390614178565b600682015415612d5057600082600601548211612d0b5781612d11565b82600601545b6006840154909150612d29908263ffffffff611e6e16565b6006840155612d3e828263ffffffff611e6e16565b9150612d4e818460030154612943565b505b8015610a48576004820154612d6b908263ffffffff611e6e16565b6004830155600582015460ff1615612e88576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612db2918590600401613fb3565b600060405180830381600087803b158015612dcc57600080fd5b505af1158015612de0573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612e8357600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612e50929116908590600401613f34565b600060405180830381600087803b158015612e6a57600080fd5b505af1158015612e7e573d6000803e3d6000fd5b505050505b610a48565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b391612af9918590600401613fb3565b612eca8160e00151613206565b42612ee9612ed7306132b8565b6101008401519063ffffffff611d2716565b1115612f075760405162461bcd60e51b8152600401610793906140e8565b50565b6000806000612f2a84600601548560040154611d2790919063ffffffff16565b90508360040154925083600201549150612f4985856003015483612ba5565b6003840154600090815260086020526040902054612f6690612b46565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b8152600401612f93929190613f6a565b600060405180830381600087803b158015612fad57600080fd5b505af1158015612fc1573d6000803e3d6000fd5b50505050600584015460ff16156130df576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b99361300c9390929101613fb3565b600060405180830381600087803b15801561302657600080fd5b505af115801561303a573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b0316156130da5760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a3926130a7928b929101613f6a565b600060405180830381600087803b1580156130c157600080fd5b505af11580156130d5573d6000803e3d6000fd5b505050505b61314c565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b3936131199390929101613fb3565b600060405180830381600087803b15801561313357600080fd5b505af1158015613147573d6000803e3d6000fd5b505050505b61315e84600601548560030154612943565b6131678461338b565b50935093915050565b60008181526003602090815260408083205490516001600160a01b0390911691821515916131a091869101613ef0565b604051602081830303815290604052906121335760405162461bcd60e51b81526004016107939190614017565b60048101546131db57612f07565b600a5481546131e9906111b4565b11612f075760405162461bcd60e51b815260040161079390614028565b80612f075760405162461bcd60e51b815260040161079390614088565b6000611eb26b53797374656d53746174757360a01b613170565b600080600a8304613254868663ffffffff6133b016565b8161325b57fe5b0490506005600a82061061326d57600a015b600a9004949350505050565b6000670de0b6b3a7640000613294848463ffffffff6133b016565b8161329b57fe5b049392505050565b6000611eb266119959541bdbdb60ca1b613170565b60006132c26133ea565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b85604051602001613308929190613eca565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161333b929190613fb3565b60206040518083038186803b15801561335357600080fd5b505afa158015613367573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f2891908101906136a2565b6000600482018190556002820181905560068201819055600782015542600890910155565b6000826133bf57506000610f28565b828202828482816133cc57fe5b04146106785760405162461bcd60e51b8152600401610793906140c8565b6000611eb26e466c657869626c6553746f7261676560881b613170565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610f288161440e565b8051610f288161440e565b60008083601f84011261348957600080fd5b50813567ffffffffffffffff8111156134a157600080fd5b602083019150836020820283011115611f5557600080fd5b8035610f2881614422565b8051610f2881614422565b8035610f288161442b565b8051610f288161442b565b6000602082840312156134f757600080fd5b6000610cf38484613461565b60006020828403121561351557600080fd5b6000610cf3848461346c565b6000806040838503121561353457600080fd5b60006135408585613461565b9250506020613551858286016134cf565b9150509250929050565b60008060006060848603121561357057600080fd5b600061357c8686613461565b935050602061358d868287016134cf565b925050604061359e868287016134cf565b9150509250925092565b600080600080604085870312156135be57600080fd5b843567ffffffffffffffff8111156135d557600080fd5b6135e187828801613477565b9450945050602085013567ffffffffffffffff81111561360057600080fd5b61360c87828801613477565b95989497509550505050565b60006020828403121561362a57600080fd5b6000610cf384846134b9565b60006020828403121561364857600080fd5b6000610cf384846134c4565b6000806040838503121561366757600080fd5b600061367385856134c4565b9250506020613551858286016134c4565b60006020828403121561369657600080fd5b6000610cf384846134cf565b6000602082840312156136b457600080fd5b6000610cf384846134da565b600080604083850312156136d357600080fd5b600061354085856134cf565b600080604083850312156136f257600080fd5b60006136fe85856134da565b9250506020613551858286016134da565b600061371b83836137ae565b505060200190565b61372c8161437b565b82525050565b61372c8161436b565b61372c6137478261436b565b6143ed565b600061375782614347565b613761818561434b565b935061376c83614341565b8060005b8381101561379a578151613784888261370f565b975061378f83614341565b925050600101613770565b509495945050505050565b61372c81614376565b61372c81610950565b61372c6137c382610950565b610950565b61372c81614382565b60006137dc82614347565b6137e6818561434b565b93506137f681856020860161438d565b6137ff816143fe565b9093019392505050565b6000613816600e8361434b565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b600061384060358361434b565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061389760158361434b565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b60006138c8600f8361434b565b6e151c985b9cd9995c8819985a5b1959608a1b815260200192915050565b60006138f360148361434b565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613923601b8361434b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061395c600e8361434b565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613986601e8361434b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006139bf601183614354565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006139ec60128361434b565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613a1a602f8361434b565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613a6b60218361434b565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613aae601a8361434b565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000613ae760138361434b565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000613b16601983614354565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613b4f600c8361434b565b6b496e76616c6964207261746560a01b815260200192915050565b6000613b7760108361434b565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b6000610f28600083614354565b6000613bb0600d8361434b565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000613bd960178361434b565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000613c1260178361434b565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b6000613c4b60158361434b565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b6000613c7c60168361434b565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b6000613cae601f8361434b565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b6000613ce760178361434b565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b8051610120830190613d2584826137ae565b506020820151613d386020850182613732565b506040820151613d4b60408501826137ae565b506060820151613d5e60608501826137ae565b506080820151613d7160808501826137ae565b5060a0820151613d8460a08501826137a5565b5060c0820151613d9760c08501826137ae565b5060e0820151613daa60e08501826137ae565b506101008201516108356101008501826137ae565b8054610120830190613dd0816143df565b613dda85826137ae565b50506001820154613dea816143b9565b613df76020860182613732565b50506002820154613e07816143df565b613e1460408601826137ae565b50506003820154613e24816143df565b613e3160608601826137ae565b50506004820154613e41816143df565b613e4e60808601826137ae565b50506005820154613e5e816143cc565b613e6b60a08601826137a5565b50506006820154613e7b816143df565b613e8860c08601826137ae565b50506007820154613e98816143df565b613ea560e08601826137ae565b50506008820154613eb5816143df565b613ec36101008601826137ae565b5050505050565b6000613ed682856137b7565b602082019150613ee6828461373b565b5060140192915050565b6000613efb826139b2565b9150613f0782846137b7565b50602001919050565b6000613efb82613b09565b6000610f2882613b96565b60208101610f288284613732565b60408101613f428285613723565b61067860208301846137ae565b60408101613f5d8285613732565b6106786020830184613732565b60408101613f428285613732565b60208082528101610678818461374c565b60208101610f2882846137a5565b60208101610f2882846137ae565b60408101613f5d82856137ae565b60408101613f4282856137ae565b60408101613fcf82856137ae565b8181036020830152610cf381846137d1565b60608101613fef82866137ae565b613ffc60208301856137ae565b610cf360408301846137ae565b60208101610f2882846137c8565b6020808252810161067881846137d1565b60208082528101610f2881613809565b60208082528101610f2881613833565b60208082528101610f288161388a565b60208082528101610f28816138bb565b60208082528101610f28816138e6565b60208082528101610f2881613916565b60208082528101610f288161394f565b60208082528101610f2881613979565b60208082528101610f28816139df565b60208082528101610f2881613a0d565b60208082528101610f2881613a5e565b60208082528101610f2881613aa1565b60208082528101610f2881613ada565b60208082528101610f2881613b42565b60208082528101610f2881613b6a565b60208082528101610f2881613ba3565b60208082528101610f2881613bcc565b60208082528101610f2881613c05565b60208082528101610f2881613c3e565b60208082528101610f2881613c6f565b60208082528101610f2881613ca1565b60208082528101610f2881613cda565b61014081016141978285613d13565b6106786101208301846137ae565b61016081016141b48286613d13565b6141c26101208301856137ae565b610cf36101408301846137ae565b61014081016141978285613dbf565b61016081016141b48286613dbf565b61012081016141fd828c6137ae565b61420a602083018b613732565b614217604083018a6137ae565b61422460608301896137ae565b61423160808301886137ae565b61423e60a08301876137a5565b61424b60c08301866137ae565b61425860e08301856137ae565b6142666101008301846137ae565b9a9950505050505050505050565b6080810161428282876137ae565b61428f6020830186613723565b61429c60408301856137ae565b6142a960608301846137ae565b95945050505050565b606081016142c082866137ae565b6142cd60208301856137ae565b610cf360408301846137a5565b608081016142e882876137ae565b61428f60208301866137ae565b60a0810161430382886137ae565b61431060208301876137ae565b61431d60408301866137ae565b61432a60608301856137ae565b61433760808301846137ae565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610f2882614359565b151590565b6000610f28825b6000610f288261436b565b60005b838110156143a8578181015183820152602001614390565b838111156108355750506000910152565b6000610f286143c783610950565b614359565b6000610f286143da83610950565b614365565b6000610f286137c383610950565b6000610f28826000610f2882614408565b601f01601f191690565b60601b90565b6144178161436b565b8114612f0757600080fd5b61441781614376565b6144178161095056fea365627a7a723158207767f5723db183738dbd687ef30f11094febc0e25d48bdceab6afdeeab4fa2ae6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ICollateralManager",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByRepayment",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "claim",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "liqAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "loans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address payable",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "short",
							"type": "bool"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastInteraction",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "contract ICollateralManager",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "pendingWithdrawals",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"name": "setMinCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x5dd1b9e4ebdba561312562217bb847ddc6aa177ce0c094ba969370703e1c84e6",
				"urls": [
					"bzz-raw://caca0ff9c60a566b561ffdf94e4f654937933aaffb3961f84646078f595e3ca4",
					"dweb:/ipfs/QmU74ogwrNJY2ubfW73XxyhCx1ZpiRXsGmark979LbUdHm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralEth.sol": "CollateralEth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralEth.sol": {
						"keccak256": "0x5dd1b9e4ebdba561312562217bb847ddc6aa177ce0c094ba969370703e1c84e6",
						"urls": [
							"bzz-raw://caca0ff9c60a566b561ffdf94e4f654937933aaffb3961f84646078f595e3ca4",
							"dweb:/ipfs/QmU74ogwrNJY2ubfW73XxyhCx1ZpiRXsGmark979LbUdHm"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralErc20": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b5060405162004aa538038062004aa583398101604081905262000041916200016c565b8787878787878380876001600160a01b0381166200007c5760405162461bcd60e51b81526004016200007390620002aa565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c991849062000284565b60405180910390a150600280546001600160a01b03199081166001600160a01b0393841617909155600680549091169782169790971790965550600492909255600a55600b5550600d8054610100600160a81b031916610100959092169490940217909255600e55506200032b95505050505050565b80516200014c81620002fb565b92915050565b80516200014c8162000315565b80516200014c8162000320565b600080600080600080600080610100898b0312156200018a57600080fd5b6000620001988b8b6200013f565b9850506020620001ab8b828c016200015f565b9750506040620001be8b828c016200013f565b9650506060620001d18b828c0162000152565b9550506080620001e48b828c0162000152565b94505060a0620001f78b828c0162000152565b93505060c06200020a8b828c016200013f565b92505060e06200021d8b828c0162000152565b9150509295985092959890939650565b6200023881620002ee565b82525050565b6200023881620002c5565b600062000258601983620002bc565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200029482856200022d565b620002a360208301846200023e565b9392505050565b602080825281016200014c8162000249565b90815260200190565b60006200014c82620002e2565b90565b60006200014c82620002c5565b6001600160a01b031690565b60006200014c82620002d5565b6200030681620002c5565b81146200031257600080fd5b50565b6200030681620002d2565b6200030681620002d5565b61476a806200033b6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637418536011610130578063925ead11116100b8578063ba2de9bc1161007c578063ba2de9bc1461046a578063d2b8035a14610472578063de81eda914610485578063e1ec3c6814610498578063f93451ed146104c057610232565b8063925ead1114610421578063a76cdfa514610429578063aa2d8ce31461043c578063b094f2c41461044f578063b562a1ab1461046257610232565b8063883a2209116100ff578063883a2209146103cb578063899ffef4146103de5780638cd2e0c7146103f35780638da5cb5b1461040657806390abb4d91461040e57610232565b8063741853601461039557806379ba50971461039d5780637e132355146103a5578063846321a4146103b857610232565b8063361e2086116101be578063441a3e7011610182578063441a3e701461034c578063481c6a751461035f57806353a47bb7146103675780635eb2ad011461036f57806372e18b6a1461038257610232565b8063361e20861461030e57806338245377146103165780633cc3ffc7146103295780634065b81b1461033157806341c738011461033957610232565b806310cfe9061161020557806310cfe9061461029e5780631627540c146102b357806323d60e2e146102c65780632af64bd3146102d957806330edd961146102ee57610232565b806304f3bcec146102375780630710285c146102555780630aebeb4e1461026a5780630efe6a8b1461028b575b600080fd5b61023f6104d3565b60405161024c91906142d5565b60405180910390f35b6102686102633660046136f5565b6104e2565b005b61027d61027836600461381e565b610522565b60405161024c92919061428c565b61027d6102993660046136f5565b610564565b6102a6610659565b60405161024c91906141c9565b6102686102c136600461367f565b61066d565b6102686102d4366004613742565b6106cb565b6102e1610791565b60405161024c9190614262565b6103016102fc36600461381e565b6108a9565b60405161024c9190614270565b6103016108c7565b61030161032436600461381e565b6108cd565b6103016108df565b6102e16108e5565b61030161034736600461381e565b6108ee565b61027d61035a36600461385a565b610a0d565b61023f610a5f565b6102a6610a6e565b61026861037d3660046136bb565b610a7d565b6102e1610390366004613742565b610ab3565b610268610b77565b610268610ccd565b6103016103b336600461385a565b610d69565b6102686103c636600461381e565b610e01565b6103016103d936600461381e565b610e3e565b6103e6610e63565b60405161024c9190614251565b61027d6104013660046136f5565b610ff3565b6102a661100e565b61026861041c3660046137b2565b61101d565b610301611069565b61026861043736600461381e565b61106f565b61030161044a36600461381e565b6110ac565b61030161045d36600461381e565b611170565b610301611195565b61030161119b565b61027d61048036600461385a565b6111a1565b6102a661049336600461381e565b6111b9565b6104ab6104a636600461381e565b6111d4565b60405161024c999897969594939291906144ea565b6103016104ce3660046138a9565b61122e565b6002546001600160a01b031681565b60006104ef848484611315565b905060006104fc82611170565b600d5490915061051b9061010090046001600160a01b0316338361167c565b5050505050565b60008061052f33846116da565b9092509050600061053f82611170565b600d5490915061055e9061010090046001600160a01b0316338361167c565b50915091565b600d54604051636eb1769f60e11b815260009182916101009091046001600160a01b03169063dd62ed3e9061059f90339030906004016141d7565b60206040518083038186803b1580156105b757600080fd5b505afa1580156105cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105ef919081019061383c565b8311156106175760405162461bcd60e51b815260040161060e90614324565b60405180910390fd5b600d546106349061010090046001600160a01b03163330866117d0565b600061063f84610e3e565b905061064c8686836117f4565b9097909650945050505050565b600d5461010090046001600160a01b031681565b6106756118c5565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906106c09083906141c9565b60405180910390a150565b6106d36118c5565b8281146106f25760405162461bcd60e51b815260040161060e90614314565b60005b8381101561078257600085858381811061070b57fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061075f57fe5b6020908102929092013583525081019190915260400160002055506001016106f5565b5061078b610b77565b50505050565b6000606061079d610e63565b905060005b815181101561089f5760008282815181106107b957fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a7219061080a908590600401614270565b60206040518083038186803b15801561082257600080fd5b505afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085a919081019061369d565b6001600160a01b031614158061088557506000818152600360205260409020546001600160a01b0316155b1561089657600093505050506108a6565b506001016107a2565b5060019150505b90565b600781815481106108b657fe5b600091825260209091200154905081565b600c5481565b60086020526000908152604090205481565b600e5481565b600d5460ff1681565b60006108f86135a1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008909101546101008201526109836118f1565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b81526004016109b6939291906144a1565b60206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a06919081019061383c565b9392505050565b6000806000610a1b84610e3e565b9050610a278582611912565b90935091506000610a3783611170565b600d54909150610a569061010090046001600160a01b0316338361167c565b50509250929050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610a856118c5565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610ac757506000610b6f565b60005b84811015610b69576000868683818110610ae057fe5b9050602002013590508060078381548110610af757fe5b906000526020600020015414610b1257600092505050610b6f565b60078281548110610b1f57fe5b906000526020600020015460086000878786818110610b3a57fe5b9050602002013581526020019081526020016000205414610b6057600092505050610b6f565b50600101610aca565b50600190505b949350505050565b6060610b81610e63565b905060005b8151811015610cc9576000828281518110610b9d57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610bdf91906141be565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610c0b92919061429a565b60206040518083038186803b158015610c2357600080fd5b505afa158015610c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c5b919081019061369d565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610cb7908490849061427e565b60405180910390a15050600101610b86565b5050565b6001546001600160a01b03163314610cf75760405162461bcd60e51b815260040161060e90614304565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610d3a926001600160a01b039182169291169061420d565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610d736118f1565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610da894939291906145cd565b60206040518083038186803b158015610dc057600080fd5b505afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610df8919081019061383c565b90505b92915050565b610e096118c5565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d906106c0908390614270565b600080610e4e6012600e546119b7565b600a0a9050610a06838263ffffffff6119df16565b606080610e6e611a19565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610ead57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610ed757fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600281518110610efd57fe5b6020026020010181815250506b53797374656d53746174757360a01b81600381518110610f2657fe5b6020026020010181815250506814de5b9d1a1bd554d160ba1b81600481518110610f4c57fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b81600581518110610f7757fe5b6020026020010181815250506060610f8f8383611a6a565b9050610feb816007805480602002602001604051908101604052809291908181526020018280548015610fe157602002820191906000526020600020905b815481526020019060010190808311610fcd575b5050505050611a6a565b935050505090565b60008061100285338686611b26565b90969095509350505050565b6000546001600160a01b031681565b6110256118c5565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916106c09160ff90911690614262565b600a5481565b6110776118c5565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c906106c0908390614270565b60006110b66135a1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008909101546101008201526111416118f1565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b81526004016109b6929190614484565b6000806111806012600e546119b7565b600a0a9050610a06838263ffffffff611cd516565b60045481565b600b5481565b6000806111ae8484611d0a565b909590945092505050565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b600d54604051636eb1769f60e11b815260009161010090046001600160a01b03169063dd62ed3e9061126690339030906004016141d7565b60206040518083038186803b15801561127e57600080fd5b505afa158015611292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112b6919081019061383c565b8411156112d55760405162461bcd60e51b815260040161060e90614324565b600d546112f29061010090046001600160a01b03163330876117d0565b60006112fd85610e3e565b905061130c818585600061214c565b95945050505050565b600061131f6127f4565b611327612896565b600082116113475760405162461bcd60e51b815260040161060e90614474565b600061135384866128ea565b90506113643382600301548561293e565b600a5461136f6118f1565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b815260040161139e9291906144cc565b60206040518083038186803b1580156113b657600080fd5b505afa1580156113ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113ee919081019061383c565b1061140b5760405162461bcd60e51b815260040161060e90614454565b60006114156118f1565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b8152600401611448939291906144db565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611498919081019061383c565b905060008482106114a957846114ab565b815b905060006114ca846006015485600401546129f190919063ffffffff16565b90508082106114eb576114de883386612a16565b9550610a06945050505050565b6114fa3385600301548461293e565b6115048483612a87565b61150c6118f1565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b8152600401611541939291906142ba565b60206040518083038186803b15801561155957600080fd5b505afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611591919081019061383c565b60028501549095506115a9908663ffffffff6119b716565b600285015560038401546000908152600860205260409020546115cb90612cac565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b81526004016115f89291906141f2565b600060405180830381600087803b15801561161257600080fd5b505af1158015611626573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5883385896040516116699493929190614570565b60405180910390a2505050509392505050565b6040516116d590849063a9059cbb60e01b9061169e9086908690602401614243565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612cb7565b505050565b6000806116e56127f4565b6116ed612896565b60006116f984866128ea565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061177590612d9c565b611780858683612de9565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f906117c0908790614270565b60405180910390a2509250929050565b60405161078b9085906323b872dd60e01b9061169e9087908790879060240161421b565b6000806117ff6127f4565b611807612896565b600083116118275760405162461bcd60e51b815260040161060e90614414565b600084815260056020526040902060078101546118439061304f565b61184c8161306c565b6002810154611861908563ffffffff6129f116565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c916118a69189918991906142ba565b60405180910390a2806004015481600201549250925050935093915050565b6000546001600160a01b031633146118ef5760405162461bcd60e51b815260040161060e906143a4565b565b600061190d6d10dbdb1b185d195c985b155d1a5b60921b61315e565b905090565b60008061191d6127f4565b611925612896565b600061193185336128ea565b6002810154909150611949908563ffffffff6119b716565b6002820155611957816131bb565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611998939291906142ba565b60405180910390a28060040154816002015492509250505b9250929050565b6000828211156119d95760405162461bcd60e51b815260040161060e90614374565b50900390565b6000826119ee57506000610dfb565b828202828482816119fb57fe5b0414610df85760405162461bcd60e51b815260040161060e906143b4565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611a5b57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611a9a578160200160208202803883390190505b50905060005b8351811015611adc57838181518110611ab557fe5b6020026020010151828281518110611ac957fe5b6020908102919091010152600101611aa0565b5060005b8251811015611b1f57828181518110611af557fe5b6020026020010151828286510181518110611b0c57fe5b6020908102919091010152600101611ae0565b5092915050565b600080611b316127f4565b611b39612896565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152611bc390612d9c565b611bd28682600301548661293e565b611bdb8161306c565b611be58185612a87565b6003810154600090815260086020526040902054611c0290612cac565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401611c2f929190614243565b600060405180830381600087803b158015611c4957600080fd5b505af1158015611c5d573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f87878560040154604051611cb5939291906142ba565b60405180910390a380600401548160020154925092505094509492505050565b6000808211611cf65760405162461bcd60e51b815260040161060e90614384565b6000828481611d0157fe5b04949350505050565b600080611d156127f4565b611d1d612896565b6000611d2985336128ea565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611da590612d9c565b6004810154611dba908563ffffffff6129f116565b6004820155611dc8816131bb565b6000611ddf600c54866131f490919063ffffffff16565b90506000611df3868363ffffffff6119b716565b600584015490915060ff161561200057600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c191611e38918a9060040161428c565b600060405180830381600087803b158015611e5257600080fd5b505af1158015611e66573d6000803e3d6000fd5b50505050611e72613209565b6001600160a01b031663867904b433611e89613220565b6001600160a01b031663654a60ac876003015486631bd554d160e21b6040518463ffffffff1660e01b8152600401611ec3939291906142ba565b60206040518083038186803b158015611edb57600080fd5b505afa158015611eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f13919081019061383c565b6040518363ffffffff1660e01b8152600401611f309291906141f2565b600060405180830381600087803b158015611f4a57600080fd5b505af1158015611f5e573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b031615611ffb5760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a5190611fc89033908a906004016141f2565b600060405180830381600087803b158015611fe257600080fd5b505af1158015611ff6573d6000803e3d6000fd5b505050505b6120e4565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde91612035918a9060040161428c565b600060405180830381600087803b15801561204f57600080fd5b505af1158015612063573d6000803e3d6000fd5b50505060038401546000908152600860205260409020546120849150612cac565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016120b19291906141f2565b600060405180830381600087803b1580156120cb57600080fd5b505af11580156120df573d6000803e3d6000fd5b505050505b6120f282846003015461323b565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf3583106549061212c908a908a9061428c565b60405180910390a282600401548360020154945094505050509250929050565b60006121566127f4565b61215e612896565b600d5460ff166121805760405162461bcd60e51b815260040161060e90614404565b6000838152600860205260409020546121ab5760405162461bcd60e51b815260040161060e90614334565b6121b3613220565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016121de9190614270565b60206040518083038186803b1580156121f657600080fd5b505afa15801561220a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061222e91908101906137d0565b1561224b5760405162461bcd60e51b815260040161060e906143e4565b600b5485101561226d5760405162461bcd60e51b815260040161060e90614444565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb40906122a4908990899060040161428c565b604080518083038186803b1580156122bb57600080fd5b505afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122f391908101906137ee565b91509150818015612302575080155b61231e5760405162461bcd60e51b815260040161060e906143c4565b6123288786610d69565b8611156123475760405162461bcd60e51b815260040161060e90614434565b600061235e600c54886131f490919063ffffffff16565b90506000612372888363ffffffff6119b716565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156123c457600080fd5b505af11580156123d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123fc919081019061383c565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff19169215159290921790915590516006830155516007820155905160088201559095506124c69061306c565b6124d0828861323b565b85156126c3576124de613209565b6001600160a01b031663867904b4336124f5613220565b6001600160a01b031663654a60ac8b86631bd554d160e21b6040518463ffffffff1660e01b815260040161252b939291906142ba565b60206040518083038186803b15801561254357600080fd5b505afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061257b919081019061383c565b6040518363ffffffff1660e01b81526004016125989291906141f2565b600060405180830381600087803b1580156125b257600080fd5b505af11580156125c6573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c191506125fc908a908c9060040161428c565b600060405180830381600087803b15801561261657600080fd5b505af115801561262a573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b03161590506126be576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a519061268b9033908c906004016141f2565b600060405180830381600087803b1580156126a557600080fd5b505af11580156126b9573d6000803e3d6000fd5b505050505b61279f565b6000878152600860205260409020546126db90612cac565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016127089291906141f2565b600060405180830381600087803b15801561272257600080fd5b505af1158015612736573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde915061276c908a908c9060040161428c565b600060405180830381600087803b15801561278657600080fd5b505af115801561279a573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b876040516127e09594939291906145e8565b60405180910390a250505050949350505050565b6127fc613220565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b81526004016128299190614270565b60206040518083038186803b15801561284157600080fd5b505afa158015612855573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061287991908101906137d0565b156118ef5760405162461bcd60e51b815260040161060e906143e4565b61289e6133f1565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156128d657600080fd5b505afa15801561078b573d6000803e3d6000fd5b600082815260056020526040902060078101546129069061304f565b60018101546001600160a01b038381169116146129355760405162461bcd60e51b815260040161060e906143f4565b610dfb8161306c565b600082815260086020526040902054819061295890612cac565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161298391906141c9565b60206040518083038186803b15801561299b57600080fd5b505afa1580156129af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129d3919081019061383c565b10156116d55760405162461bcd60e51b815260040161060e90614394565b600082820183811015610df85760405162461bcd60e51b815260040161060e90614344565b600080612a24858585612de9565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612a77939291906142ba565b60405180910390a3935093915050565b60008111612aa75760405162461bcd60e51b815260040161060e90614474565b600682015415612b0957600082600601548211612ac45781612aca565b82600601545b6006840154909150612ae2908263ffffffff6119b716565b6006840155612af7828263ffffffff6119b716565b9150612b0781846003015461323b565b505b8015610cc9576004820154612b24908263ffffffff6119b716565b6004830155600582015460ff1615612c41576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612b6b91859060040161428c565b600060405180830381600087803b158015612b8557600080fd5b505af1158015612b99573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612c3c57600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612c099291169085906004016141f2565b600060405180830381600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050505b610cc9565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b391612c7691859060040161428c565b600060405180830381600087803b158015612c9057600080fd5b505af1158015612ca4573d6000803e3d6000fd5b505050505050565b6000610dfb8261315e565b612cc9826001600160a01b031661340b565b612ce55760405162461bcd60e51b815260040161060e90614464565b60006060836001600160a01b031683604051612d019190614192565b6000604051808303816000865af19150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509150915081612d655760405162461bcd60e51b815260040161060e90614364565b80511561078b5780806020019051612d8091908101906137d0565b61078b5760405162461bcd60e51b815260040161060e90614424565b612da98160e0015161304f565b42612dc8612db630613411565b6101008401519063ffffffff6129f116565b1115612de65760405162461bcd60e51b815260040161060e906143d4565b50565b6000806000612e09846006015485600401546129f190919063ffffffff16565b90508360040154925083600201549150612e288585600301548361293e565b6003840154600090815260086020526040902054612e4590612cac565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b8152600401612e72929190614243565b600060405180830381600087803b158015612e8c57600080fd5b505af1158015612ea0573d6000803e3d6000fd5b50505050600584015460ff1615612fbe576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b993612eeb939092910161428c565b600060405180830381600087803b158015612f0557600080fd5b505af1158015612f19573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b031615612fb95760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a392612f86928b929101614243565b600060405180830381600087803b158015612fa057600080fd5b505af1158015612fb4573d6000803e3d6000fd5b505050505b61302b565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b393612ff8939092910161428c565b600060405180830381600087803b15801561301257600080fd5b505af1158015613026573d6000803e3d6000fd5b505050505b61303d8460060154856003015461323b565b613046846134e4565b50935093915050565b80612de65760405162461bcd60e51b815260040161060e90614354565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b03909116936380054666936130b49360ff909116906004016145a5565b6040805180830381600087803b1580156130cd57600080fd5b505af11580156130e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131059190810190613879565b915091506000836007015460001461313157600484015461312c908463ffffffff61350916565b613134565b60005b600685015490915061314c908263ffffffff6129f116565b60068501555060079092019190915550565b60008181526003602090815260408083205490516001600160a01b03909116918215159161318e9186910161419e565b60405160208183030381529060405290611b1f5760405162461bcd60e51b815260040161060e91906142e3565b60048101546131c957612de6565b600a5481546131d7906110ac565b11612de65760405162461bcd60e51b815260040161060e906142f4565b6000610df88383670de0b6b3a7640000613533565b600061190d6814de5b9d1a1bd554d160ba1b61315e565b600061190d6c45786368616e6765526174657360981b61315e565b8115610cc957631bd554d160e21b81146132e057613257613220565b6001600160a01b031663654a60ac8284631bd554d160e21b6040518463ffffffff1660e01b815260040161328d939291906142ba565b60206040518083038186803b1580156132a557600080fd5b505afa1580156132b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506132dd919081019061383c565b91505b6132e8613209565b6001600160a01b031663867904b46132fe61356f565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561333657600080fd5b505afa15801561334a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061336e919081019061369d565b846040518363ffffffff1660e01b815260040161338c929190614243565b600060405180830381600087803b1580156133a657600080fd5b505af11580156133ba573d6000803e3d6000fd5b505050506133c661356f565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b8152600401612c769190614270565b600061190d6b53797374656d53746174757360a01b61315e565b3b151590565b600061341b613584565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b8560405160200161346192919061416c565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161349492919061428c565b60206040518083038186803b1580156134ac57600080fd5b505afa1580156134c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dfb919081019061383c565b6000600482018190556002820181905560068201819055600782015542600890910155565b6000670de0b6b3a7640000613524848463ffffffff6119df16565b8161352b57fe5b049392505050565b600080600a830461354a868663ffffffff6119df16565b8161355157fe5b0490506005600a82061061356357600a015b600a9004949350505050565b600061190d66119959541bdbdb60ca1b61315e565b600061190d6e466c657869626c6553746f7261676560881b61315e565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610dfb81614701565b8051610dfb81614701565b60008083601f84011261362357600080fd5b50813567ffffffffffffffff81111561363b57600080fd5b6020830191508360208202830111156119b057600080fd5b8035610dfb81614715565b8051610dfb81614715565b8035610dfb8161471e565b8051610dfb8161471e565b60006020828403121561369157600080fd5b6000610b6f84846135fb565b6000602082840312156136af57600080fd5b6000610b6f8484613606565b600080604083850312156136ce57600080fd5b60006136da85856135fb565b92505060206136eb85828601613669565b9150509250929050565b60008060006060848603121561370a57600080fd5b600061371686866135fb565b935050602061372786828701613669565b925050604061373886828701613669565b9150509250925092565b6000806000806040858703121561375857600080fd5b843567ffffffffffffffff81111561376f57600080fd5b61377b87828801613611565b9450945050602085013567ffffffffffffffff81111561379a57600080fd5b6137a687828801613611565b95989497509550505050565b6000602082840312156137c457600080fd5b6000610b6f8484613653565b6000602082840312156137e257600080fd5b6000610b6f848461365e565b6000806040838503121561380157600080fd5b600061380d858561365e565b92505060206136eb8582860161365e565b60006020828403121561383057600080fd5b6000610b6f8484613669565b60006020828403121561384e57600080fd5b6000610b6f8484613674565b6000806040838503121561386d57600080fd5b60006136da8585613669565b6000806040838503121561388c57600080fd5b60006138988585613674565b92505060206136eb85828601613674565b6000806000606084860312156138be57600080fd5b60006137168686613669565b60006138d68383613969565b505060200190565b6138e78161466e565b82525050565b6138e78161465e565b6138e76139028261465e565b6146e0565b60006139128261463a565b61391c818561463e565b935061392783614634565b8060005b8381101561395557815161393f88826138ca565b975061394a83614634565b92505060010161392b565b509495945050505050565b6138e781614669565b6138e7816108a6565b6138e761397e826108a6565b6108a6565b600061398e8261463a565b6139988185614647565b93506139a8818560208601614680565b9290920192915050565b6138e781614675565b60006139c68261463a565b6139d0818561463e565b93506139e0818560208601614680565b6139e9816146f1565b9093019392505050565b6000613a00600e8361463e565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b6000613a2a60358361463e565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613a8160158361463e565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b6000613ab260198361463e565b7f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000815260200192915050565b6000613aeb60148361463e565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613b1b601b8361463e565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613b54600e8361463e565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613b7e60208361463e565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000613bb7601e8361463e565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613bf0601a8361463e565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000613c29601183614647565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000613c5660128361463e565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613c84602f8361463e565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613cd560218361463e565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613d18601a8361463e565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000613d5160138361463e565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000613d80601983614647565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613db9600c8361463e565b6b496e76616c6964207261746560a01b815260200192915050565b6000613de160108361463e565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b6000613e0d600d8361463e565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000613e3660178361463e565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000613e6f602a8361463e565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000613ebb60178361463e565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b6000613ef460158361463e565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b6000613f2560168361463e565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b6000613f57601f8361463e565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b6000613f9060178361463e565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b8051610120830190613fce8482613969565b506020820151613fe160208501826138ed565b506040820151613ff46040850182613969565b5060608201516140076060850182613969565b50608082015161401a6080850182613969565b5060a082015161402d60a0850182613960565b5060c082015161404060c0850182613969565b5060e082015161405360e0850182613969565b5061010082015161078b610100850182613969565b8054610120830190614079816146d2565b6140838582613969565b50506001820154614093816146ac565b6140a060208601826138ed565b505060028201546140b0816146d2565b6140bd6040860182613969565b505060038201546140cd816146d2565b6140da6060860182613969565b505060048201546140ea816146d2565b6140f76080860182613969565b50506005820154614107816146bf565b61411460a0860182613960565b50506006820154614124816146d2565b61413160c0860182613969565b50506007820154614141816146d2565b61414e60e0860182613969565b5050600882015461415e816146d2565b61051b610100860182613969565b60006141788285613972565b60208201915061418882846138f6565b5060140192915050565b6000610a068284613983565b60006141a982613c1c565b91506141b58284613972565b50602001919050565b60006141a982613d73565b60208101610dfb82846138ed565b604081016141e582856138de565b610a0660208301846138ed565b6040810161420082856138de565b610a066020830184613969565b604081016141e582856138ed565b6060810161422982866138ed565b61423660208301856138ed565b610b6f6040830184613969565b6040810161420082856138ed565b60208082528101610df88184613907565b60208101610dfb8284613960565b60208101610dfb8284613969565b604081016141e58285613969565b604081016142008285613969565b604081016142a88285613969565b8181036020830152610b6f81846139bb565b606081016142c88286613969565b6142366020830185613969565b60208101610dfb82846139b2565b60208082528101610df881846139bb565b60208082528101610dfb816139f3565b60208082528101610dfb81613a1d565b60208082528101610dfb81613a74565b60208082528101610dfb81613aa5565b60208082528101610dfb81613ade565b60208082528101610dfb81613b0e565b60208082528101610dfb81613b47565b60208082528101610dfb81613b71565b60208082528101610dfb81613baa565b60208082528101610dfb81613be3565b60208082528101610dfb81613c49565b60208082528101610dfb81613c77565b60208082528101610dfb81613cc8565b60208082528101610dfb81613d0b565b60208082528101610dfb81613d44565b60208082528101610dfb81613dac565b60208082528101610dfb81613dd4565b60208082528101610dfb81613e00565b60208082528101610dfb81613e29565b60208082528101610dfb81613e62565b60208082528101610dfb81613eae565b60208082528101610dfb81613ee7565b60208082528101610dfb81613f18565b60208082528101610dfb81613f4a565b60208082528101610dfb81613f83565b61014081016144938285613fbc565b610a06610120830184613969565b61016081016144b08286613fbc565b6144be610120830185613969565b610b6f610140830184613969565b61014081016144938285614068565b61016081016144b08286614068565b61012081016144f9828c613969565b614506602083018b6138ed565b614513604083018a613969565b6145206060830189613969565b61452d6080830188613969565b61453a60a0830187613960565b61454760c0830186613969565b61455460e0830185613969565b614562610100830184613969565b9a9950505050505050505050565b6080810161457e8287613969565b61458b60208301866138de565b6145986040830185613969565b61130c6060830184613969565b606081016145b38286613969565b6145c06020830185613969565b610b6f6040830184613960565b608081016145db8287613969565b61458b6020830186613969565b60a081016145f68288613969565b6146036020830187613969565b6146106040830186613969565b61461d6060830185613969565b61462a6080830184613969565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610dfb8261464c565b151590565b6000610dfb825b6000610dfb8261465e565b60005b8381101561469b578181015183820152602001614683565b8381111561078b5750506000910152565b6000610dfb6146ba836108a6565b61464c565b6000610dfb6146cd836108a6565b614658565b6000610dfb61397e836108a6565b6000610dfb826000610dfb826146fb565b601f01601f191690565b60601b90565b61470a8161465e565b8114612de657600080fd5b61470a81614669565b61470a816108a656fea365627a7a7231582002223ae8e9324569a77743ae7ab7aa6bf06666d60c5660fe8cff253bc00e16246c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ICollateralManager",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_underlyingContract",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_underlyingDecimals",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByRepayment",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "liqAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "loans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address payable",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "short",
							"type": "bool"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastInteraction",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "contract ICollateralManager",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"name": "scaleDownCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "scaledDown",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"name": "scaleUpCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "scaledUp",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"name": "setMinCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "underlyingContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "underlyingContractDecimals",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xe89173865d301ca33ad631c56038575945ba8ad4836b5ad6d62a4457380b36c5",
				"urls": [
					"bzz-raw://1c320590bfde5993b534137a7598cb133c230c9e89968e9522b0a7cb94129eab",
					"dweb:/ipfs/QmYhTQWmgMM8dHzDBGwhJiXbWYUsuBtMaKWcXyonEeGTHy"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralErc20.sol": "CollateralErc20"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralErc20.sol": {
						"keccak256": "0xe89173865d301ca33ad631c56038575945ba8ad4836b5ad6d62a4457380b36c5",
						"urls": [
							"bzz-raw://1c320590bfde5993b534137a7598cb133c230c9e89968e9522b0a7cb94129eab",
							"dweb:/ipfs/QmYhTQWmgMM8dHzDBGwhJiXbWYUsuBtMaKWcXyonEeGTHy"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralShort": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b5060405162004c7038038062004c7083398101604081905262000041916200014b565b8585858585858380876001600160a01b0381166200007c5760405162461bcd60e51b815260040162000073906200025c565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c991849062000236565b60405180910390a150600280546001600160a01b039283166001600160a01b0319918216179091556006805498909216971696909617909555600492909255600a55600b5550620002dd975050505050505050565b80516200012b81620002ad565b92915050565b80516200012b81620002c7565b80516200012b81620002d2565b60008060008060008060c087890312156200016557600080fd5b60006200017389896200011e565b96505060206200018689828a016200013e565b95505060406200019989828a016200011e565b9450506060620001ac89828a0162000131565b9350506080620001bf89828a0162000131565b92505060a0620001d289828a0162000131565b9150509295509295509295565b620001ea81620002a0565b82525050565b620001ea8162000277565b60006200020a6019836200026e565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620002468285620001df565b620002556020830184620001f0565b9392505050565b602080825281016200012b81620001fb565b90815260200190565b60006200012b8262000294565b90565b60006200012b8262000277565b6001600160a01b031690565b60006200012b8262000287565b620002b88162000277565b8114620002c457600080fd5b50565b620002b88162000284565b620002b88162000287565b61498380620002ed6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806379ba509711610130578063981bddf2116100b8578063c799bd5c1161007c578063c799bd5c14610457578063d2b8035a1461046a578063de81eda91461047d578063e1ec3c6814610490578063f93451ed146104b857610227565b8063981bddf21461040e578063a76cdfa514610421578063aa2d8ce314610434578063b562a1ab14610447578063ba2de9bc1461044f57610227565b8063899ffef4116100ff578063899ffef4146103c35780638cd2e0c7146103d85780638da5cb5b146103eb57806390abb4d9146103f3578063925ead111461040657610227565b806379ba5097146103825780637e1323551461038a5780637e9c9b741461039d578063846321a4146103b057610227565b806338245377116101b3578063481c6a7511610182578063481c6a751461033757806353a47bb71461033f5780635eb2ad011461035457806372e18b6a14610367578063741853601461037a57610227565b806338245377146102f65780634065b81b1461030957806341c7380114610311578063441a3e701461032457610227565b80631627540c116101fa5780631627540c1461029357806323d60e2e146102a65780632af64bd3146102b957806330edd961146102ce578063361e2086146102ee57610227565b806304f3bcec1461022c5780630710285c1461024a5780630aebeb4e1461025f5780630efe6a8b14610280575b600080fd5b6102346104cb565b6040516102419190614515565b60405180910390f35b61025d610258366004613a04565b6104da565b005b61027261026d366004613b2d565b610577565b6040516102419291906144cc565b61027261028e366004613a04565b610616565b61025d6102a136600461398e565b610767565b61025d6102b4366004613a51565b6107c5565b6102c161088b565b60405161024191906144a2565b6102e16102dc366004613b2d565b6109a3565b60405161024191906144b0565b6102e16109c1565b6102e1610304366004613b2d565b6109c7565b6102c16109d9565b6102e161031f366004613b2d565b6109e2565b610272610332366004613b69565b610b01565b610234610ba2565b610347610bb1565b6040516102419190614409565b61025d6103623660046139ca565b610bc0565b6102c1610375366004613a51565b610bf6565b61025d610cba565b61025d610e10565b6102e1610398366004613b69565b610eac565b6102726103ab366004613b69565b610f44565b61025d6103be366004613b2d565b610f5d565b6103cb610f9a565b6040516102419190614491565b6102726103e6366004613a04565b61112a565b610347611139565b61025d610401366004613ac1565b611148565b6102e1611194565b61027261041c3660046139ca565b61119a565b61025d61042f366004613b2d565b611233565b6102e1610442366004613b2d565b611270565b6102e1611334565b6102e161133a565b610272610465366004613b2d565b611340565b610272610478366004613b69565b611365565b61034761048b366004613b2d565b611372565b6104a361049e366004613b2d565b61138d565b604051610241999897969594939291906146fa565b6102e16104c6366004613bb8565b6113e7565b6002546001600160a01b031681565b60006104e7848484611480565b90506104f16117e7565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040161051e92919061445a565b602060405180830381600087803b15801561053857600080fd5b505af115801561054c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105709190810190613adf565b5050505050565b6000806105843384611803565b90925090506105916117e7565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016105be92919061445a565b602060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106109190810190613adf565b50915091565b6000806106216117e7565b6001600160a01b031663dd62ed3e33306040518363ffffffff1660e01b815260040161064e929190614417565b60206040518083038186803b15801561066657600080fd5b505afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061069e9190810190613b4b565b8311156106c65760405162461bcd60e51b81526004016106bd906145e4565b60405180910390fd5b6106ce6117e7565b6001600160a01b03166323b872dd3330866040518463ffffffff1660e01b81526004016106fd93929190614432565b602060405180830381600087803b15801561071757600080fd5b505af115801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061074f9190810190613adf565b5061075b8585856118f9565b90969095509350505050565b61076f6119ca565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107ba908390614409565b60405180910390a150565b6107cd6119ca565b8281146107ec5760405162461bcd60e51b81526004016106bd90614554565b60005b8381101561087c57600085858381811061080557fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061085957fe5b6020908102929092013583525081019190915260400160002055506001016107ef565b50610885610cba565b50505050565b60006060610897610f9a565b905060005b81518110156109995760008282815181106108b357fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906109049085906004016144b0565b60206040518083038186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061095491908101906139ac565b6001600160a01b031614158061097f57506000818152600360205260409020546001600160a01b0316155b1561099057600093505050506109a0565b5060010161089c565b5060019150505b90565b600781815481106109b057fe5b600091825260209091200154905081565b600c5481565b60086020526000908152604090205481565b600d5460ff1681565b60006109ec6138b0565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152610a776119f6565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b8152600401610aaa939291906146b1565b60206040518083038186803b158015610ac257600080fd5b505afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610afa9190810190613b4b565b9392505050565b600080610b0e8484611a12565b9092509050610b1b6117e7565b6001600160a01b031663a9059cbb33856040518363ffffffff1660e01b8152600401610b4892919061445a565b602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b9a9190810190613adf565b509250929050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610bc86119ca565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610c0a57506000610cb2565b60005b84811015610cac576000868683818110610c2357fe5b9050602002013590508060078381548110610c3a57fe5b906000526020600020015414610c5557600092505050610cb2565b60078281548110610c6257fe5b906000526020600020015460086000878786818110610c7d57fe5b9050602002013581526020019081526020016000205414610ca357600092505050610cb2565b50600101610c0d565b50600190505b949350505050565b6060610cc4610f9a565b905060005b8151811015610e0c576000828281518110610ce057fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d2291906143fe565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d4e9291906144da565b60206040518083038186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d9e91908101906139ac565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610dfa90849084906144be565b60405180910390a15050600101610cc9565b5050565b6001546001600160a01b03163314610e3a5760405162461bcd60e51b81526004016106bd90614544565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610e7d926001600160a01b0391821692911690614475565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610eb66119f6565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610eeb94939291906147e6565b60206040518083038186803b158015610f0357600080fd5b505afa158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f3b9190810190613b4b565b90505b92915050565b600080610f52338585611ab6565b909590945092505050565b610f656119ca565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d906107ba9083906144b0565b606080610fa5611cd7565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610fe457fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061100e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061103457fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061105d57fe5b6020026020010181815250506814de5b9d1a1bd554d160ba1b8160048151811061108357fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b816005815181106110ae57fe5b60200260200101818152505060606110c68383611d28565b905061112281600780548060200260200160405190810160405280929190818152602001828054801561111857602002820191906000526020600020905b815481526020019060010190808311611104575b5050505050611d28565b935050505090565b60008061075b85338686611de4565b6000546001600160a01b031681565b6111506119ca565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916107ba9160ff909116906144a2565b600a5481565b6000806111a56138b0565b5050506000818152600560208181526040928390208351610120810185528154815260018201546001600160a01b0316928101929092526002810154938201849052600381015460608301526004810154608083018190529281015460ff16151560a0830152600681015460c0830152600781015460e08301526008015461010090910152905b9250929050565b61123b6119ca565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c906107ba9083906144b0565b600061127a6138b0565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008909101546101008201526113056119f6565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b8152600401610aaa929190614694565b60045481565b600b5481565b60008061134d3384611f93565b90925090508015611360576105916117e7565b915091565b600080610f528484612052565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b60006113f16117e7565b6001600160a01b03166323b872dd3330876040518463ffffffff1660e01b815260040161142093929190614432565b602060405180830381600087803b15801561143a57600080fd5b505af115801561144e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114729190810190613adf565b50610cb28484846001612494565b600061148a612b3c565b611492612bde565b600082116114b25760405162461bcd60e51b81526004016106bd90614684565b60006114be8486612c32565b90506114cf33826003015485612c86565b600a546114da6119f6565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b81526004016115099291906146dc565b60206040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115599190810190613b4b565b106115765760405162461bcd60e51b81526004016106bd90614674565b60006115806119f6565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b81526004016115b3939291906146eb565b60206040518083038186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116039190810190613b4b565b905060008482106116145784611616565b815b9050600061163584600601548560040154612d3e90919063ffffffff16565b905080821061165657611649883386612d63565b9550610afa945050505050565b61166533856003015484612c86565b61166f8483612dd4565b6116776119f6565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b81526004016116ac939291906144fa565b60206040518083038186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116fc9190810190613b4b565b6002850154909550611714908663ffffffff612ff916565b6002850155600384015460009081526008602052604090205461173690613021565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b815260040161176392919061445a565b600060405180830381600087803b15801561177d57600080fd5b505af1158015611791573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5883385896040516117d49493929190614780565b60405180910390a2505050509392505050565b60006117fe6814de5b9d1a1bd554d160ba1b613028565b905090565b60008061180e612b3c565b611816612bde565b60006118228486612c32565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061189e90613085565b6118a98586836130d2565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f906118e99087906144b0565b60405180910390a2509250929050565b600080611904612b3c565b61190c612bde565b6000831161192c5760405162461bcd60e51b81526004016106bd90614644565b6000848152600560205260409020600781015461194890613338565b61195181613355565b6002810154611966908563ffffffff612d3e16565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c916119ab9189918991906144fa565b60405180910390a2806004015481600201549250925050935093915050565b6000546001600160a01b031633146119f45760405162461bcd60e51b81526004016106bd906145c4565b565b60006117fe6d10dbdb1b185d195c985b155d1a5b60921b613028565b600080611a1d612b3c565b611a25612bde565b6000611a318533612c32565b6002810154909150611a49908563ffffffff612ff916565b6002820155611a5781613447565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611a98939291906144fa565b60405180910390a28060040154816002015492509250509250929050565b600080611ac1612b3c565b611ac9612bde565b6000611ad58587612c32565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611b5190613085565b6006810154611b6790859063ffffffff612d3e16565b9350611b8481600601548260040154612d3e90919063ffffffff16565b841115611ba35760405162461bcd60e51b81526004016106bd906145b4565b600080611bae613480565b6001600160a01b031663f450aa34878560030154631bd554d160e21b6040518463ffffffff1660e01b8152600401611be8939291906144fa565b60606040518083038186803b158015611c0057600080fd5b505afa158015611c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c389190810190613bd9565b5060028501549193509150611c53908363ffffffff612ff916565b6002840155611c628387612dd4565b611c7381631bd554d160e21b613497565b42600884015560048301546040516001600160a01b038a169182917fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f91611cbd918c918c916144fa565b60405180910390a350506002015492959294509192505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611d1957fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611d58578160200160208202803883390190505b50905060005b8351811015611d9a57838181518110611d7357fe5b6020026020010151828281518110611d8757fe5b6020908102919091010152600101611d5e565b5060005b8251811015611ddd57828181518110611db357fe5b6020026020010151828286510181518110611dca57fe5b6020908102919091010152600101611d9e565b5092915050565b600080611def612b3c565b611df7612bde565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152611e8190613085565b611e9086826003015486612c86565b611e9981613355565b611ea38185612dd4565b6003810154600090815260086020526040902054611ec090613021565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401611eed929190614483565b600060405180830381600087803b158015611f0757600080fd5b505af1158015611f1b573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f87878560040154604051611f73939291906144fa565b60405180910390a380600401548160020154925092505094509492505050565b60008181526005602052604081206004810154829190611fb69086908690611ab6565b90935091506000611fd6611fc93061364d565b859063ffffffff61371f16565b9050611fe981631bd554d160e21b613497565b611ff9838263ffffffff612ff916565b925061200482613734565b856001600160a01b03167f70346f402be1b9ee8737498472823400f3a14730d534d309f1d2d365ca7511e6868686604051612041939291906144fa565b60405180910390a250509250929050565b60008061205d612b3c565b612065612bde565b60006120718533612c32565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e082015260088201546101008201529091506120ed90613085565b6004810154612102908563ffffffff612d3e16565b600482015561211081613447565b6000612127600c548661371f90919063ffffffff16565b9050600061213b868363ffffffff612ff916565b600584015490915060ff161561234857600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c191612180918a906004016144cc565b600060405180830381600087803b15801561219a57600080fd5b505af11580156121ae573d6000803e3d6000fd5b505050506121ba6117e7565b6001600160a01b031663867904b4336121d1613759565b6001600160a01b031663654a60ac876003015486631bd554d160e21b6040518463ffffffff1660e01b815260040161220b939291906144fa565b60206040518083038186803b15801561222357600080fd5b505afa158015612237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061225b9190810190613b4b565b6040518363ffffffff1660e01b815260040161227892919061445a565b600060405180830381600087803b15801561229257600080fd5b505af11580156122a6573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b0316156123435760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906123109033908a9060040161445a565b600060405180830381600087803b15801561232a57600080fd5b505af115801561233e573d6000803e3d6000fd5b505050505b61242c565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde9161237d918a906004016144cc565b600060405180830381600087803b15801561239757600080fd5b505af11580156123ab573d6000803e3d6000fd5b50505060038401546000908152600860205260409020546123cc9150613021565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016123f992919061445a565b600060405180830381600087803b15801561241357600080fd5b505af1158015612427573d6000803e3d6000fd5b505050505b61243a828460030154613497565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf35831065490612474908a908a906144cc565b60405180910390a282600401548360020154945094505050509250929050565b600061249e612b3c565b6124a6612bde565b600d5460ff166124c85760405162461bcd60e51b81526004016106bd90614634565b6000838152600860205260409020546124f35760405162461bcd60e51b81526004016106bd90614564565b6124fb613759565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b815260040161252691906144b0565b60206040518083038186803b15801561253e57600080fd5b505afa158015612552573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125769190810190613adf565b156125935760405162461bcd60e51b81526004016106bd90614614565b600b548510156125b55760405162461bcd60e51b81526004016106bd90614664565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb40906125ec90899089906004016144cc565b604080518083038186803b15801561260357600080fd5b505afa158015612617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061263b9190810190613afd565b9150915081801561264a575080155b6126665760405162461bcd60e51b81526004016106bd906145f4565b6126708786610eac565b86111561268f5760405162461bcd60e51b81526004016106bd90614654565b60006126a6600c548861371f90919063ffffffff16565b905060006126ba888363ffffffff612ff916565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561270c57600080fd5b505af1158015612720573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127449190810190613b4b565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff191692151592909217909155905160068301555160078201559051600882015590955061280e90613355565b6128188288613497565b8515612a0b576128266117e7565b6001600160a01b031663867904b43361283d613759565b6001600160a01b031663654a60ac8b86631bd554d160e21b6040518463ffffffff1660e01b8152600401612873939291906144fa565b60206040518083038186803b15801561288b57600080fd5b505afa15801561289f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128c39190810190613b4b565b6040518363ffffffff1660e01b81526004016128e092919061445a565b600060405180830381600087803b1580156128fa57600080fd5b505af115801561290e573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c19150612944908a908c906004016144cc565b600060405180830381600087803b15801561295e57600080fd5b505af1158015612972573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b0316159050612a06576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906129d39033908c9060040161445a565b600060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050505b612ae7565b600087815260086020526040902054612a2390613021565b6001600160a01b031663867904b433836040518363ffffffff1660e01b8152600401612a5092919061445a565b600060405180830381600087803b158015612a6a57600080fd5b505af1158015612a7e573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde9150612ab4908a908c906004016144cc565b600060405180830381600087803b158015612ace57600080fd5b505af1158015612ae2573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b87604051612b28959493929190614801565b60405180910390a250505050949350505050565b612b44613759565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b8152600401612b7191906144b0565b60206040518083038186803b158015612b8957600080fd5b505afa158015612b9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612bc19190810190613adf565b156119f45760405162461bcd60e51b81526004016106bd90614614565b612be6613774565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612c1e57600080fd5b505afa158015610885573d6000803e3d6000fd5b60008281526005602052604090206007810154612c4e90613338565b60018101546001600160a01b03838116911614612c7d5760405162461bcd60e51b81526004016106bd90614624565b610f3e81613355565b6000828152600860205260409020548190612ca090613021565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401612ccb9190614409565b60206040518083038186803b158015612ce357600080fd5b505afa158015612cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d1b9190810190613b4b565b1015612d395760405162461bcd60e51b81526004016106bd906145a4565b505050565b600082820183811015610f3b5760405162461bcd60e51b81526004016106bd90614574565b600080612d718585856130d2565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612dc4939291906144fa565b60405180910390a3935093915050565b60008111612df45760405162461bcd60e51b81526004016106bd90614684565b600682015415612e5657600082600601548211612e115781612e17565b82600601545b6006840154909150612e2f908263ffffffff612ff916565b6006840155612e44828263ffffffff612ff916565b9150612e54818460030154613497565b505b8015610e0c576004820154612e71908263ffffffff612ff916565b6004830155600582015460ff1615612f8e576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612eb89185906004016144cc565b600060405180830381600087803b158015612ed257600080fd5b505af1158015612ee6573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612f8957600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612f5692911690859060040161445a565b600060405180830381600087803b158015612f7057600080fd5b505af1158015612f84573d6000803e3d6000fd5b505050505b610e0c565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b391612fc39185906004016144cc565b600060405180830381600087803b158015612fdd57600080fd5b505af1158015612ff1573d6000803e3d6000fd5b505050505050565b60008282111561301b5760405162461bcd60e51b81526004016106bd90614594565b50900390565b6000610f3e825b60008181526003602090815260408083205490516001600160a01b039091169182151591613058918691016143de565b60405160208183030381529060405290611ddd5760405162461bcd60e51b81526004016106bd9190614523565b6130928160e00151613338565b426130b161309f3061378e565b6101008401519063ffffffff612d3e16565b11156130cf5760405162461bcd60e51b81526004016106bd90614604565b50565b60008060006130f284600601548560040154612d3e90919063ffffffff16565b9050836004015492508360020154915061311185856003015483612c86565b600384015460009081526008602052604090205461312e90613021565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b815260040161315b929190614483565b600060405180830381600087803b15801561317557600080fd5b505af1158015613189573d6000803e3d6000fd5b50505050600584015460ff16156132a7576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b9936131d493909291016144cc565b600060405180830381600087803b1580156131ee57600080fd5b505af1158015613202573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b0316156132a25760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a39261326f928b929101614483565b600060405180830381600087803b15801561328957600080fd5b505af115801561329d573d6000803e3d6000fd5b505050505b613314565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b3936132e193909291016144cc565b600060405180830381600087803b1580156132fb57600080fd5b505af115801561330f573d6000803e3d6000fd5b505050505b61332684600601548560030154613497565b61332f84613734565b50935093915050565b806130cf5760405162461bcd60e51b81526004016106bd90614584565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b039091169363800546669361339d9360ff909116906004016147be565b6040805180830381600087803b1580156133b657600080fd5b505af11580156133ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133ee9190810190613b88565b915091506000836007015460001461341a576004840154613415908463ffffffff6137de16565b61341d565b60005b6006850154909150613435908263ffffffff612d3e16565b60068501555060079092019190915550565b6004810154613455576130cf565b600a54815461346390611270565b116130cf5760405162461bcd60e51b81526004016106bd90614534565b60006117fe6822bc31b430b733b2b960b91b613028565b8115610e0c57631bd554d160e21b811461353c576134b3613759565b6001600160a01b031663654a60ac8284631bd554d160e21b6040518463ffffffff1660e01b81526004016134e9939291906144fa565b60206040518083038186803b15801561350157600080fd5b505afa158015613515573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135399190810190613b4b565b91505b6135446117e7565b6001600160a01b031663867904b461355a613808565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561359257600080fd5b505afa1580156135a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135ca91908101906139ac565b846040518363ffffffff1660e01b81526004016135e8929190614483565b600060405180830381600087803b15801561360257600080fd5b505af1158015613616573d6000803e3d6000fd5b50505050613622613808565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b8152600401612fc391906144b0565b600061365761381d565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e636f6c6c617073654665655261746560881b8560405160200161369c9291906143b8565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b81526004016136cf9291906144cc565b60206040518083038186803b1580156136e757600080fd5b505afa1580156136fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f3e9190810190613b4b565b6000610f3b8383670de0b6b3a764000061383a565b6000600482018190556002820181905560068201819055600782015542600890910155565b60006117fe6c45786368616e6765526174657360981b613028565b60006117fe6b53797374656d53746174757360a01b613028565b600061379861381d565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b8560405160200161369c9291906143b8565b6000670de0b6b3a76400006137f9848463ffffffff61387616565b8161380057fe5b049392505050565b60006117fe66119959541bdbdb60ca1b613028565b60006117fe6e466c657869626c6553746f7261676560881b613028565b600080600a8304613851868663ffffffff61387616565b8161385857fe5b0490506005600a82061061386a57600a015b600a9004949350505050565b60008261388557506000610f3e565b8282028284828161389257fe5b0414610f3b5760405162461bcd60e51b81526004016106bd906145d4565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610f3e8161491a565b8051610f3e8161491a565b60008083601f84011261393257600080fd5b50813567ffffffffffffffff81111561394a57600080fd5b60208301915083602082028301111561122c57600080fd5b8035610f3e8161492e565b8051610f3e8161492e565b8035610f3e81614937565b8051610f3e81614937565b6000602082840312156139a057600080fd5b6000610cb2848461390a565b6000602082840312156139be57600080fd5b6000610cb28484613915565b600080604083850312156139dd57600080fd5b60006139e9858561390a565b92505060206139fa85828601613978565b9150509250929050565b600080600060608486031215613a1957600080fd5b6000613a25868661390a565b9350506020613a3686828701613978565b9250506040613a4786828701613978565b9150509250925092565b60008060008060408587031215613a6757600080fd5b843567ffffffffffffffff811115613a7e57600080fd5b613a8a87828801613920565b9450945050602085013567ffffffffffffffff811115613aa957600080fd5b613ab587828801613920565b95989497509550505050565b600060208284031215613ad357600080fd5b6000610cb28484613962565b600060208284031215613af157600080fd5b6000610cb2848461396d565b60008060408385031215613b1057600080fd5b6000613b1c858561396d565b92505060206139fa8582860161396d565b600060208284031215613b3f57600080fd5b6000610cb28484613978565b600060208284031215613b5d57600080fd5b6000610cb28484613983565b60008060408385031215613b7c57600080fd5b60006139e98585613978565b60008060408385031215613b9b57600080fd5b6000613ba78585613983565b92505060206139fa85828601613983565b600080600060608486031215613bcd57600080fd5b6000613a258686613978565b600080600060608486031215613bee57600080fd5b6000613bfa8686613983565b9350506020613c0b86828701613983565b9250506040613a4786828701613983565b6000613c288383613cbb565b505060200190565b613c3981614887565b82525050565b613c3981614877565b613c39613c5482614877565b6148f9565b6000613c6482614853565b613c6e8185614857565b9350613c798361484d565b8060005b83811015613ca7578151613c918882613c1c565b9750613c9c8361484d565b925050600101613c7d565b509495945050505050565b613c3981614882565b613c39816109a0565b613c39613cd0826109a0565b6109a0565b613c398161488e565b6000613ce982614853565b613cf38185614857565b9350613d03818560208601614899565b613d0c8161490a565b9093019392505050565b6000613d23600e83614857565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b6000613d4d603583614857565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613da4601583614857565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b6000613dd5601483614857565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613e05601b83614857565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613e3e600e83614857565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613e68601e83614857565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613ea1601183614860565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000613ece601283614857565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613efc601083614857565b6f0a0c2f2dacadce840e8dede40d0d2ced60831b815260200192915050565b6000613f28602f83614857565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613f79602183614857565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613fbc601183614857565b70416c6c6f77616e636520746f6f206c6f7760781b815260200192915050565b6000613fe9601a83614857565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000614022601383614857565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000614051601983614860565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061408a600c83614857565b6b496e76616c6964207261746560a01b815260200192915050565b60006140b2601083614857565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b60006140de600d83614857565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000614107601783614857565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000614140601783614857565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b6000614179601583614857565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b60006141aa601683614857565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b60006141dc601783614857565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b805161012083019061421a8482613cbb565b50602082015161422d6020850182613c3f565b5060408201516142406040850182613cbb565b5060608201516142536060850182613cbb565b5060808201516142666080850182613cbb565b5060a082015161427960a0850182613cb2565b5060c082015161428c60c0850182613cbb565b5060e082015161429f60e0850182613cbb565b50610100820151610885610100850182613cbb565b80546101208301906142c5816148eb565b6142cf8582613cbb565b505060018201546142df816148c5565b6142ec6020860182613c3f565b505060028201546142fc816148eb565b6143096040860182613cbb565b50506003820154614319816148eb565b6143266060860182613cbb565b50506004820154614336816148eb565b6143436080860182613cbb565b50506005820154614353816148d8565b61436060a0860182613cb2565b50506006820154614370816148eb565b61437d60c0860182613cbb565b5050600782015461438d816148eb565b61439a60e0860182613cbb565b505060088201546143aa816148eb565b610570610100860182613cbb565b60006143c48285613cc4565b6020820191506143d48284613c48565b5060140192915050565b60006143e982613e94565b91506143f58284613cc4565b50602001919050565b60006143e982614044565b60208101610f3e8284613c3f565b604081016144258285613c30565b610afa6020830184613c3f565b606081016144408286613c30565b61444d6020830185613c3f565b610cb26040830184613cbb565b604081016144688285613c30565b610afa6020830184613cbb565b604081016144258285613c3f565b604081016144688285613c3f565b60208082528101610f3b8184613c59565b60208101610f3e8284613cb2565b60208101610f3e8284613cbb565b604081016144258285613cbb565b604081016144688285613cbb565b604081016144e88285613cbb565b8181036020830152610cb28184613cde565b606081016145088286613cbb565b61444d6020830185613cbb565b60208101610f3e8284613cd5565b60208082528101610f3b8184613cde565b60208082528101610f3e81613d16565b60208082528101610f3e81613d40565b60208082528101610f3e81613d97565b60208082528101610f3e81613dc8565b60208082528101610f3e81613df8565b60208082528101610f3e81613e31565b60208082528101610f3e81613e5b565b60208082528101610f3e81613ec1565b60208082528101610f3e81613eef565b60208082528101610f3e81613f1b565b60208082528101610f3e81613f6c565b60208082528101610f3e81613faf565b60208082528101610f3e81613fdc565b60208082528101610f3e81614015565b60208082528101610f3e8161407d565b60208082528101610f3e816140a5565b60208082528101610f3e816140d1565b60208082528101610f3e816140fa565b60208082528101610f3e81614133565b60208082528101610f3e8161416c565b60208082528101610f3e8161419d565b60208082528101610f3e816141cf565b61014081016146a38285614208565b610afa610120830184613cbb565b61016081016146c08286614208565b6146ce610120830185613cbb565b610cb2610140830184613cbb565b61014081016146a382856142b4565b61016081016146c082866142b4565b6101208101614709828c613cbb565b614716602083018b613c3f565b614723604083018a613cbb565b6147306060830189613cbb565b61473d6080830188613cbb565b61474a60a0830187613cb2565b61475760c0830186613cbb565b61476460e0830185613cbb565b614772610100830184613cbb565b9a9950505050505050505050565b6080810161478e8287613cbb565b61479b6020830186613c30565b6147a86040830185613cbb565b6147b56060830184613cbb565b95945050505050565b606081016147cc8286613cbb565b6147d96020830185613cbb565b610cb26040830184613cb2565b608081016147f48287613cbb565b61479b6020830186613cbb565b60a0810161480f8288613cbb565b61481c6020830187613cbb565b6148296040830186613cbb565b6148366060830185613cbb565b6148436080830184613cbb565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610f3e82614865565b151590565b6000610f3e825b6000610f3e82614877565b60005b838110156148b457818101518382015260200161489c565b838111156108855750506000910152565b6000610f3e6148d3836109a0565b614865565b6000610f3e6148e6836109a0565b614871565b6000610f3e613cd0836109a0565b6000610f3e826000610f3e82614914565b601f01601f191690565b60601b90565b61492381614877565b81146130cf57600080fd5b61492381614882565b614923816109a056fea365627a7a723158202360f6266b0115a25bac7a0ca9457b210d2124032f110cef05edbb2d00cabfd86c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ICollateralManager",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByRepayment",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "closeWithCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "getShortAndCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "liqAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "loans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address payable",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "short",
							"type": "bool"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastInteraction",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "contract ICollateralManager",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repayWithCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"name": "setMinCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xb4c4375b34f2b8a4578f234f37f103c67539ab47fc14180193d7fcb68b0cdcf7",
				"urls": [
					"bzz-raw://50539866fc92f4b6831711a4852d8367aeeea7a7c0e476f95c114b6556b82fdc",
					"dweb:/ipfs/QmZVtoaThm4qqpMENuvtdqEmwFgDF9BanwgkHfVbSGKE1B"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralShort.sol": "CollateralShort"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralShort.sol": {
						"keccak256": "0xb4c4375b34f2b8a4578f234f37f103c67539ab47fc14180193d7fcb68b0cdcf7",
						"urls": [
							"bzz-raw://50539866fc92f4b6831711a4852d8367aeeea7a7c0e476f95c114b6556b82fdc",
							"dweb:/ipfs/QmZVtoaThm4qqpMENuvtdqEmwFgDF9BanwgkHfVbSGKE1B"
						]
					}
				},
				"version": 1
			}
		},
		"EmptyFuturesMarketManager": {
			"bytecode": "608060405234801561001057600080fd5b50610215806100206000396000f3fe608060405234801561001057600080fd5b50600436106100615760003560e01c80628d3aca1461006657806326e04f9d14610126578063375a7cba14610140578063e63bfadb14610148578063fc7b9c1814610181578063fe11edc9146101a2575b600080fd5b6100d66004803603602081101561007c57600080fd5b81019060208101813564010000000081111561009757600080fd5b8201836020820111156100a957600080fd5b803590602001918460208302840111640100000000831117156100cb57600080fd5b5090925090506101c1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101125781810151838201526020016100fa565b505050509050019250505060405180910390f35b61012e6101c9565b60408051918252519081900360200190f35b6100d66101ce565b6101656004803603602081101561015e57600080fd5b50356101d3565b604080516001600160a01b039092168252519081900360200190f35b6101896101d9565b6040805192835290151560208301528051918290030190f35b6100d6600480360360408110156101b857600080fd5b50803590602001355b606092915050565b600090565b606090565b50600090565b600080909156fea265627a7a723158205ee8764c9ea9bb2339fa0a161b3c3eab4ba296954d7df25888d1d0390f375faf64736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "allMarkets",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "marketForKey",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "markets",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						}
					],
					"name": "marketsForKeys",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "numMarkets",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x373e4798e87b369b617e649c4ec63a71a11991cf4cfcf2ff2e8c07ea96a086bc",
				"urls": [
					"bzz-raw://d4f1f190888e0c5b66c81b708d08ad8757b661eb10f6d891c7ae5111fc9713f6",
					"dweb:/ipfs/QmVRE1XchKPkzTKMKVGFdWi6cTXsZWrQ94ThGZCaETbTgX"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EmptyFuturesMarketManager.sol": "EmptyFuturesMarketManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EmptyFuturesMarketManager.sol": {
						"keccak256": "0x373e4798e87b369b617e649c4ec63a71a11991cf4cfcf2ff2e8c07ea96a086bc",
						"urls": [
							"bzz-raw://d4f1f190888e0c5b66c81b708d08ad8757b661eb10f6d891c7ae5111fc9713f6",
							"dweb:/ipfs/QmVRE1XchKPkzTKMKVGFdWi6cTXsZWrQ94ThGZCaETbTgX"
						]
					}
				},
				"version": 1
			}
		},
		"SynthUtil": {
			"bytecode": "608060405234801561001057600080fd5b506040516110503803806110508339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610feb806100656000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630120be331461005c57806327fe55a61461009a578063492dbcdd1461013b578063a827bf4814610221578063d18ab37614610247575b600080fd5b6100886004803603604081101561007257600080fd5b506001600160a01b03813516906020013561026b565b60408051918252519081900360200190f35b6100a26104ea565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100e65781810151838201526020016100ce565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561012557818101518382015260200161010d565b5050505090500194505050505060405180910390f35b610143610756565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561018b578181015183820152602001610173565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156101ca5781810151838201526020016101b2565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156102095781810151838201526020016101f1565b50505050905001965050505050505060405180910390f35b6101436004803603602081101561023757600080fd5b50356001600160a01b0316610acf565b61024f610e66565b604080516001600160a01b039092168252519081900360200190f35b600080610276610e75565b90506000610282610f26565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b1580156102bf57600080fd5b505afa1580156102d3573d6000803e3d6000fd5b505050506040513d60208110156102e957600080fd5b5051905060005b818110156104e0576000846001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561033e57600080fd5b505afa158015610352573d6000803e3d6000fd5b505050506040513d602081101561036857600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b038087169263654a60ac929185169163dbd06c85916004808301926020929190829003018186803b1580156103b857600080fd5b505afa1580156103cc573d6000803e3d6000fd5b505050506040513d60208110156103e257600080fd5b5051604080516370a0823160e01b81526001600160a01b038d811660048301529151918616916370a0823191602480820192602092909190829003018186803b15801561042e57600080fd5b505afa158015610442573d6000803e3d6000fd5b505050506040513d602081101561045857600080fd5b5051604080516001600160e01b031960e086901b16815260048101939093526024830191909152604482018b9052516064808301926020929190829003018186803b1580156104a657600080fd5b505afa1580156104ba573d6000803e3d6000fd5b505050506040513d60208110156104d057600080fd5b50519590950194506001016102f0565b5050505092915050565b60608060606104f7610e75565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561052f57600080fd5b505afa158015610543573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056c57600080fd5b810190808051604051939291908464010000000082111561058c57600080fd5b9083019060208201858111156105a157600080fd5b82518660208202830111640100000000821117156105be57600080fd5b82525081516020918201928201910280838360005b838110156105eb5781810151838201526020016105d3565b50505050905001604052505050905080610603610f26565b6001600160a01b031663c2c8a676836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015610661578181015183820152602001610649565b505050509050019250505060006040518083038186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156106c157600080fd5b81019080805160405193929190846401000000008211156106e157600080fd5b9083019060208201858111156106f657600080fd5b825186602082028301116401000000008211171561071357600080fd5b82525081516020918201928201910280838360005b83811015610740578181015183820152602001610728565b5050505090500160405250505092509250509091565b60608060606000610765610e75565b90506000610771610f26565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b1580156107ae57600080fd5b505afa1580156107c2573d6000803e3d6000fd5b505050506040513d60208110156107d857600080fd5b5051604080518281526020808402820101909152909150606090828015610809578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015610838578160200160208202803883390190505b509050606083604051908082528060200260200182016040528015610867578160200160208202803883390190505b50905060005b84811015610abf576000876001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156108bb57600080fd5b505afa1580156108cf573d6000803e3d6000fd5b505050506040513d60208110156108e557600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b0383169163dbd06c8591600480820192602092909190829003018186803b15801561092b57600080fd5b505afa15801561093f573d6000803e3d6000fd5b505050506040513d602081101561095557600080fd5b5051855186908490811061096557fe5b602002602001018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109aa57600080fd5b505afa1580156109be573d6000803e3d6000fd5b505050506040513d60208110156109d457600080fd5b505184518590849081106109e457fe5b602002602001018181525050866001600160a01b031663654a60ac868481518110610a0b57fe5b6020026020010151868581518110610a1f57fe5b6020026020010151631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b50518351849084908110610aab57fe5b60209081029190910101525060010161086d565b5091975095509350505050909192565b60608060606000610ade610e75565b90506000610aea610f26565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2757600080fd5b505afa158015610b3b573d6000803e3d6000fd5b505050506040513d6020811015610b5157600080fd5b5051604080518281526020808402820101909152909150606090828015610b82578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015610bb1578160200160208202803883390190505b509050606083604051908082528060200260200182016040528015610be0578160200160208202803883390190505b50905060005b84811015610e55576000876001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c3457600080fd5b505afa158015610c48573d6000803e3d6000fd5b505050506040513d6020811015610c5e57600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b0383169163dbd06c8591600480820192602092909190829003018186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d6020811015610cce57600080fd5b50518551869084908110610cde57fe5b602002602001018181525050806001600160a01b03166370a082318d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d4057600080fd5b505afa158015610d54573d6000803e3d6000fd5b505050506040513d6020811015610d6a57600080fd5b50518451859084908110610d7a57fe5b602002602001018181525050866001600160a01b031663654a60ac868481518110610da157fe5b6020026020010151868581518110610db557fe5b6020026020010151631bd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610e0757600080fd5b505afa158015610e1b573d6000803e3d6000fd5b505050506040513d6020811015610e3157600080fd5b50518351849084908110610e4157fe5b602090810291909101015250600101610be6565b509199909850909650945050505050565b6000546001600160a01b031681565b600080546040805163dacb2d0160e01b8152644f696b6f7360d81b60048201526024810182905260156044820152744d697373696e67204f696b6f73206164647265737360581b606482015290516001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b5051905090565b600080546040805163dacb2d0160e01b81526c45786368616e6765526174657360981b600482015260248101829052601d60448201527f4d697373696e672045786368616e676552617465732061646472657373000000606482015290516001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b158015610ef557600080fdfea265627a7a7231582081f418e2a028b9e5fa9553e0f3eef1319a766007c44434a3f7f78d01c54996cf64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "addressResolverProxy",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "synthsBalances",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthsRates",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthsTotalSupplies",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalSynthsInKey",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "total",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x4ff4ae60ffda7b90ee99d6e46f694c2d5b09bbb3e6d56741a497663760d83b84",
				"urls": [
					"bzz-raw://1324904d7299c3826fb48a8703beb04a282ecdba92df135b265d9fcf8c473cd3",
					"dweb:/ipfs/QmYcU4YCUG6xCT27RyQAGeWbYNhPWuFpNwJQ747fktmczF"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthUtil.sol": "SynthUtil"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthUtil.sol": {
						"keccak256": "0x4ff4ae60ffda7b90ee99d6e46f694c2d5b09bbb3e6d56741a497663760d83b84",
						"urls": [
							"bzz-raw://1324904d7299c3826fb48a8703beb04a282ecdba92df135b265d9fcf8c473cd3",
							"dweb:/ipfs/QmYcU4YCUG6xCT27RyQAGeWbYNhPWuFpNwJQ747fktmczF"
						]
					}
				},
				"version": 1
			}
		},
		"DappMaintenance": {
			"bytecode": "60806040526001805461ffff60a01b1916905534801561001e57600080fd5b506040516106d13803806106d18339818101604052602081101561004157600080fd5b5051806001600160a01b03811661009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280516000805160206106b18339815191529281900390910190a1506001600160a01b038116610141576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280516000805160206106b18339815191529281900390910190a15061051a806101976000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b1461010b57806393c2212514610113578063b33a5a001461012f578063c65a0ea21461014e578063ee02f27c1461015657610093565b80631627540c146100985780631d008652146100c057806353a47bb7146100df57806379ba509714610103575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610175565b005b6100be600480360360208110156100d657600080fd5b503515156101d1565b6100e7610270565b604080516001600160a01b039092168252519081900360200190f35b6100be61027f565b6100e761033b565b61011b61034a565b604080519115158252519081900360200190f35b6100be6004803603602081101561014557600080fd5b5035151561035a565b61011b6103c0565b6100be6004803603602081101561016c57600080fd5b503515156103d0565b61017d610436565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6101d9610436565b6001805460ff60a01b1916600160a01b8315159081029190911760ff60a81b1916600160a81b82021790915560408051918252517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea32916020908290030190a160408051821515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b031633146102c85760405162461bcd60e51b81526004018080602001828103825260358152602001806104826035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b600154600160a81b900460ff1681565b610362610436565b60018054821515600160a01b90810260ff60a01b199092169190911791829055604080519190920460ff161515815290517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea329181900360200190a150565b600154600160a01b900460ff1681565b6103d8610436565b60018054821515600160a81b90810260ff60a81b199092169190911791829055604080519190920460ff161515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6000546001600160a01b0316331461047f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806104b7602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582027b65b862bf931cbd68a7fa532f10560ee1b6bc590bf2eee2dac58ec6d2329b764736f6c63430005100032b532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "SXMaintenance",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "StakingMaintenance",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isPausedSX",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isPausedStaking",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeSX",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeStaking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xb50569492d353d544fdbcb73285a599f3c5c92b2e451128f0c2bb77795ed0916",
				"urls": [
					"bzz-raw://c645985e057547f370cc683fa275c719e9e5650399f0358745eba8d5af64e1ff",
					"dweb:/ipfs/QmdUrsDQc1Ui8KVWXi8CPa3gDmXK8LHeHYnJRxraUx7Tbe"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DappMaintenance.sol": "DappMaintenance"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DappMaintenance.sol": {
						"keccak256": "0xb50569492d353d544fdbcb73285a599f3c5c92b2e451128f0c2bb77795ed0916",
						"urls": [
							"bzz-raw://c645985e057547f370cc683fa275c719e9e5650399f0358745eba8d5af64e1ff",
							"dweb:/ipfs/QmdUrsDQc1Ui8KVWXi8CPa3gDmXK8LHeHYnJRxraUx7Tbe"
						]
					}
				},
				"version": 1
			}
		}
	}
}
