{
	"targets": {
		"SafeDecimalMath": {
			"name": "SafeDecimalMath",
			"address": "0x9D6D846D4546614a7e668e66886624c0AE21D786",
			"source": "SafeDecimalMath",
			"link": "https://sepolia.etherscan.io/address/0x9D6D846D4546614a7e668e66886624c0AE21D786",
			"timestamp": "2024-03-14T23:15:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x18c40ba98bbd439f0ac6f9e28c7ea71611d24e702fc57740a24ec8e923762173",
			"network": "sepolia",
			"constructorArgs": []
		},
		"Math": {
			"name": "Math",
			"address": "0xe5BBE61dC29670Fa52E3a3bCdb7278d926Db1A2A",
			"source": "Math",
			"link": "https://sepolia.etherscan.io/address/0xe5BBE61dC29670Fa52E3a3bCdb7278d926Db1A2A",
			"timestamp": "2024-03-14T23:16:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x495178a84773952a2d4013276787b6ccb8783506ae3a81d58b7b009e51945a9d",
			"network": "sepolia",
			"constructorArgs": []
		},
		"SystemSettingsLib": {
			"name": "SystemSettingsLib",
			"address": "0xDeB9b7a8e380202986B597462aFec64Ac394B2B1",
			"source": "SystemSettingsLib",
			"link": "https://sepolia.etherscan.io/address/0xDeB9b7a8e380202986B597462aFec64Ac394B2B1",
			"timestamp": "2024-03-14T23:16:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x1ddb36f695d3ccc816a99c0eedfaa1db47e36880628507f91fa72859c1914af4",
			"network": "sepolia",
			"constructorArgs": []
		},
		"SignedSafeDecimalMath": {
			"name": "SignedSafeDecimalMath",
			"address": "0x2060e6041F7C1BF9A90FA0c060E40C402d81D6CE",
			"source": "SignedSafeDecimalMath",
			"link": "https://sepolia.etherscan.io/address/0x2060e6041F7C1BF9A90FA0c060E40C402d81D6CE",
			"timestamp": "2024-03-14T23:16:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xa3a5cd32496edb6f1e2b06e18dc6c71b352c9c919c83dda27a06e94397c223c1",
			"network": "sepolia",
			"constructorArgs": []
		},
		"ExchangeSettlementLib": {
			"name": "ExchangeSettlementLib",
			"address": "0x6f40ACC62F15eA50a67dd5183cC3Cd7Aa4257830",
			"source": "ExchangeSettlementLib",
			"link": "https://sepolia.etherscan.io/address/0x6f40ACC62F15eA50a67dd5183cC3Cd7Aa4257830",
			"timestamp": "2024-03-14T23:17:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xa357325eb444a8b1e17712ca35c6f44b2c4c1036c6245b15c26d6911b13bde81",
			"network": "sepolia",
			"constructorArgs": []
		},
		"AddressResolver": {
			"name": "AddressResolver",
			"address": "0xc956685E0c0E639490e543bb77309864028Ae608",
			"source": "AddressResolver",
			"link": "https://sepolia.etherscan.io/address/0xc956685E0c0E639490e543bb77309864028Ae608",
			"timestamp": "2024-03-14T23:17:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x5bcdeef9221043702670448efc1228a73872c3ab97de1d0f03ecdb17bf452283",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"ReadProxyAddressResolver": {
			"name": "ReadProxyAddressResolver",
			"address": "0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
			"source": "ReadProxy",
			"link": "https://sepolia.etherscan.io/address/0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
			"timestamp": "2024-03-14T23:18:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xecb95340d74e383ba04497b9adfb97e3a2812f37b4bef6d8ce0da6256822d04c",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"OneNetAggregatorIssuedSynths": {
			"name": "OneNetAggregatorIssuedSynths",
			"address": "0x98735877F4164464CA06f741F44252aF5Aa2A483",
			"source": "OneNetAggregatorIssuedSynths",
			"link": "https://sepolia.etherscan.io/address/0x98735877F4164464CA06f741F44252aF5Aa2A483",
			"timestamp": "2024-03-14T23:18:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xe25714d8b6b9e9b839ad2ac8741652f6ec5f3854f3d1965db96a14ae277f42f8",
			"network": "sepolia",
			"constructorArgs": [
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"OneNetAggregatorDebtRatio": {
			"name": "OneNetAggregatorDebtRatio",
			"address": "0x75f0A65Bb72B73e91169D6Bd7bcDf80111706e9E",
			"source": "OneNetAggregatorDebtRatio",
			"link": "https://sepolia.etherscan.io/address/0x75f0A65Bb72B73e91169D6Bd7bcDf80111706e9E",
			"timestamp": "2024-03-14T23:18:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xf029fd15c623083c87c4f437ba4302c546527b8d8c9367605918afab92afe1bd",
			"network": "sepolia",
			"constructorArgs": [
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"FlexibleStorage": {
			"name": "FlexibleStorage",
			"address": "0x8e76B16CeaB8A52A6F4dDe7a28d24Cac35d3DFE3",
			"source": "FlexibleStorage",
			"link": "https://sepolia.etherscan.io/address/0x8e76B16CeaB8A52A6F4dDe7a28d24Cac35d3DFE3",
			"timestamp": "2024-03-14T23:18:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x0dd196d05edc596db75b383408f2589f8f349db1e33119ece7144ac8273b6ded",
			"network": "sepolia",
			"constructorArgs": [
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"SystemSettings": {
			"name": "SystemSettings",
			"address": "0x6b72ba3aa550d0403F59f4714c82581658136aF8",
			"source": "SystemSettings",
			"link": "https://sepolia.etherscan.io/address/0x6b72ba3aa550d0403F59f4714c82581658136aF8",
			"timestamp": "2024-03-14T23:19:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x9aef431c2d6751ff8f3b8562f0ad50eb3aad2cbfbb07d55007b08ad9499a8102",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"SystemStatus": {
			"name": "SystemStatus",
			"address": "0x2ef042dbd14560074225dF68f16Aa729DCd1382B",
			"source": "SystemStatus",
			"link": "https://sepolia.etherscan.io/address/0x2ef042dbd14560074225dF68f16Aa729DCd1382B",
			"timestamp": "2024-03-14T23:19:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x5161eb2622be01080df9fb0cceaadc2596a794d8d4d7ce9d66ca46fe2cda2286",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"ExchangeRates": {
			"name": "ExchangeRates",
			"address": "0xFf15AF9219D74ABD40a97537Db0EfcC6eE77040b",
			"source": "ExchangeRatesWithDexPricing",
			"link": "https://sepolia.etherscan.io/address/0xFf15AF9219D74ABD40a97537Db0EfcC6eE77040b",
			"timestamp": "2024-03-14T23:20:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x4c264fa01a974709b8572e30492d04ea901b82ae8548a7105303bd93ed78bf6b",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"TokenStateSynthetix": {
			"name": "TokenStateSynthetix",
			"address": "0xfEDB3BeEc7283c93d12C3b56f70C39AbAD776831",
			"source": "LegacyTokenState",
			"link": "https://sepolia.etherscan.io/address/0xfEDB3BeEc7283c93d12C3b56f70C39AbAD776831",
			"timestamp": "2024-03-14T23:20:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x16b9b899e7e8f6c67bc2eaaa1a928a2933ae91678d18c0e3b350b146476f3788",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"ProxySynthetix": {
			"name": "ProxySynthetix",
			"address": "0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb",
			"source": "ProxyERC20",
			"link": "https://sepolia.etherscan.io/address/0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb",
			"timestamp": "2024-03-14T23:20:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x86617bcb814f8175321a83f1024dd9ab66e3eb8a97e1ce04803feaf619c33dab",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"Synthetix": {
			"name": "Synthetix",
			"address": "0x29Ba9b0C440CE9e7B0E46138B5Fda83c22467006",
			"source": "Synthetix",
			"link": "https://sepolia.etherscan.io/address/0x29Ba9b0C440CE9e7B0E46138B5Fda83c22467006",
			"timestamp": "2024-03-14T23:21:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x229b106594e14e6c756730f590fd7566080c90ce314d026e01a427afff7c40fd",
			"network": "sepolia",
			"constructorArgs": [
				"0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb",
				"0xfEDB3BeEc7283c93d12C3b56f70C39AbAD776831",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"100000000000000000000000000",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"RewardEscrow": {
			"name": "RewardEscrow",
			"address": "0x7CA45F1C7DE9395249822d89de10b044eFCe85b9",
			"source": "RewardEscrow",
			"link": "https://sepolia.etherscan.io/address/0x7CA45F1C7DE9395249822d89de10b044eFCe85b9",
			"timestamp": "2024-03-14T23:21:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x3e9a6acc69fa2565b6679b5ea90bb4fb74715d54d81cf00c0eaffce9160adf0e",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"RewardEscrowV2Storage": {
			"name": "RewardEscrowV2Storage",
			"address": "0xCC8753eBE72ea01AC7c789fb5A869aA2562f56E8",
			"source": "RewardEscrowV2Storage",
			"link": "https://sepolia.etherscan.io/address/0xCC8753eBE72ea01AC7c789fb5A869aA2562f56E8",
			"timestamp": "2024-03-14T23:21:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xc50dca62eac9c41159ea9d820540dbfa04175c0de365b8b404e561fc56bee1dc",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"RewardEscrowV2": {
			"name": "RewardEscrowV2",
			"address": "0xF130DEC302611Ea8Dd671cd9270c406870AC56cd",
			"source": "RewardEscrowV2",
			"link": "https://sepolia.etherscan.io/address/0xF130DEC302611Ea8Dd671cd9270c406870AC56cd",
			"timestamp": "2024-03-14T23:21:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xe4d4906c0d2ed46013730c3ae11de1df7d9a9a0f5815df567908f6f3dd2d4466",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"SynthetixEscrow": {
			"name": "SynthetixEscrow",
			"address": "0xc2e7B0B527a9A265fb3DD562B6D4e1673b381d10",
			"source": "SynthetixEscrow",
			"link": "https://sepolia.etherscan.io/address/0xc2e7B0B527a9A265fb3DD562B6D4e1673b381d10",
			"timestamp": "2024-03-14T23:22:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xcdb927b099e78d2b9dbadfa4b8bc3442ea000c0440c204f49d2192233292b559",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"SynthetixState": {
			"name": "SynthetixState",
			"address": "0x1CaBb2F18c4D4566d517b74F7C398efbC35Bf966",
			"source": "SynthetixState",
			"link": "https://sepolia.etherscan.io/address/0x1CaBb2F18c4D4566d517b74F7C398efbC35Bf966",
			"timestamp": "2024-03-14T23:23:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x15d3779db1486ad9a162ffe6356cf1e80e1cbd1731fdea5176442ea7d4b9c320",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"SynthetixDebtShare": {
			"name": "SynthetixDebtShare",
			"address": "0x4C76acD6Be797642E284c1beF859fBC79C39Df04",
			"source": "SynthetixDebtShare",
			"link": "https://sepolia.etherscan.io/address/0x4C76acD6Be797642E284c1beF859fBC79C39Df04",
			"timestamp": "2024-03-14T23:23:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x1022ec79c646191394a14889c2d9bfe0a4212a649a903294371ab0398e8cac52",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"ProxyFeePool": {
			"name": "ProxyFeePool",
			"address": "0x00e793B4ad1eCf68e660BB798c16a2Ea438C0A29",
			"source": "Proxy",
			"link": "https://sepolia.etherscan.io/address/0x00e793B4ad1eCf68e660BB798c16a2Ea438C0A29",
			"timestamp": "2024-03-14T23:23:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x08602eb85e81956586d8554bdbf02f2fd477ed03d4e63cf69f9095948e7e1a99",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"DelegateApprovalsEternalStorage": {
			"name": "DelegateApprovalsEternalStorage",
			"address": "0xD21624ca16F9C57f2ceF3d046eB7D7cAf5f54cB4",
			"source": "EternalStorage",
			"link": "https://sepolia.etherscan.io/address/0xD21624ca16F9C57f2ceF3d046eB7D7cAf5f54cB4",
			"timestamp": "2024-03-14T23:23:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x343f5a0c32a1fa57d2bb04661722d343657b68b70eb018d373ad05982ef2e72a",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"DelegateApprovals": {
			"name": "DelegateApprovals",
			"address": "0x439129f9458ccADbEb3418520E4d7346895692D3",
			"source": "DelegateApprovals",
			"link": "https://sepolia.etherscan.io/address/0x439129f9458ccADbEb3418520E4d7346895692D3",
			"timestamp": "2024-03-14T23:25:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x644836e8747474fad7f7ec2c4e8c4c5c7409903b79084cf23e87844e305734ec",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xD21624ca16F9C57f2ceF3d046eB7D7cAf5f54cB4"
			]
		},
		"Liquidator": {
			"name": "Liquidator",
			"address": "0xD59B850F442aECD66cc78663b91D7A7Ee46ef3fD",
			"source": "Liquidator",
			"link": "https://sepolia.etherscan.io/address/0xD59B850F442aECD66cc78663b91D7A7Ee46ef3fD",
			"timestamp": "2024-03-14T23:25:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x63973e7a8e06b350a0b5011a92b025a6f5acff8d1caad41e90228d76abc03fba",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"LiquidatorRewards": {
			"name": "LiquidatorRewards",
			"address": "0xF929965a6BcF6F279031AB314D609b54CDa073a1",
			"source": "LiquidatorRewards",
			"link": "https://sepolia.etherscan.io/address/0xF929965a6BcF6F279031AB314D609b54CDa073a1",
			"timestamp": "2024-03-14T23:25:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x0d1c71b3ba9e0256ffa0f8c3f70a88f15a45dd63e1d3cc2ef1680f6b2f04ae26",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"FeePoolEternalStorage": {
			"name": "FeePoolEternalStorage",
			"address": "0xa0Ea9B6C544E4Df1351D1DEe426A70c4154F0D03",
			"source": "FeePoolEternalStorage",
			"link": "https://sepolia.etherscan.io/address/0xa0Ea9B6C544E4Df1351D1DEe426A70c4154F0D03",
			"timestamp": "2024-03-14T23:26:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x407912b1d6f86b7ff2a7018fe5dcd8dfec661452730bfd1260a163d679ff07f4",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"FeePool": {
			"name": "FeePool",
			"address": "0x9F9c27B91fCC32F41787dD4486411D1d5a21839D",
			"source": "FeePool",
			"link": "https://sepolia.etherscan.io/address/0x9F9c27B91fCC32F41787dD4486411D1d5a21839D",
			"timestamp": "2024-03-14T23:26:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xdf9c42b431c8dc3492f01bfa63b18fe84e6f532fc812182dcdee4b2a19a5a848",
			"network": "sepolia",
			"constructorArgs": [
				"0x00e793B4ad1eCf68e660BB798c16a2Ea438C0A29",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"FeePoolState": {
			"name": "FeePoolState",
			"address": "0xb4C66de59305d01A3c078eD52F5CfA1Cb6e7EA03",
			"source": "FeePoolState",
			"link": "https://sepolia.etherscan.io/address/0xb4C66de59305d01A3c078eD52F5CfA1Cb6e7EA03",
			"timestamp": "2024-03-14T23:27:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x750b8385e643e34fe99de23550811a60b18f473873c37b6858d85ad03c0a2c6c",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x9F9c27B91fCC32F41787dD4486411D1d5a21839D"
			]
		},
		"RewardsDistribution": {
			"name": "RewardsDistribution",
			"address": "0x2cd4aA2a3b97546B3FC1Bd630f5208a3934bDA10",
			"source": "RewardsDistribution",
			"link": "https://sepolia.etherscan.io/address/0x2cd4aA2a3b97546B3FC1Bd630f5208a3934bDA10",
			"timestamp": "2024-03-14T23:27:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x71504d1b4fe70f705d4e3b40b9db9b37e47cd043aee11bcd0e395713540d124b",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000",
				"0x0000000000000000000000000000000000000000",
				"0xF130DEC302611Ea8Dd671cd9270c406870AC56cd",
				"0x00e793B4ad1eCf68e660BB798c16a2Ea438C0A29"
			]
		},
		"DebtCache": {
			"name": "DebtCache",
			"address": "0xE4E52c1C82B4e7D169Dd97d9CFD8a07F13b333cD",
			"source": "DebtCache",
			"link": "https://sepolia.etherscan.io/address/0xE4E52c1C82B4e7D169Dd97d9CFD8a07F13b333cD",
			"timestamp": "2024-04-11T18:00:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x3c36c37101fb1f5622a837d49f46ae86480d55044bb616c3792e30e2bd05fc78",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"Exchanger": {
			"name": "Exchanger",
			"address": "0x55d1dbdD814fEB50b4CdFD554f370cdA954eB4d7",
			"source": "ExchangerWithFeeRecAlternatives",
			"link": "https://sepolia.etherscan.io/address/0x55d1dbdD814fEB50b4CdFD554f370cdA954eB4d7",
			"timestamp": "2024-03-14T23:29:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x0026fac4b28086ba0974a833c019b6f7d979f368e54c1deb553a30eb3110e105",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"CircuitBreaker": {
			"name": "CircuitBreaker",
			"address": "0x1Dc60137556243EeB8AAE0dAcDc7DcFed0cc0e5b",
			"source": "CircuitBreaker",
			"link": "https://sepolia.etherscan.io/address/0x1Dc60137556243EeB8AAE0dAcDc7DcFed0cc0e5b",
			"timestamp": "2024-03-14T23:29:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x66668ae23b268b25187a18a9375ec8439bc7ed373132822185fd878e3ae513de",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"ExchangeCircuitBreaker": {
			"name": "ExchangeCircuitBreaker",
			"address": "0x3b8a2a1872c4cc8C3EE6c9fa6d3236ce3f10FA20",
			"source": "ExchangeCircuitBreaker",
			"link": "https://sepolia.etherscan.io/address/0x3b8a2a1872c4cc8C3EE6c9fa6d3236ce3f10FA20",
			"timestamp": "2024-03-14T23:30:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x4ba2081c3e20f4e96dd01917a685403afa7dff4621aced8bb1e5614bb5c30646",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"VirtualSynthMastercopy": {
			"name": "VirtualSynthMastercopy",
			"address": "0x1f6Eba1Ac6a62df62edC54159A05711636b33D4C",
			"source": "VirtualSynthMastercopy",
			"link": "https://sepolia.etherscan.io/address/0x1f6Eba1Ac6a62df62edC54159A05711636b33D4C",
			"timestamp": "2024-03-14T23:30:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x784ccd6193221615f9a774c86fab608df07265d039eb9bba5141f5877c317589",
			"network": "sepolia",
			"constructorArgs": []
		},
		"ExchangeState": {
			"name": "ExchangeState",
			"address": "0x76BBBEd4AB0e3097c6F5CcEa18334D08EED69f69",
			"source": "ExchangeState",
			"link": "https://sepolia.etherscan.io/address/0x76BBBEd4AB0e3097c6F5CcEa18334D08EED69f69",
			"timestamp": "2024-03-14T23:30:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x61637babbf8831961548b87d9d520db970c204cf8f2f9168d3b52508d732282b",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x55d1dbdD814fEB50b4CdFD554f370cdA954eB4d7"
			]
		},
		"Issuer": {
			"name": "Issuer",
			"address": "0xB70cf272E555091C970Fb3027cF7C4cfAd2D2650",
			"source": "Issuer",
			"link": "https://sepolia.etherscan.io/address/0xB70cf272E555091C970Fb3027cF7C4cfAd2D2650",
			"timestamp": "2024-04-11T18:00:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xfda6a692a25069aaac6735b2bffa488318436d56fdc6b93c42f2fdc8bfb7c876",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"TradingRewards": {
			"name": "TradingRewards",
			"address": "0x515022fad52B0050323510562c82f63d1FaDE389",
			"source": "TradingRewards",
			"link": "https://sepolia.etherscan.io/address/0x515022fad52B0050323510562c82f63d1FaDE389",
			"timestamp": "2024-03-14T23:31:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xef6a35664de3e7cdcd993ce88faca3407e213f112bc43b81f7f26cc08ec80837",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"SupplySchedule": {
			"name": "SupplySchedule",
			"address": "0xAda12611B34a992b1c01cB3Bbc9C43Fa5B46a6c7",
			"source": "SupplySchedule",
			"link": "https://sepolia.etherscan.io/address/0xAda12611B34a992b1c01cB3Bbc9C43Fa5B46a6c7",
			"timestamp": "2024-03-14T23:31:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x9283596a6538aa037bcc84364e2cf34de91ab52efcea13f3089846ba688e42bd",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0",
				"0"
			]
		},
		"EscrowChecker": {
			"name": "EscrowChecker",
			"address": "0x7f9Ecf9cD54cDB7D00927cf32e4029f9a69AF4e5",
			"source": "EscrowChecker",
			"link": "https://sepolia.etherscan.io/address/0x7f9Ecf9cD54cDB7D00927cf32e4029f9a69AF4e5",
			"timestamp": "2024-03-14T23:31:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x48b2ebde08a49932630cea0fae255654cd62887c6c9daed93a47d2c89dea5e0a",
			"network": "sepolia",
			"constructorArgs": [
				"0xc2e7B0B527a9A265fb3DD562B6D4e1673b381d10"
			]
		},
		"SynthetixBridgeToOptimism": {
			"name": "SynthetixBridgeToOptimism",
			"address": "0x4F9bD9865F3184975a2fBaA8b07F1c524276f8ab",
			"source": "SynthetixBridgeToOptimism",
			"link": "https://sepolia.etherscan.io/address/0x4F9bD9865F3184975a2fBaA8b07F1c524276f8ab",
			"timestamp": "2024-03-14T23:32:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x183e7b7dbd352762ddb97dfb2c21ee7c7cc1a415fed98664652c9531620a850d",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"SynthetixBridgeEscrow": {
			"name": "SynthetixBridgeEscrow",
			"address": "0x0e37B420BE11BCf06CD5309ce67B65d3aC0623CE",
			"source": "SynthetixBridgeEscrow",
			"link": "https://sepolia.etherscan.io/address/0x0e37B420BE11BCf06CD5309ce67B65d3aC0623CE",
			"timestamp": "2024-03-14T23:32:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xf0f6e737efbb376940b38fb330cfbea0617bd300df6f18ee5ad2facfa4fe616d",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"OwnerRelayOnEthereum": {
			"name": "OwnerRelayOnEthereum",
			"address": "0x8F09aDe8Ec994C3F977E5eA03026E1E2eFA314a7",
			"source": "OwnerRelayOnEthereum",
			"link": "https://sepolia.etherscan.io/address/0x8F09aDe8Ec994C3F977E5eA03026E1E2eFA314a7",
			"timestamp": "2024-03-14T23:33:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xb7adcd18e3f1c7fb08cd7dcf3cffc9cf361a71a3f2a4927652486be1241b1c77",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"DebtMigratorOnEthereum": {
			"name": "DebtMigratorOnEthereum",
			"address": "0x6344FB25202Ce5a0134A3dAb7496443c3f1A95a7",
			"source": "DebtMigratorOnEthereum",
			"link": "https://sepolia.etherscan.io/address/0x6344FB25202Ce5a0134A3dAb7496443c3f1A95a7",
			"timestamp": "2024-03-14T23:33:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xcce69fa50f3975efbe53dcaf48ce34e591b2b66f2d80cb8a7c6660476de5093d",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"SynthRedeemer": {
			"name": "SynthRedeemer",
			"address": "0xe0be9AA35c46D4aF31b6183F1253B77EC6156ebb",
			"source": "SynthRedeemer",
			"link": "https://sepolia.etherscan.io/address/0xe0be9AA35c46D4aF31b6183F1253B77EC6156ebb",
			"timestamp": "2024-03-14T23:34:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x9681d4d9671a34ef75870a5af759ca81ec226657c372f8d0f487f98b8f579355",
			"network": "sepolia",
			"constructorArgs": [
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"WrapperFactory": {
			"name": "WrapperFactory",
			"address": "0x3358873fF691f58b3243B1c4F698350A6603C6b1",
			"source": "WrapperFactory",
			"link": "https://sepolia.etherscan.io/address/0x3358873fF691f58b3243B1c4F698350A6603C6b1",
			"timestamp": "2024-03-14T23:34:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x0dc4a00048316575df8973332d523d02d7c827424bb404adf6ace4394f3160ea",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"DirectIntegrationManager": {
			"name": "DirectIntegrationManager",
			"address": "0xB2E57aC75df91784d76f9Dc0C00AdEFf2eFAe317",
			"source": "DirectIntegrationManager",
			"link": "https://sepolia.etherscan.io/address/0xB2E57aC75df91784d76f9Dc0C00AdEFf2eFAe317",
			"timestamp": "2024-03-14T23:34:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x1461442c17e86a4d4d1c26c1ad8636bed4329751fa9188691db43475f61883d6",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"TokenStatesUSD": {
			"name": "TokenStatesUSD",
			"address": "0x0731973f1F301aFE098b8FC58af8F29792B30B0F",
			"source": "TokenState",
			"link": "https://sepolia.etherscan.io/address/0x0731973f1F301aFE098b8FC58af8F29792B30B0F",
			"timestamp": "2024-03-14T23:35:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xc51d0f65de702a07ad460f71449dc5ce40a9ab76d2477421d83d3fd1aca8bbc8",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"ProxysUSD": {
			"name": "ProxysUSD",
			"address": "0xa032eEf7d27503Bd44D3882487627001E77829b8",
			"source": "ProxyERC20",
			"link": "https://sepolia.etherscan.io/address/0xa032eEf7d27503Bd44D3882487627001E77829b8",
			"timestamp": "2024-03-14T23:35:28.505Z",
			"txn": "",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"SynthsUSD": {
			"name": "SynthsUSD",
			"address": "0x4Ae41c02994a623D55Ea24a8A6bF678C6B192245",
			"source": "MultiCollateralSynth",
			"link": "https://sepolia.etherscan.io/address/0x4Ae41c02994a623D55Ea24a8A6bF678C6B192245",
			"timestamp": "2024-03-14T23:36:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xccb08001de62feff27320e00188cd380aeedf20fbe3c9aa0db7ac2be6d437443",
			"network": "sepolia",
			"constructorArgs": [
				"0xa032eEf7d27503Bd44D3882487627001E77829b8",
				"0x0731973f1F301aFE098b8FC58af8F29792B30B0F",
				"Synth sUSD",
				"sUSD",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x7355534400000000000000000000000000000000000000000000000000000000",
				0,
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"TokenStatesETH": {
			"name": "TokenStatesETH",
			"address": "0x6EE70d08D7b330e49E3A8B318010efe0C0acB2F5",
			"source": "TokenState",
			"link": "https://sepolia.etherscan.io/address/0x6EE70d08D7b330e49E3A8B318010efe0C0acB2F5",
			"timestamp": "2024-03-14T23:36:51.209Z",
			"txn": "",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"ProxysETH": {
			"name": "ProxysETH",
			"address": "0x033c10c259fac8fFA7e29c154a7e35877E55cE81",
			"source": "ProxyERC20",
			"link": "https://sepolia.etherscan.io/address/0x033c10c259fac8fFA7e29c154a7e35877E55cE81",
			"timestamp": "2024-03-14T23:38:04.551Z",
			"txn": "",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"SynthsETH": {
			"name": "SynthsETH",
			"address": "0xc563e5E774f66C55DAd58ceD174506f8949D60Fc",
			"source": "MultiCollateralSynth",
			"link": "https://sepolia.etherscan.io/address/0xc563e5E774f66C55DAd58ceD174506f8949D60Fc",
			"timestamp": "2024-03-14T23:38:13.883Z",
			"txn": "",
			"network": "sepolia",
			"constructorArgs": [
				"0x033c10c259fac8fFA7e29c154a7e35877E55cE81",
				"0x6EE70d08D7b330e49E3A8B318010efe0C0acB2F5",
				"Synth sETH",
				"sETH",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x7345544800000000000000000000000000000000000000000000000000000000",
				0,
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"TokenStatesBTC": {
			"name": "TokenStatesBTC",
			"address": "0xD569387AE9bC0028AAaf65936897e894941aA3A1",
			"source": "TokenState",
			"link": "https://sepolia.etherscan.io/address/0xD569387AE9bC0028AAaf65936897e894941aA3A1",
			"timestamp": "2024-03-14T23:38:27.151Z",
			"txn": "",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x0000000000000000000000000000000000000000"
			]
		},
		"ProxysBTC": {
			"name": "ProxysBTC",
			"address": "0x993783797Ad658e60A8d28528cBA13450925A1A5",
			"source": "ProxyERC20",
			"link": "https://sepolia.etherscan.io/address/0x993783797Ad658e60A8d28528cBA13450925A1A5",
			"timestamp": "2024-03-14T23:38:40.369Z",
			"txn": "",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"SynthsBTC": {
			"name": "SynthsBTC",
			"address": "0x391683f29453E86ABd9FBA3Ab0a883EF77F5ACbC",
			"source": "MultiCollateralSynth",
			"link": "https://sepolia.etherscan.io/address/0x391683f29453E86ABd9FBA3Ab0a883EF77F5ACbC",
			"timestamp": "2024-03-14T23:40:25.745Z",
			"txn": "",
			"network": "sepolia",
			"constructorArgs": [
				"0x993783797Ad658e60A8d28528cBA13450925A1A5",
				"0xD569387AE9bC0028AAaf65936897e894941aA3A1",
				"Synth sBTC",
				"sBTC",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x7342544300000000000000000000000000000000000000000000000000000000",
				0,
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"Depot": {
			"name": "Depot",
			"address": "0x91112d49095Febf1616af25be7f32Cf580DBC7A3",
			"source": "Depot",
			"link": "https://sepolia.etherscan.io/address/0x91112d49095Febf1616af25be7f32Cf580DBC7A3",
			"timestamp": "2024-03-14T23:40:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x483c52a31c15e1c203d4ed6c0e00d018ed62872fea8c9d92f0e0959503586812",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"EtherWrapper": {
			"name": "EtherWrapper",
			"address": "0x8c40995955502B7d5F4555B43BA0aCe402B216B5",
			"source": "EtherWrapper",
			"link": "https://sepolia.etherscan.io/address/0x8c40995955502B7d5F4555B43BA0aCe402B216B5",
			"timestamp": "2024-03-14T23:40:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xd86f65928fa144b7db5950e9b0cd7688af03dc17922bc018278f2305bb90d64c",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
				"0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9"
			]
		},
		"NativeEtherWrapper": {
			"name": "NativeEtherWrapper",
			"address": "0xE35F9a96bFEa977b3660b8EF7fF8B326C9Ee150c",
			"source": "NativeEtherWrapper",
			"link": "https://sepolia.etherscan.io/address/0xE35F9a96bFEa977b3660b8EF7fF8B326C9Ee150c",
			"timestamp": "2024-03-14T23:41:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x40b2a7df140860cd2c69c12daf7e4d4ef8ca111af07e5b8e15f23e13664729b9",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"CollateralUtil": {
			"name": "CollateralUtil",
			"address": "0x928A72cbd43b2c27d76b2dF40fe408B86062976D",
			"source": "CollateralUtil",
			"link": "https://sepolia.etherscan.io/address/0x928A72cbd43b2c27d76b2dF40fe408B86062976D",
			"timestamp": "2024-03-14T23:41:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x9d642adaccb26d2b320bc7a2da7e3dc3b2fde7eb820e1db73622db2890c4045c",
			"network": "sepolia",
			"constructorArgs": [
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"CollateralManagerState": {
			"name": "CollateralManagerState",
			"address": "0x4D06965E0941E0881a5308DFF66cD59D28a08E3f",
			"source": "CollateralManagerState",
			"link": "https://sepolia.etherscan.io/address/0x4D06965E0941E0881a5308DFF66cD59D28a08E3f",
			"timestamp": "2024-03-14T23:42:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xbda05381a8c1be1e5dc25f2388c4dbd9ab60078cb14a0c3cc3ab4ef4b20c73e6",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"CollateralManager": {
			"name": "CollateralManager",
			"address": "0x4dBB50B97EBBC4c29EddbE021Ab67b588b979711",
			"source": "CollateralManager",
			"link": "https://sepolia.etherscan.io/address/0x4dBB50B97EBBC4c29EddbE021Ab67b588b979711",
			"timestamp": "2024-03-14T23:42:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x8b5fe92566edfb8eb58ab7a650a66c1f5b90c615f118913ae5691fe1acb1bfe7",
			"network": "sepolia",
			"constructorArgs": [
				"0x4D06965E0941E0881a5308DFF66cD59D28a08E3f",
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
				"75000000000000000000000000",
				"200000000000000000",
				"158443823",
				"158443823"
			]
		},
		"CollateralEth": {
			"name": "CollateralEth",
			"address": "0xBd495E2cAB97441051e81f48ec2a9739957E069b",
			"source": "CollateralEth",
			"link": "https://sepolia.etherscan.io/address/0xBd495E2cAB97441051e81f48ec2a9739957E069b",
			"timestamp": "2024-03-14T23:43:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xd195b23cc7e197c2ce93f0f26e54d18a1a1e33f702c2986c821f448fabe7d383",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x4dBB50B97EBBC4c29EddbE021Ab67b588b979711",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
				"0x7345544800000000000000000000000000000000000000000000000000000000",
				"1300000000000000000",
				"2000000000000000000"
			]
		},
		"CollateralErc20": {
			"name": "CollateralErc20",
			"address": "0x0d63eB71ab86EB414eDcD800dD9C7f6279913Edc",
			"source": "CollateralErc20",
			"link": "https://sepolia.etherscan.io/address/0x0d63eB71ab86EB414eDcD800dD9C7f6279913Edc",
			"timestamp": "2024-03-14T23:43:12.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x3e82dbba6f3d36fc3c9786e107d5ca94cd25856963eac9a40d4b09ec03b1e96c",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x4dBB50B97EBBC4c29EddbE021Ab67b588b979711",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
				"0x7342544300000000000000000000000000000000000000000000000000000000",
				"1300000000000000000",
				"50000000000000000",
				"0x0000000000000000000000000000000000000000",
				8
			]
		},
		"CollateralShort": {
			"name": "CollateralShort",
			"address": "0x60c3433763c59d4Be7684E2912Dda21BA0546a73",
			"source": "CollateralShort",
			"link": "https://sepolia.etherscan.io/address/0x60c3433763c59d4Be7684E2912Dda21BA0546a73",
			"timestamp": "2024-03-14T23:43:48.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xc34e586ccac313b7eacd555a4a3d70889076cc8dd0f5be5243eae985bd5d8799",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0x4dBB50B97EBBC4c29EddbE021Ab67b588b979711",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
				"0x7355534400000000000000000000000000000000000000000000000000000000",
				"1200000000000000000",
				"1000000000000000000000"
			]
		},
		"FuturesMarketManager": {
			"name": "FuturesMarketManager",
			"address": "0xA73A7B754Ec870b3738D0654cA75b7d0eEbdb460",
			"source": "EmptyFuturesMarketManager",
			"link": "https://sepolia.etherscan.io/address/0xA73A7B754Ec870b3738D0654cA75b7d0eEbdb460",
			"timestamp": "2024-03-14T23:44:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xfe9fedc85a676a078aaaa66bea8141b7b6b54a4e728181ff437184853b9cc306",
			"network": "sepolia",
			"constructorArgs": []
		},
		"SynthUtil": {
			"name": "SynthUtil",
			"address": "0x484Ae29E4b68d7625D7CBeeCA5Be51e6BA47c7c3",
			"source": "SynthUtil",
			"link": "https://sepolia.etherscan.io/address/0x484Ae29E4b68d7625D7CBeeCA5Be51e6BA47c7c3",
			"timestamp": "2024-03-14T23:44:36.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0xa18f150aa8d87eeef0f627db6a0c4ee8f1061c3b0a0eff3ca36d47358f126af4",
			"network": "sepolia",
			"constructorArgs": [
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		},
		"DappMaintenance": {
			"name": "DappMaintenance",
			"address": "0x045ba2D58f16d39a91db70C1027080cde6f4E56f",
			"source": "DappMaintenance",
			"link": "https://sepolia.etherscan.io/address/0x045ba2D58f16d39a91db70C1027080cde6f4E56f",
			"timestamp": "2024-03-14T23:45:24.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x00682eb106a68b888ebb18056d6a29f003cf4f11e157ffc34ab2705c20f9a243",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
			]
		},
		"DynamicSynthRedeemer": {
			"name": "DynamicSynthRedeemer",
			"address": "0x2e11a3638F12A37263b1B4226b61412f6BBB277c",
			"source": "DynamicSynthRedeemer",
			"link": "https://sepolia.etherscan.io/address/0x2e11a3638F12A37263b1B4226b61412f6BBB277c",
			"timestamp": "2024-04-11T18:01:00.000Z",
			"txn": "https://sepolia.etherscan.io/tx/0x7d1ab1f52d7004c825c71f95b46e18ce0a2df2d4e685d6dca8856c7472883309",
			"network": "sepolia",
			"constructorArgs": [
				"0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
				"0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1"
			]
		}
	},
	"sources": {
		"SafeDecimalMath": {
			"bytecode": "61012d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060655760003560e01c8063313ce56714606a578063864029e7146086578063907af6c014609e5780639d8e21771460a4578063d5e5e6e61460aa578063def4419d1460b0575b600080fd5b607060b6565b6040805160ff9092168252519081900360200190f35b608c60bb565b60408051918252519081900360200190f35b608c60cb565b608c60d7565b608c60e3565b607060f3565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156fea265627a7a72315820290d93a0d0c1aae7a4488da5b5623419a35581a7da3680d9cbb526df858a7d4e64736f6c63430005100032",
			"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": "0x9296b843a9e751b62cb7ff5b68d873149d32b1268d3239c946eb3ea951e45e43",
				"urls": [
					"bzz-raw://9d8e247d848632f0c4ffc1dda11edcf8d82703282861c71a8abce5be8fdc8f63",
					"dweb:/ipfs/QmTd7pTcEjtQU2hQ1YcEW9wRMnfJ2V6XcicJHq6w5r2TPu"
				]
			},
			"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": "0x9296b843a9e751b62cb7ff5b68d873149d32b1268d3239c946eb3ea951e45e43",
						"urls": [
							"bzz-raw://9d8e247d848632f0c4ffc1dda11edcf8d82703282861c71a8abce5be8fdc8f63",
							"dweb:/ipfs/QmTd7pTcEjtQU2hQ1YcEW9wRMnfJ2V6XcicJHq6w5r2TPu"
						]
					}
				},
				"version": 1
			}
		},
		"Math": {
			"bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582044581b39ca31f7757e35b49735689a4bdaf16a76f18a028a7ab80e58f93b490164736f6c63430005100032",
			"abi": [],
			"source": {
				"keccak256": "0x50f72a98f0957164bf66bb6276165c42b31a1c378cbe0e37aec9452726407e3b",
				"urls": [
					"bzz-raw://5a425fb6a71fe47c303d5312d82d3557aa078fbe5d14473b47321f063017cd14",
					"dweb:/ipfs/QmbN7W6zM9ocV721GDeCQDaphndfBPdJS73eJxeUXyyhbv"
				]
			},
			"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": "0x50f72a98f0957164bf66bb6276165c42b31a1c378cbe0e37aec9452726407e3b",
						"urls": [
							"bzz-raw://5a425fb6a71fe47c303d5312d82d3557aa078fbe5d14473b47321f063017cd14",
							"dweb:/ipfs/QmbN7W6zM9ocV721GDeCQDaphndfBPdJS73eJxeUXyyhbv"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettingsLib": {
			"bytecode": "61227c610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106103a35760003560e01c806392dabaf2116101f3578063cff3fbb211610119578063f02d9a5b116100b7578063fbfd964611610086578063fbfd964614610b21578063fcaee852146103c2578063fd194a35146103c2578063fe250a5514610b68576103a3565b8063f02d9a5b14610aca578063f1076b2514610b09578063f344da6714610b11578063fb1b4c7e14610b19576103a3565b8063d9158b03116100f3578063d9158b0314610a44578063da91c7b81461087a578063e6abf7cc14610a83578063e78e6bb914610ac2576103a3565b8063cff3fbb21461075c578063d4aebcef146103c2578063d62ae3991461094d576103a3565b8063add0989d11610191578063c264b8f311610160578063c264b8f314610754578063c35b995c146109ac578063c404a0de146109ef578063c58c9ae414610a3c576103a3565b8063add0989d1461095d578063af8bc66014610965578063b2ea705414610754578063b3ebdca41461096d576103a3565b80639f91787d116101cd5780639f91787d14610945578063a4ce5b7114610955578063a6c46110146103c2578063aad237391461094d576103a3565b806392dabaf21461090657806394286a1e1461094557806398be8e3f1461094d576103a3565b80636a5b3043116102d85780637c1d99d6116102765780638134ddb7116102455780638134ddb7146108c1578063834f26de146103c257806383c2ab4d146103c25780638ab5a4a214610754576103a3565b80637c1d99d6146108315780637ce2cc7f146108725780637e1ba6a41461087a5780637eb294141461075c576103a3565b80636db97ffa116102b25780636db97ffa146103c257806372c6c341146107da57806375d0c0dc146107e25780637c14e56b146107ea576103a3565b80636a5b30431461075c5780636c5a9809146105ef5780636d4851f11461079b576103a3565b8063446ca4fd116103455780635d3045ab1161031f5780635d3045ab146106895780635f7ad871146106ce57806363daca0914610715578063657c6dc714610754576103a3565b8063446ca4fd146105ef57806353c0bf1c14610634578063580a975c14610681576103a3565b806311d78c0c1161038157806311d78c0c1461044257806319305b3c1461048d5780631a5bb1f7146104cc57806333ddab68146105b0576103a3565b8063085f95cd146103a85780630e7bf1c5146103c257806310ada72014610403575b600080fd5b6103b0610ba7565b60408051918252519081900360200190f35b8180156103ce57600080fd5b50610401600480360360608110156103e557600080fd5b506001600160a01b038135169060208101359060400135610bb3565b005b81801561040f57600080fd5b506103b06004803603606081101561042657600080fd5b506001600160a01b038135169060208101359060400135610c36565b81801561044e57600080fd5b50610401600480360360a081101561046557600080fd5b506001600160a01b038135169060208101359060408101359060608101359060800135610d9c565b81801561049957600080fd5b50610401600480360360608110156104b057600080fd5b506001600160a01b038135169060208101359060400135610f53565b8180156104d857600080fd5b50610401600480360360808110156104ef57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561051f57600080fd5b82018360208201111561053157600080fd5b8035906020019184602083028401116401000000008311171561055357600080fd5b91939092909160208101903564010000000081111561057157600080fd5b82018360208201111561058357600080fd5b803590602001918460208302840111640100000000831117156105a557600080fd5b509092509050610f99565b8180156105bc57600080fd5b50610401600480360360608110156105d357600080fd5b506001600160a01b038135169060208101359060400135611144565b8180156105fb57600080fd5b506104016004803603608081101561061257600080fd5b506001600160a01b0381351690602081013590604081013590606001356111c6565b81801561064057600080fd5b50610401600480360360a081101561065757600080fd5b506001600160a01b038135811691602081013591604082013516906060810135906080013561126e565b6103b0611430565b81801561069557600080fd5b50610401600480360360808110156106ac57600080fd5b506001600160a01b038135169060208101359060408101359060600135611437565b8180156106da57600080fd5b50610401600480360360808110156106f157600080fd5b506001600160a01b03813581169160208101359160408201359160600135166114bf565b81801561072157600080fd5b506104016004803603606081101561073857600080fd5b506001600160a01b0381351690602081013590604001356115a7565b6103b0611657565b81801561076857600080fd5b506104016004803603606081101561077f57600080fd5b506001600160a01b038135169060208101359060400135611663565b8180156107a757600080fd5b50610401600480360360608110156107be57600080fd5b506001600160a01b0381351690602081013590604001356116aa565b6103b06116f1565b6103b0611706565b8180156107f657600080fd5b506104016004803603608081101561080d57600080fd5b506001600160a01b038135169060208101359060408101359060600135151561171b565b81801561083d57600080fd5b506104016004803603606081101561085457600080fd5b506001600160a01b03813516906020810135906040013515156117a6565b6103b061180d565b81801561088657600080fd5b506104016004803603608081101561089d57600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611814565b8180156108cd57600080fd5b50610401600480360360808110156108e457600080fd5b506001600160a01b0381351690602081013590604081013590606001356118b1565b81801561091257600080fd5b506104016004803603606081101561092957600080fd5b506001600160a01b03813516906020810135906040013561190e565b6103b061196b565b6103b0611970565b6103b0611977565b6103b0611983565b6103b0611989565b81801561097957600080fd5b506104016004803603606081101561099057600080fd5b506001600160a01b03813516906020810135906040013561198e565b8180156109b857600080fd5b50610401600480360360608110156109cf57600080fd5b506001600160a01b03813581169160208101359160409091013516611a11565b8180156109fb57600080fd5b50610401600480360360a0811015610a1257600080fd5b506001600160a01b0381358116916020810135916040820135169060608101359060800135611ad5565b6103b0611bdb565b818015610a5057600080fd5b5061040160048036036060811015610a6757600080fd5b506001600160a01b038135169060208101359060400135611be2565b818015610a8f57600080fd5b5061040160048036036060811015610aa657600080fd5b506001600160a01b038135169060208101359060400135611c3a565b6103b0611ce9565b818015610ad657600080fd5b5061040160048036036060811015610aed57600080fd5b506001600160a01b038135169060208101359060400135611cf4565b6103b0611d5b565b6103b0611d62565b6103b0611d69565b818015610b2d57600080fd5b5061040160048036036080811015610b4457600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611d75565b818015610b7457600080fd5b5061040160048036036060811015610b8b57600080fd5b506001600160a01b038135169060208101359060400135611e2a565b670c7d713b49da000081565b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018490526044810183905290516001600160a01b03851691631d5b277f91606480830192600092919082900301818387803b158015610c1957600080fd5b505af1158015610c2d573d6000803e3d6000fd5b50505050505050565b60006032821115610c83576040805162461bcd60e51b81526020600482015260126024820152710a8d0e4cae6d0ded8c840e8dede40d0d2ced60731b604482015290519081900360640190fd5b610d146064610d0873__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610ccf57600080fd5b505af4158015610ce3573d6000803e3d6000fd5b505050506040513d6020811015610cf957600080fd5b5051859063ffffffff611e8716565b9063ffffffff611ee916565b9050836001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b85846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610d7d57600080fd5b505af1158015610d91573d6000803e3d6000fd5b505050509392505050565b610e34610e1f8373__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610de757600080fd5b505af4158015610dfb573d6000803e3d6000fd5b505050506040513d6020811015610e1157600080fd5b50519063ffffffff611f5316565b670de0b6b3a76400009063ffffffff611fad16565b831115610e725760405162461bcd60e51b81526004018080602001828103825260388152602001806120386038913960400191505060405180910390fd5b6000610e8c82671bc16d674ec8000063ffffffff611fcb16565b905080841015610ecd5760405162461bcd60e51b81526004018080602001828103825260288152602001806121946028913960400191505060405180910390fd5b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018790526044810186905290516001600160a01b03881691631d5b277f91606480830192600092919082900301818387803b158015610f3357600080fd5b505af1158015610f47573d6000803e3d6000fd5b50505050505050505050565b6001600160c01b03811115610bb35760405162461bcd60e51b81526004018080602001828103825260288152602001806120916028913960400191505060405180910390fd5b828114610fed576040805162461bcd60e51b815260206004820152601860248201527f4172726179206c656e6774687320646f6e74206d617463680000000000000000604482015290519081900360640190fd5b60005b83811015610c2d5767016345785d8a000083838381811061100d57fe5b905060200201351115611067576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b866001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b8888888681811061109557fe5b905060200201356040516020018083815260200182815260200192505050604051602081830303815290604052805190602001208686868181106110d557fe5b905060200201356040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561112057600080fd5b505af1158015611134573d6000803e3d6000fd5b505060019092019150610ff09050565b603c8110156111845760405162461bcd60e51b81526004018080602001828103825260268152602001806121146026913960400191505060405180910390fd5b62015180811115610bb35760405162461bcd60e51b81526004018080602001828103825260278152602001806121bc6027913960400191505060405180910390fd5b6040805160208082018690528183018590528251808303840181526060830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b6064830152608482015260a4810183905290516001600160a01b03861691631d5b277f9160c480830192600092919082900301818387803b15801561125057600080fd5b505af1158015611264573d6000803e3d6000fd5b5050505050505050565b670de0b6b3a76400008213156112cb576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff198212156113135760405162461bcd60e51b81526004018080602001828103825260218152602001806120706021913960400191505060405180910390fd5b60008212156113745780826000031315611374576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724275726e46656552617465000000000000604482015290519081900360640190fd5b6040805160208082018790526bffffffffffffffffffffffff19606087901b168284015282516034818403018152605483018085528151919092012063d71a9b0160e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810184905290516001600160a01b0387169163d71a9b019160b880830192600092919082900301818387803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050505050505050565b62093a8081565b80156111c657603c81101561147d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806120da603a913960400191505060405180910390fd5b620151808111156111c65760405162461bcd60e51b815260040180806020018281038252603b81526020018061220d603b913960400191505060405180910390fd5b6001600160a01b03811661151a576040805162461bcd60e51b815260206004820152601e60248201527f41746f6d6963206571756976616c656e74206973203020616464726573730000604482015290519081900360640190fd5b60408051602080820186905281830185905282518083038401815260608301808552815191909201206309b9412f60e31b9091526d53797374656d53657474696e677360901b606483015260848201526001600160a01b0383811660a4830152915191861691634dca09789160c48082019260009290919082900301818387803b15801561125057600080fd5b620151808110156115ff576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203c204d494e5f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b624f1a00811115610bb3576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203e204d41585f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b670de0b6b3a764000081565b670c7d713b49da0000811115610bb35760405162461bcd60e51b8152600401808060200182810382526021815260200180611ff66021913960400191505060405180910390fd5b670de0b6b3a7640000811115610bb35760405162461bcd60e51b815260040180806020018281038252603381526020018061213a6033913960400191505060405180910390fd5b6d53797374656d53657474696e677360901b81565b6d53797374656d53657474696e677360901b90565b6040805160208082018690528183018590528251808303840181526060830180855281519190920120630fca29bf60e21b9091526d53797374656d53657474696e677360901b6064830152608482015282151560a482015290516001600160a01b03861691633f28a6fc9160c480830192600092919082900301818387803b15801561125057600080fd5b60408051630fca29bf60e21b81526d53797374656d53657474696e677360901b600482015260248101849052821515604482015290516001600160a01b03851691633f28a6fc91606480830192600092919082900301818387803b158015610c1957600080fd5b622dc6c081565b6040805160208082018690526bffffffffffffffffffffffff19606086901b1682840152825160348184030181526054830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810183905290516001600160a01b03861691631d5b277f9160b880830192600092919082900301818387803b15801561125057600080fd5b67016345785d8a00008111156111c6576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b670de0b6b3a7640000811115610bb3576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b603c81565b6201518081565b671bc16d674ec8000081565b61012c81565b603281565b6203f4808111156119d05760405162461bcd60e51b815260040180806020018281038252602781526020018061216d6027913960400191505060405180910390fd5b61012c811015610bb35760405162461bcd60e51b815260040180806020018281038252602a8152602001806121e3602a913960400191505060405180910390fd5b6001600160a01b038116611a6c576040805162461bcd60e51b815260206004820152601b60248201527f56616c69642061646472657373206d75737420626520676976656e0000000000604482015290519081900360640190fd5b604080516309b9412f60e31b81526d53797374656d53657474696e677360901b6004820152602481018490526001600160a01b038381166044830152915191851691634dca09789160648082019260009290919082900301818387803b158015610c1957600080fd5b670de0b6b3a7640000821315611b32576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff19821215611b7a5760405162461bcd60e51b81526004018080602001828103825260218152602001806120176021913960400191505060405180910390fd5b60008212156113745780826000031315611374576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724d696e7446656552617465000000000000604482015290519081900360640190fd5b62b71b0081565b62093a80811115610bb3576040805162461bcd60e51b815260206004820181905260248201527f7374616b652074696d6520657863656564206d6178696d756d2031207765656b604482015290519081900360640190fd5b80611c8c576040805162461bcd60e51b815260206004820152601b60248201527f4d61782064796e616d6963206665652063616e6e6f7420626520300000000000604482015290519081900360640190fd5b67016345785d8a0000811115610bb3576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b6001600160c01b0381565b622dc6c08110158015611d0a575062b71b008111155b610bb3576040805162461bcd60e51b815260206004820152601d60248201527f4f7574206f662072616e67652078446f6d61696e206761734c696d6974000000604482015290519081900360640190fd5b6203f48081565b624f1a0081565b67016345785d8a000081565b73__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611db957600080fd5b505af4158015611dcd573d6000803e3d6000fd5b505050506040513d6020811015611de357600080fd5b5051610e1002811115611814576040805162461bcd60e51b815260206004820152600a60248201526926b0bc1018903437bab960b11b604482015290519081900360640190fd5b670de0b6b3a7640000811115610bb3576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b600082611e9657506000611ee3565b82820282848281611ea357fe5b0414611ee05760405162461bcd60e51b81526004018080602001828103825260218152602001806120b96021913960400191505060405180910390fd5b90505b92915050565b6000808211611f3f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611f4a57fe5b04949350505050565b600082820183811015611ee0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611ee082610d0885670de0b6b3a764000063ffffffff611e8716565b6000670de0b6b3a7640000611fe6848463ffffffff611e8716565b81611fed57fe5b04939250505056fe70656e616c7479203e204d41585f4c49515549444154494f4e5f50454e414c545972617465203c202d4d41585f575241505045525f4255524e5f4645455f524154456c69717569646174696f6e526174696f203e204d41585f4c49515549444154494f4e5f524154494f202f202831202b2070656e616c74792972617465203c202d4d41585f575241505045525f4d494e545f4645455f5241544541746f6d6963206d617820766f6c756d6520657863656564206d6178696d756d2075696e74313932536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7741746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720756e646572206d696e696d756d2031206d696e41746f6d696320747761702077696e646f7720756e646572206d696e696d756d2031206d696e4e65772069737375616e636520726174696f2063616e6e6f7420657863656564204d41585f49535355414e43455f524154494f4d757374206265206c657373207468616e204d41585f4c49515549444154494f4e5f44454c41596c69717569646174696f6e526174696f203c204d494e5f4c49515549444154494f4e5f524154494f41746f6d696320747761702077696e646f7720657863656564206d6178696d756d2031206461794d7573742062652067726561746572207468616e204d494e5f4c49515549444154494f4e5f44454c415941746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720657863656564206d6178696d756d203120646179a265627a7a723158200d8d369d75fb39ce904d8549b900a1b01a7e7496af62f62022dd116ef210e11464736f6c63430005100032",
			"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": "0xf3022781fbd4ed8d1020959d9dc1314beadb335a63d79709ccbbcdeefae222d1",
				"urls": [
					"bzz-raw://450b595c7973495226e157bc0d00727742aba34eb5195e8c1a55aebad9abba60",
					"dweb:/ipfs/QmcRHpepgyovQ4ffVowgt5oNWVYCLu47TsV57NzuYxMdG6"
				]
			},
			"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": "0xf3022781fbd4ed8d1020959d9dc1314beadb335a63d79709ccbbcdeefae222d1",
						"urls": [
							"bzz-raw://450b595c7973495226e157bc0d00727742aba34eb5195e8c1a55aebad9abba60",
							"dweb:/ipfs/QmcRHpepgyovQ4ffVowgt5oNWVYCLu47TsV57NzuYxMdG6"
						]
					}
				},
				"version": 1
			}
		},
		"SignedSafeDecimalMath": {
			"bytecode": "61012d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060655760003560e01c8063313ce56714606a578063864029e7146086578063907af6c014609e5780639d8e21771460a4578063d5e5e6e61460aa578063def4419d1460b0575b600080fd5b607060b6565b6040805160ff9092168252519081900360200190f35b608c60bb565b60408051918252519081900360200190f35b608c60cb565b608c60d7565b608c60e3565b607060f3565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156fea265627a7a72315820e197e0a148b3be77dc646c4b32058054456046cc10606a9a2057f1fc56513cd064736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "PRECISE_UNIT",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "UNIT",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"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": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "unit",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x3f5ec8eda8eccbf5ea55a974d86428cf83598db505d865f3269c7e9d7c7fdade",
				"urls": [
					"bzz-raw://44766c12c3b11d7cf0cdb45566eb8e2b7fd436825b652772c9d03fb147ba71e3",
					"dweb:/ipfs/QmRvcy8mXJ6f5ZQ8VSqUUAPf6tgz88druSzJKUyydv7r9T"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SignedSafeDecimalMath.sol": "SignedSafeDecimalMath"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SignedSafeDecimalMath.sol": {
						"keccak256": "0x3f5ec8eda8eccbf5ea55a974d86428cf83598db505d865f3269c7e9d7c7fdade",
						"urls": [
							"bzz-raw://44766c12c3b11d7cf0cdb45566eb8e2b7fd436825b652772c9d03fb147ba71e3",
							"dweb:/ipfs/QmRvcy8mXJ6f5ZQ8VSqUUAPf6tgz88druSzJKUyydv7r9T"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeSettlementLib": {
			"bytecode": "611b9f610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c80630a0ecd1b14610066578063291be93d146100925780632f2de902146100b257806377cd29a5146100d45780638317e96b14610103575b600080fd5b6100796100743660046113c1565b610123565b6040516100899493929190611a8c565b60405180910390f35b6100a56100a03660046112ca565b610155565b60405161008991906118b9565b8180156100be57600080fd5b506100d26100cd366004611418565b6101e9565b005b8180156100e057600080fd5b506100f46100ef366004611349565b6103d9565b60405161008993929190611a7e565b6101166101113660046113c1565b610712565b60405161008991906118ab565b60008080606061014361013b368a90038a018a6114b9565b888888610764565b929b919a509850909650945050505050565b60006101de856001600160a01b031663f1406dc886866040518363ffffffff1660e01b81526004016101889291906117ca565b60206040518083038186803b1580156101a057600080fd5b505afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506101d891908101906114d7565b83610a99565b90505b949350505050565b60006101fb6040890160208a016112ac565b6001600160a01b0316637a018a1e876040518263ffffffff1660e01b815260040161022691906118b9565b60206040518083038186803b15801561023e57600080fd5b505afa158015610252573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061027691908101906114d7565b9050600061028a60408a0160208b016112ac565b6001600160a01b0316637a018a1e866040518263ffffffff1660e01b81526004016102b591906118b9565b60206040518083038186803b1580156102cd57600080fd5b505afa1580156102e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061030591908101906114d7565b905061031460208a018a6112ac565b6001600160a01b0316633ca9d85c898989898989428a8a6040518a63ffffffff1660e01b815260040161034f99989796959493929190611814565b600060405180830381600087803b15801561036957600080fd5b505af115801561037d573d6000803e3d6000fd5b50505050876001600160a01b03167f62e40d554c7abcdd31074960d8347a2225daeb04d93bc748f049ba2ce9462398888888888888886040516103c69796959493929190611913565b60405180910390a2505050505050505050565b600080806103f56103ed60208a018a6112ac565b888887610155565b1561041b5760405162461bcd60e51b815260040161041290611a60565b60405180910390fd5b60008080606061043b610433368e90038e018e6114b9565b8c8c8b610764565b93509350935093508284111561047c5761045b848463ffffffff610aed16565b965061047761046f368e90038e018e6114b9565b8c8c8a610b15565b6104b0565b838311156104b057610494838563ffffffff610aed16565b95506104b06104a8368e90038e018e6114b9565b8c8c89610c60565b8880156104c7575060008711806104c75750600086115b1561057657604080516001808252818301909252606091602080830190803883390190505090508a816000815181106104fc57fe5b602090810291909101015261051760808e0160608f016112ac565b6001600160a01b031663cda218c7826040518263ffffffff1660e01b8152600401610542919061189a565b600060405180830381600087803b15801561055c57600080fd5b505af1158015610570573d6000803e3d6000fd5b50505050505b60005b8151811015610691578b6001600160a01b03167f8e3ad1f68bec55de3b6fa12ae2674a2a683a17c918a4cbf5157ac5d9ddc6e9408383815181106105b957fe5b6020026020010151600001518484815181106105d157fe5b6020026020010151602001518585815181106105e957fe5b60200260200101516040015186868151811061060157fe5b60200260200101516060015187878151811061061957fe5b60200260200101516080015188888151811061063157fe5b602002602001015160a0015189898151811061064957fe5b602002602001015160c001518a8a8151811061066157fe5b602002602001015160e0015160405161068198979695949392919061197b565b60405180910390a2600101610579565b5090935083906106a460208d018d6112ac565b6001600160a01b031663d0d3d62a8c8c6040518363ffffffff1660e01b81526004016106d19291906117ca565b600060405180830381600087803b1580156106eb57600080fd5b505af11580156106ff573d6000803e3d6000fd5b5050505050505050955095509592505050565b600061072c61072460208701876112ac565b858585610155565b15610739575060016101e1565b600061075561074d368890038801886114b9565b868686610764565b50505015159695505050505050565b6000806000606087600001516001600160a01b031663b44e975388886040518363ffffffff1660e01b815260040161079d9291906117ca565b60206040518083038186803b1580156107b557600080fd5b505afa1580156107c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ed91908101906114d7565b915060608260405190808252806020026020018201604052801561082b57816020015b610818611097565b8152602001906001900390816108105790505b50905060005b83811015610a8b57610841611097565b8a5161084f908b8b85610d73565b90506000806108638d60200151848c610e52565b915091506000808e602001516001600160a01b0316636ce66c8086600001518760200151886040015188886040518663ffffffff1660e01b81526004016108ae9594939291906118c7565b60606040518083038186803b1580156108c657600080fd5b505afa1580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108fe91908101906114f5565b50509050610910818660800151610f7c565b91505060008e604001516001600160a01b03166378cb51cb8660600151846040518363ffffffff1660e01b815260040161094b929190611a70565b60206040518083038186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061099b91908101906111de565b905060008082610a165783876060015111156109df5760608701516109c6908563ffffffff610aed16565b91506109d88d8363ffffffff61100e16565b9c50610a16565b8660600151841115610a16576060870151610a0190859063ffffffff610aed16565b9050610a138c8263ffffffff61100e16565b9b505b6040518061010001604052808860000151815260200188602001518152602001886040015181526020018381526020018281526020018781526020018681526020018860a00151815250898981518110610a6c57fe5b6020026020010181905250505050505050508080600101915050610831565b509050945094509450949050565b6000821580610ab75750610ab3838363ffffffff61100e16565b4210155b15610ac457506000610ae7565b610ae442610ad8858563ffffffff61100e16565b9063ffffffff610aed16565b90505b92915050565b600082821115610b0f5760405162461bcd60e51b815260040161041290611a40565b50900390565b83608001516001600160a01b03166332608039836040518263ffffffff1660e01b8152600401610b4591906118b9565b60206040518083038186803b158015610b5d57600080fd5b505afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b95919081019061132b565b6001600160a01b0316639dc29fac84836040518363ffffffff1660e01b8152600401610bc29291906117ca565b600060405180830381600087803b158015610bdc57600080fd5b505af1158015610bf0573d6000803e3d6000fd5b505050508360a001516001600160a01b031663ace88afd8484846040518463ffffffff1660e01b8152600401610c28939291906117ec565b600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b5050505050505050565b83608001516001600160a01b03166332608039836040518263ffffffff1660e01b8152600401610c9091906118b9565b60206040518083038186803b158015610ca857600080fd5b505afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ce0919081019061132b565b6001600160a01b031663867904b484836040518363ffffffff1660e01b8152600401610d0d9291906117ca565b600060405180830381600087803b158015610d2757600080fd5b505af1158015610d3b573d6000803e3d6000fd5b505050508360a001516001600160a01b0316636f01a9868484846040518463ffffffff1660e01b8152600401610c28939291906117ec565b610d7b611097565b6000806000806000806000808c6001600160a01b03166315987eb68d8d8d6040518463ffffffff1660e01b8152600401610db7939291906117ec565b6101006040518083038186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e0891908101906111fc565b60408051610100810182529889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201529d9c50505050505050505050505050565b815160c083015160a084015160405163084f235160e11b815260009384936001600160a01b0389169363109e46a293610e929392919089906004016119f2565b60206040518083038186803b158015610eaa57600080fd5b505afa158015610ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ee291908101906114d7565b60408086015160e087015160a0880151925163084f235160e11b81529395506001600160a01b0389169363109e46a293610f2293929189906004016119f2565b60206040518083038186803b158015610f3a57600080fd5b505afa158015610f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f7291908101906114d7565b9050935093915050565b6000610ae46110018373__$b35dcef3cd2d171b7cf73a40e8ebe9aba0$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc957600080fd5b505af4158015610fdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ad891908101906114d7565b849063ffffffff61103316565b600082820183811015610ae45760405162461bcd60e51b815260040161041290611a30565b6000670de0b6b3a764000061104e848463ffffffff61105d16565b8161105557fe5b049392505050565b60008261106c57506000610ae7565b8282028284828161107957fe5b0414610ae45760405162461bcd60e51b815260040161041290611a50565b60405180610100016040528060008019168152602001600081526020016000801916815260200160008152602001600081526020016000815260200160008152602001600081525090565b8035610ae781611b2a565b8035610ae781611b41565b8051610ae781611b41565b8035610ae781611b4a565b8051610ae781611b4a565b8035610ae781611b53565b8051610ae781611b53565b600060c0828403121561114157600080fd5b50919050565b600060c0828403121561115957600080fd5b61116360c0611ac6565b905060006111718484611119565b825250602061118284848301611119565b602083015250604061119684828501611119565b60408301525060606111aa84828501611119565b60608301525060806111be84828501611119565b60808301525060a06111d284828501611119565b60a08301525092915050565b6000602082840312156111f057600080fd5b60006101e184846110f8565b600080600080600080600080610100898b03121561121957600080fd5b60006112258b8b61110e565b98505060206112368b828c0161110e565b97505060406112478b828c0161110e565b96505060606112588b828c0161110e565b95505060806112698b828c0161110e565b94505060a061127a8b828c0161110e565b93505060c061128b8b828c0161110e565b92505060e061129c8b828c0161110e565b9150509295985092959890939650565b6000602082840312156112be57600080fd5b60006101e18484611119565b600080600080608085870312156112e057600080fd5b60006112ec8787611119565b94505060206112fd878288016110e2565b935050604061130e87828801611103565b925050606061131f87828801611103565b91505092959194509250565b60006020828403121561133d57600080fd5b60006101e18484611124565b6000806000806000610140868803121561136257600080fd5b600061136e888861112f565b95505060c061137f888289016110e2565b94505060e061139088828901611103565b9350506101006113a2888289016110ed565b9250506101206113b488828901611103565b9150509295509295909350565b60008060008061012085870312156113d857600080fd5b60006113e4878761112f565b94505060c06113f5878288016110e2565b93505060e061140687828801611103565b92505061010061131f87828801611103565b6000806000806000806000610180888a03121561143457600080fd5b60006114408a8a61112f565b97505060c06114518a828b016110e2565b96505060e06114628a828b01611103565b9550506101006114748a828b01611103565b9450506101206114868a828b01611103565b9350506101406114988a828b01611103565b9250506101606114aa8a828b01611103565b91505092959891949750929550565b600060c082840312156114cb57600080fd5b60006101e18484611147565b6000602082840312156114e957600080fd5b60006101e1848461110e565b60008060006060848603121561150a57600080fd5b6000611516868661110e565b93505060206115278682870161110e565b92505060406115388682870161110e565b9150509250925092565b600061154e838361162a565b505060200190565b6000611562838361172d565b50506101000190565b61157481611b00565b82525050565b600061158582611af3565b61158f8185611af7565b935061159a83611aed565b8060005b838110156115c85781516115b28882611542565b97506115bd83611aed565b92505060010161159e565b509495945050505050565b60006115de82611af3565b6115e88185611af7565b93506115f383611aed565b8060005b838110156115c857815161160b8882611556565b975061161683611aed565b9250506001016115f7565b61157481611b0b565b61157481611b10565b6000611640601b83611af7565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611679601e83611af7565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006116b2602183611af7565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006116f5602383611af7565b7f43616e6e6f7420736574746c6520647572696e672077616974696e67207065728152621a5bd960ea1b602082015260400192915050565b805161010083019061173f848261162a565b506020820151611752602085018261162a565b506040820151611765604085018261162a565b506060820151611778606085018261162a565b50608082015161178b608085018261162a565b5060a082015161179e60a085018261162a565b5060c08201516117b160c085018261162a565b5060e08201516117c460e085018261162a565b50505050565b604081016117d8828561156b565b6117e5602083018461162a565b9392505050565b606081016117fa828661156b565b611807602083018561162a565b6101e1604083018461162a565b6101208101611823828c61156b565b611830602083018b61162a565b61183d604083018a61162a565b61184a606083018961162a565b611857608083018861162a565b61186460a083018761162a565b61187160c083018661162a565b61187e60e083018561162a565b61188c61010083018461162a565b9a9950505050505050505050565b60208082528101610ae4818461157a565b60208101610ae78284611621565b60208101610ae7828461162a565b60a081016118d5828861162a565b6118e2602083018761162a565b6118ef604083018661162a565b6118fc606083018561162a565b611909608083018461162a565b9695505050505050565b60e08101611921828a61162a565b61192e602083018961162a565b61193b604083018861162a565b611948606083018761162a565b611955608083018661162a565b61196260a083018561162a565b61196f60c083018461162a565b98975050505050505050565b610100810161198a828b61162a565b611997602083018a61162a565b6119a4604083018961162a565b6119b1606083018861162a565b6119be608083018761162a565b6119cb60a083018661162a565b6119d860c083018561162a565b6119e560e083018461162a565b9998505050505050505050565b60808101611a00828761162a565b611a0d602083018661162a565b611a1a604083018561162a565b611a27606083018461162a565b95945050505050565b60208082528101610ae781611633565b60208082528101610ae78161166c565b60208082528101610ae7816116a5565b60208082528101610ae7816116e8565b604081016117d8828561162a565b606081016117fa828661162a565b60808101611a9a828761162a565b611aa7602083018661162a565b611ab4604083018561162a565b818103606083015261190981846115d3565b60405181810167ffffffffffffffff81118282101715611ae557600080fd5b604052919050565b60200190565b5190565b90815260200190565b6000610ae782611b1e565b151590565b90565b6000610ae782611b00565b6001600160a01b031690565b611b3381611b00565b8114611b3e57600080fd5b50565b611b3381611b0b565b611b3381611b10565b611b3381611b1356fea365627a7a723158205b0a060140865d477d159852334d41fd64000a0f4ddb04432c1e6e06157506366c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"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"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "contract IExchangeState",
									"name": "exchangeState",
									"type": "IExchangeState"
								},
								{
									"internalType": "contract IExchangeRates",
									"name": "exchangeRates",
									"type": "IExchangeRates"
								},
								{
									"internalType": "contract ICircuitBreaker",
									"name": "circuitBreaker",
									"type": "ICircuitBreaker"
								},
								{
									"internalType": "contract IExchangerInternalDebtCache",
									"name": "debtCache",
									"type": "IExchangerInternalDebtCache"
								},
								{
									"internalType": "contract IIssuer",
									"name": "issuer",
									"type": "IIssuer"
								},
								{
									"internalType": "contract ISynthetix",
									"name": "synthetix",
									"type": "ISynthetix"
								}
							],
							"internalType": "struct ExchangeSettlementLib.ResolvedAddresses",
							"name": "resolvedAddresses",
							"type": "tuple"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "waitingPeriod",
							"type": "uint256"
						}
					],
					"name": "hasWaitingPeriodOrSettlementOwing",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract IExchangeState",
							"name": "exchangeState",
							"type": "IExchangeState"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "waitingPeriod",
							"type": "uint256"
						}
					],
					"name": "maxSecsLeftInWaitingPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "contract IExchangeState",
									"name": "exchangeState",
									"type": "IExchangeState"
								},
								{
									"internalType": "contract IExchangeRates",
									"name": "exchangeRates",
									"type": "IExchangeRates"
								},
								{
									"internalType": "contract ICircuitBreaker",
									"name": "circuitBreaker",
									"type": "ICircuitBreaker"
								},
								{
									"internalType": "contract IExchangerInternalDebtCache",
									"name": "debtCache",
									"type": "IExchangerInternalDebtCache"
								},
								{
									"internalType": "contract IIssuer",
									"name": "issuer",
									"type": "IIssuer"
								},
								{
									"internalType": "contract ISynthetix",
									"name": "synthetix",
									"type": "ISynthetix"
								}
							],
							"internalType": "struct ExchangeSettlementLib.ResolvedAddresses",
							"name": "resolvedAddresses",
							"type": "tuple"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "waitingPeriod",
							"type": "uint256"
						}
					],
					"name": "settlementOwing",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rebateAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntries",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "src",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "dest",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "reclaim",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "rebate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "srcRoundIdAtPeriodEnd",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "destRoundIdAtPeriodEnd",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "timestamp",
									"type": "uint256"
								}
							],
							"internalType": "struct IExchanger.ExchangeEntrySettlement[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x1fa213be06b7ff70f495355c6e3e185b6f825c1f0d0590343cee1887b78d1892",
				"urls": [
					"bzz-raw://01890850d8e8cf698067c93dcda67412d1ea222ab5d84635df37c1cef09d5ada",
					"dweb:/ipfs/QmS1wPdWpqv8UytPHhBLfawFTifjEWKf8rubGFY3ZdkTnr"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeSettlementLib.sol": "ExchangeSettlementLib"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeSettlementLib.sol": {
						"keccak256": "0x1fa213be06b7ff70f495355c6e3e185b6f825c1f0d0590343cee1887b78d1892",
						"urls": [
							"bzz-raw://01890850d8e8cf698067c93dcda67412d1ea222ab5d84635df37c1cef09d5ada",
							"dweb:/ipfs/QmS1wPdWpqv8UytPHhBLfawFTifjEWKf8rubGFY3ZdkTnr"
						]
					}
				},
				"version": 1
			}
		},
		"AddressResolver": {
			"bytecode": "608060405234801561001057600080fd5b50604051610ab9380380610ab98339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506109bf806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063766f781511610071578063766f78151461015157806379ba5097146101bf5780638da5cb5b146101c75780639f42102f146101cf578063ab0b8f77146102a1578063dacb2d011461035f576100a9565b80631627540c146100ae578063187f7935146100d657806321f8a7211461010f578063514560611461012c57806353a47bb714610149575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b03166103d4565b005b6100f3600480360360208110156100ec57600080fd5b5035610430565b604080516001600160a01b039092168252519081900360200190f35b6100f36004803603602081101561012557600080fd5b503561044b565b6100f36004803603602081101561014257600080fd5b5035610466565b6100f361056e565b6100d46004803603602081101561016757600080fd5b810190602081018135600160201b81111561018157600080fd5b82018360208201111561019357600080fd5b803590602001918460208302840111600160201b831117156101b457600080fd5b50909250905061057d565b6100d4610607565b6100f36106c3565b61028d600480360360408110156101e557600080fd5b810190602081018135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460208302840111600160201b8311171561023257600080fd5b919390929091602081019035600160201b81111561024f57600080fd5b82018360208201111561026157600080fd5b803590602001918460208302840111600160201b8311171561028257600080fd5b5090925090506106d2565b604080519115158252519081900360200190f35b6100d4600480360360408110156102b757600080fd5b810190602081018135600160201b8111156102d157600080fd5b8201836020820111156102e357600080fd5b803590602001918460208302840111600160201b8311171561030457600080fd5b919390929091602081019035600160201b81111561032157600080fd5b82018360208201111561033357600080fd5b803590602001918460208302840111600160201b8311171561035457600080fd5b50909250905061075b565b6100f36004803603604081101561037557600080fd5b81359190810190604081016020820135600160201b81111561039657600080fd5b8201836020820111156103a857600080fd5b803590602001918460018302840111600160201b831117156103c957600080fd5b509092509050610867565b6103dc6108db565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002602052600090815260409020546001600160a01b031681565b6000908152600260205260409020546001600160a01b031690565b6524b9b9bab2b960d11b600090815260026020527f0651498423135bdecab48e2d306f14d560a72d49179b71410fd95b5d25ce349a546001600160a01b0316806104f7576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015290519081900360640190fd5b806001600160a01b03166332608039846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561053b57600080fd5b505afa15801561054f573d6000803e3d6000fd5b505050506040513d602081101561056557600080fd5b50519392505050565b6001546001600160a01b031681565b60005b818110156106025782828281811061059457fe5b905060200201356001600160a01b03166001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105de57600080fd5b505af11580156105f2573d6000803e3d6000fd5b5050600190920191506105809050565b505050565b6001546001600160a01b031633146106505760405162461bcd60e51b81526004018080602001828103825260358152602001806109276035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000805b8481101561074d578383828181106106ea57fe5b905060200201356001600160a01b03166001600160a01b03166002600088888581811061071357fe5b60209081029290920135835250810191909152604001600020546001600160a01b031614610745576000915050610753565b6001016106d6565b50600190505b949350505050565b6107636108db565b8281146107b7576040805162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015290519081900360640190fd5b60005b838110156108605760008585838181106107d057fe5b90506020020135905060008484848181106107e757fe5b600085815260026020908152604091829020805493820295909501356001600160a01b03166001600160a01b03199093168317909455805186815293840182905280519194507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa9193829003019150a150506001016107ba565b5050505050565b6000838152600260205260408120546001600160a01b03168383826108d05760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152604051601f909101601f19169092018290039550909350505050fd5b509095945050505050565b6000546001600160a01b031633146109245760405162461bcd60e51b815260040180806020018281038252602f81526020018061095c602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820fce9b6200ef0ee4c2580d280d9a5e34c1ce34095cdda81d04ca05ae97026602464736f6c63430005100032",
			"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": "0x0a59eeea462ab6052bf29c97194e519875f956286d99c895e50064fb33355a56",
				"urls": [
					"bzz-raw://dad3dcd2335cc14723c5e73e7b93d868d869b5fa5be4c2fc512e8ca32c736dc5",
					"dweb:/ipfs/Qma2LbjfXSZRFVmzCcLvmNrLJtRY86w8SN5ZW5UwKSNJC1"
				]
			},
			"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": "0x0a59eeea462ab6052bf29c97194e519875f956286d99c895e50064fb33355a56",
						"urls": [
							"bzz-raw://dad3dcd2335cc14723c5e73e7b93d868d869b5fa5be4c2fc512e8ca32c736dc5",
							"dweb:/ipfs/Qma2LbjfXSZRFVmzCcLvmNrLJtRY86w8SN5ZW5UwKSNJC1"
						]
					}
				},
				"version": 1
			}
		},
		"ReadProxy": {
			"bytecode": "608060405234801561001057600080fd5b506040516104953803806104958339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505061039b806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631627540c1461008657806353a47bb7146100ae578063776d1a01146100d257806379ba5097146100f85780638da5cb5b14610100578063d4b8399214610108575b36600080376000803660006002545afa3d6000803e80610081573d6000fd5b3d6000f35b6100ac6004803603602081101561009c57600080fd5b50356001600160a01b0316610110565b005b6100b661016c565b604080516001600160a01b039092168252519081900360200190f35b6100ac600480360360208110156100e857600080fd5b50356001600160a01b031661017b565b6100ac6101dd565b6100b6610299565b6100b66102a8565b6101186102b7565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6001546001600160a01b031681565b6101836102b7565b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e916020908290030190a150565b6001546001600160a01b031633146102265760405162461bcd60e51b81526004018080602001828103825260358152602001806103036035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146103005760405162461bcd60e51b815260040180806020018281038252602f815260200180610338602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158205cf8068ad3c7220237130cf92892bd36462302c847075f5d7a610fd48ca971da64736f6c63430005100032",
			"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": "0x105459c14c5b018c87533096d484852f93fbbb4e1050e35db845f20cd2f51235",
				"urls": [
					"bzz-raw://c03bd9b26f0f3f4dc0db15f510978014a26540b0d31e36b6beffd079c45adbaa",
					"dweb:/ipfs/QmYkcB9NBc5BPdBPACCS6zsJmrxrqZYQbNK46S6NdN78g5"
				]
			},
			"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": "0x105459c14c5b018c87533096d484852f93fbbb4e1050e35db845f20cd2f51235",
						"urls": [
							"bzz-raw://c03bd9b26f0f3f4dc0db15f510978014a26540b0d31e36b6beffd079c45adbaa",
							"dweb:/ipfs/QmYkcB9NBc5BPdBPACCS6zsJmrxrqZYQbNK46S6NdN78g5"
						]
					}
				},
				"version": 1
			}
		},
		"OneNetAggregatorIssuedSynths": {
			"bytecode": "608060405234801561001057600080fd5b506040516107c73803806107c78339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b0392909216919091179055506106b5806101126000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc14610218578063b633620c14610235578063ec5c889d14610252578063feaf968c1461025a576100ea565b80638da5cb5b1461018b5780639a6fc8f514610193578063b00a84c9146101fb576100ea565b806353a47bb7116100c857806353a47bb714610159578063614d08f814610161578063668a0f021461017b57806379ba509714610183576100ea565b806304f3bcec146100ef5780631627540c14610113578063313ce5671461013b575b600080fd5b6100f7610262565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561012957600080fd5b50356001600160a01b0316610271565b005b6101436102cd565b6040805160ff9092168252519081900360200190f35b6100f76102d2565b6101696102e1565b60408051918252519081900360200190f35b610169610305565b61013961030a565b6100f76103c6565b6101bc600480360360208110156101a957600080fd5b503569ffffffffffffffffffff166103d5565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6101396004803603602081101561021157600080fd5b5035610533565b6101696004803603602081101561022e57600080fd5b5035610576565b6101696004803603602081101561024b57600080fd5b503561058c565b6101696105a2565b6101bc6105a8565b6002546001600160a01b031681565b6102796105d1565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b7f4f6e654e657441676772656761746f7249737375656453796e7468730000000081565b600190565b6001546001600160a01b031633146103535760405162461bcd60e51b815260040180806020018281038252603581526020018061061d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b505160408051637b1001b760e01b8152631cd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d602081101561050c57600080fd5b505160035490915042901561052057506003545b6001989197509550859450879350915050565b61053b6105d1565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b6000610581826103d5565b509195945050505050565b6000610597826103d5565b509095945050505050565b60035481565b60008060008060006105c06105bb610305565b6103d5565b945094509450945094509091929394565b6000546001600160a01b0316331461061a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610652602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820b541113ed342caa9d5e805d68a3f8777f268574e4f2c4352bb2d10be58917d1864736f6c63430005100032",
			"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": 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": "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": "0xe5a1627124958cd9c6c660ae4ae9a06205a2802cbf33f744bc8f2b7be2b8719a",
				"urls": [
					"bzz-raw://95305d49dc17c8235d6d8437f7795ac134525679b5973d9c4027b2b251f4e595",
					"dweb:/ipfs/QmWcgaettTEvw2HjJHJPPwPSVFMmKWrchFTRcJ3pUp2C9H"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OneNetAggregatorIssuedSynths.sol": "OneNetAggregatorIssuedSynths"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OneNetAggregatorIssuedSynths.sol": {
						"keccak256": "0xe5a1627124958cd9c6c660ae4ae9a06205a2802cbf33f744bc8f2b7be2b8719a",
						"urls": [
							"bzz-raw://95305d49dc17c8235d6d8437f7795ac134525679b5973d9c4027b2b251f4e595",
							"dweb:/ipfs/QmWcgaettTEvw2HjJHJPPwPSVFMmKWrchFTRcJ3pUp2C9H"
						]
					}
				},
				"version": 1
			}
		},
		"OneNetAggregatorDebtRatio": {
			"bytecode": "608060405234801561001057600080fd5b50604051610a88380380610a888339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b039290921691909117905550610976806101126000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc14610218578063b633620c14610235578063ec5c889d14610252578063feaf968c1461025a576100ea565b80638da5cb5b1461018b5780639a6fc8f514610193578063b00a84c9146101fb576100ea565b806353a47bb7116100c857806353a47bb714610159578063614d08f814610161578063668a0f021461017b57806379ba509714610183576100ea565b806304f3bcec146100ef5780631627540c14610113578063313ce5671461013b575b600080fd5b6100f7610262565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561012957600080fd5b50356001600160a01b0316610271565b005b6101436102cd565b6040805160ff9092168252519081900360200190f35b6100f76102d2565b6101696102e1565b60408051918252519081900360200190f35b610169610305565b61013961030a565b6100f76103c6565b6101bc600480360360208110156101a957600080fd5b503569ffffffffffffffffffff166103d5565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6101396004803603602081101561021157600080fd5b5035610695565b6101696004803603602081101561022e57600080fd5b50356106d8565b6101696004803603602081101561024b57600080fd5b50356106ee565b610169610704565b6101bc61070a565b6002546001600160a01b031681565b610279610733565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b7f4f6e654e657441676772656761746f7244656274526174696f0000000000000081565b600190565b6001546001600160a01b031633146103535760405162461bcd60e51b81526004018080602001828103825260358152602001806108bd6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b505160408051637b1001b760e01b8152631cd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d602081101561050c57600080fd5b50516002546040805163dacb2d0160e01b81527153796e74686574697844656274536861726560701b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b606482015290519293506000926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561059e57600080fd5b505afa1580156105b2573d6000803e3d6000fd5b505050506040513d60208110156105c857600080fd5b5051604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561060c57600080fd5b505afa158015610620573d6000803e3d6000fd5b505050506040513d602081101561063657600080fd5b50519050600081156106605761065b8261064f8561077e565b9063ffffffff61079a16565b61066e565b6b033b2e3c9fd0803ce80000005b60035490915042901561068057506003545b60019a91995097508796508995509350505050565b61069d610733565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b60006106e3826103d5565b509195945050505050565b60006106f9826103d5565b509095945050505050565b60035481565b600080600080600061072261071d610305565b6103d5565b945094509450945094509091929394565b6000546001600160a01b0316331461077c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806108f2602f913960400191505060405180910390fd5b565b600061079482633b9aca0063ffffffff6107b616565b92915050565b60006107af8383670de0b6b3a764000061080f565b9392505050565b6000826107c557506000610794565b828202828482816107d257fe5b04146107af5760405162461bcd60e51b81526004018080602001828103825260218152602001806109216021913960400191505060405180910390fd5b6000806108358461082987600a870263ffffffff6107b616565b9063ffffffff61085216565b90506005600a82061061084657600a015b600a9004949350505050565b60008082116108a8576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816108b357fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820695cb601fc88836184cc7f14ae9e1dd9bd81cb4dbc03e83a291876f466a9942964736f6c63430005100032",
			"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": 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": "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": "0xc882e0da990929840493be2f36be2779ba30e2456de06c540d57c01286dac99e",
				"urls": [
					"bzz-raw://b8515dfaea30fe8537ff067f7da927e51cea25847b992a70891ffd3c83dc545a",
					"dweb:/ipfs/QmTxpBxzh5gPGVDfJ8dfQtxh2VxgrTW98nYWC1yKjvUghR"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OneNetAggregatorDebtRatio.sol": "OneNetAggregatorDebtRatio"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OneNetAggregatorDebtRatio.sol": {
						"keccak256": "0xc882e0da990929840493be2f36be2779ba30e2456de06c540d57c01286dac99e",
						"urls": [
							"bzz-raw://b8515dfaea30fe8537ff067f7da927e51cea25847b992a70891ffd3c83dc545a",
							"dweb:/ipfs/QmTxpBxzh5gPGVDfJ8dfQtxh2VxgrTW98nYWC1yKjvUghR"
						]
					}
				},
				"version": 1
			}
		},
		"FlexibleStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516127833803806127838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561271e806100656000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c2578063f7833c5d146109f9578063f9c39d2f14610a1c578063fdfc4c1314610ae1576101c3565b8063c89eb562146108b7578063d658d2e91461097c578063d71a9b0114610999576101c3565b8063ab15985d116100d3578063ab15985d146106e5578063b67fa7ed146107aa578063c13a2b0c1461081f578063c4f610ed14610894576101c3565b80638ca0adaf1461062a5780638f6b95a31461069f5780639ee5955a146106c2576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105345780635bda91e2146105665780636a59e495146105915780638408a5e5146105b5576101c3565b806335ab2708146104215780633bd6ad89146104445780633f28a6fc14610509576101c3565b80631625e3ef116101a25780631625e3ef1461037d57806318f662ed146103a05780631d5b277f146103c357806323257c2b146103ec576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b04565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610bf4565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610d60565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610369578181015183820152602001610351565b505050509050019250505060405180910390f35b6101f16004803603604081101561039357600080fd5b5080359060200135610e07565b6101f1600480360360408110156103b657600080fd5b5080359060200135610f7b565b6101f1600480360360608110156103d957600080fd5b50803590602081013590604001356110e4565b61040f6004803603604081101561040257600080fd5b50803590602001356111cd565b60408051918252519081900360200190f35b6101f16004803603604081101561043757600080fd5b50803590602001356111f4565b6101f16004803603606081101561045a57600080fd5b81359190810190604081016020820135600160201b81111561047b57600080fd5b82018360208201111561048d57600080fd5b803590602001918460208302840111600160201b831117156104ae57600080fd5b919390929091602081019035600160201b8111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460208302840111600160201b831117156104fe57600080fd5b50909250905061135d565b6101f16004803603606081101561051f57600080fd5b508035906020810135906040013515156114c8565b6101f16004803603606081101561054a57600080fd5b50803590602081013590604001356001600160a01b03166115b1565b6101f16004803603606081101561057c57600080fd5b5080359060208101359060400135151561169a565b61059961184c565b604080516001600160a01b039092168252519081900360200190f35b61032d600480360360408110156105cb57600080fd5b81359190810190604081016020820135600160201b8111156105ec57600080fd5b8201836020820111156105fe57600080fd5b803590602001918460208302840111600160201b8311171561061f57600080fd5b50909250905061185b565b61032d6004803603604081101561064057600080fd5b81359190810190604081016020820135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b5090925090506118f7565b6101f1600480360360408110156106b557600080fd5b50803590602001356119b3565b610599600480360360408110156106d857600080fd5b5080359060200135611b32565b6101f1600480360360608110156106fb57600080fd5b81359190810190604081016020820135600160201b81111561071c57600080fd5b82018360208201111561072e57600080fd5b803590602001918460208302840111600160201b8311171561074f57600080fd5b919390929091602081019035600160201b81111561076c57600080fd5b82018360208201111561077e57600080fd5b803590602001918460208302840111600160201b8311171561079f57600080fd5b509092509050611b62565b61032d600480360360408110156107c057600080fd5b81359190810190604081016020820135600160201b8111156107e157600080fd5b8201836020820111156107f357600080fd5b803590602001918460208302840111600160201b8311171561081457600080fd5b509092509050611cc4565b61032d6004803603604081101561083557600080fd5b81359190810190604081016020820135600160201b81111561085657600080fd5b82018360208201111561086857600080fd5b803590602001918460208302840111600160201b8311171561088957600080fd5b509092509050611d60565b61040f600480360360408110156108aa57600080fd5b5080359060200135611e0e565b6101f1600480360360608110156108cd57600080fd5b81359190810190604081016020820135600160201b8111156108ee57600080fd5b82018360208201111561090057600080fd5b803590602001918460208302840111600160201b8311171561092157600080fd5b919390929091602081019035600160201b81111561093e57600080fd5b82018360208201111561095057600080fd5b803590602001918460208302840111600160201b8311171561097157600080fd5b509092509050611e35565b61040f6004803603602081101561099257600080fd5b5035611f97565b6101f1600480360360608110156109af57600080fd5b5080359060208101359060400135611fa9565b6109e5600480360360408110156109d857600080fd5b5080359060200135612092565b604080519115158252519081900360200190f35b61040f60048036036040811015610a0f57600080fd5b50803590602001356120bc565b6101f160048036036060811015610a3257600080fd5b81359190810190604081016020820135600160201b811115610a5357600080fd5b820183602082011115610a6557600080fd5b803590602001918460208302840111600160201b83111715610a8657600080fd5b919390929091602081019035600160201b811115610aa357600080fd5b820183602082011115610ab557600080fd5b803590602001918460208302840111600160201b83111715610ad657600080fd5b5090925090506120e3565b6101f160048036036040811015610af757600080fd5b5080359060200135612247565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b505190506001600160a01b0381163314610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed8585856123b0565b5050505050565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610c5d57600080fd5b505afa158015610c71573d6000803e3d6000fd5b505050506040513d6020811015610c8757600080fd5b505190506001600160a01b0381163314610cd25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314610d14576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657610d4e88888884818110610d2f57fe5b90506020020135878785818110610d4257fe5b90506020020135612421565b600101610d17565b5050505050505050565b60608083839050604051908082528060200260200182016040528015610d90578160200160208202803883390190505b506000868152600160209081526040808320548352600390915281209192505b84811015610dfc57816000878784818110610dc757fe5b90506020020135815260200190815260200160002054838281518110610de957fe5b6020908102919091010152600101610db0565b509095945050505050565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610e7057600080fd5b505afa158015610e84573d6000803e3d6000fd5b505050506040513d6020811015610e9a57600080fd5b505190506001600160a01b0381163314610ee55760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526005825280832086845282529182902054825187815291820186905260ff168015158284015291517f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c9181900360600190a15050506000918252600160209081526040808420548452600582528084209284529190529020805460ff19169055565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b505190506001600160a01b03811633146110595760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526002825280832086845282529182902054825187815291820186905281830181905291517f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d46629181900360600190a1505050600091825260016020908152604080842054845260028252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d602081101561117757600080fd5b505190506001600160a01b03811633146111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612421565b60009182526001602090815260408084205484526002825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d602081101561128757600080fd5b505190506001600160a01b03811633146112d25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526006825280832086845282529182902054825187815291820186905281830181905291517f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd939181900360600190a1505050600091825260016020908152604080842054845260068252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d60208110156113f057600080fd5b505190506001600160a01b038116331461143b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b84831461147d576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d56576114c08888888481811061149857fe5b905060200201358787858181106114ab57fe5b905060200201356001600160a01b0316612492565b600101611480565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561153157600080fd5b505afa158015611545573d6000803e3d6000fd5b505050506040513d602081101561155b57600080fd5b505190506001600160a01b03811633146115a65760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561251b565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561161a57600080fd5b505afa15801561162e573d6000803e3d6000fd5b505050506040513d602081101561164457600080fd5b505190506001600160a01b038116331461168f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612492565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b505190506001600160a01b03811633146117785760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000858152600160205260409020546117d8576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206d69677261746520656d70747920636f6e7472616374000000604482015290519081900360640190fd5b600085815260016020526040808220548683529120558215611804576000858152600160205260408120555b60408051868152602081018690528415158183015290517fa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c9181900360600190a15050505050565b6000546001600160a01b031681565b6060808383905060405190808252806020026020018201604052801561188b578160200160208202803883390190505b506000868152600160209081526040808320548352600690915281209192505b84811015610dfc578160008787848181106118c257fe5b905060200201358152602001908152602001600020548382815181106118e457fe5b60209081029190910101526001016118ab565b60608083839050604051908082528060200260200182016040528015611927578160200160208202803883390190505b506000868152600160209081526040808320548352600490915281209192505b84811015610dfc5781600087878481811061195e57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b031683828151811061199357fe5b6001600160a01b0390921660209283029190910190910152600101611947565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b505190506001600160a01b0381163314611a915760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000848152600160209081526040808320548352600482528083208684528252918290205482518781529182018690526001600160a01b031681830181905291517fec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf669181900360600190a1505050600091825260016020908152604080842054845260048252808420928452919052902080546001600160a01b0319169055565b6000918252600160209081526040808420548452600482528084209284529190529020546001600160a01b031690565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611bcb57600080fd5b505afa158015611bdf573d6000803e3d6000fd5b505050506040513d6020811015611bf557600080fd5b505190506001600160a01b0381163314611c405760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611c82576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611cbc88888884818110611c9d57fe5b90506020020135878785818110611cb057fe5b9050602002013561259a565b600101611c85565b60608083839050604051908082528060200260200182016040528015611cf4578160200160208202803883390190505b506000868152600160209081526040808320548352600290915281209192505b84811015610dfc57816000878784818110611d2b57fe5b90506020020135815260200190815260200160002054838281518110611d4d57fe5b6020908102919091010152600101611d14565b60608083839050604051908082528060200260200182016040528015611d90578160200160208202803883390190505b506000868152600160209081526040808320548352600590915281209192505b84811015610dfc57816000878784818110611dc757fe5b90506020020135815260200190815260200160002060009054906101000a900460ff16838281518110611df657fe5b91151560209283029190910190910152600101611db0565b60009182526001602090815260408084205484526003825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d6020811015611ec857600080fd5b505190506001600160a01b0381163314611f135760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611f55576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611f8f88888884818110611f7057fe5b90506020020135878785818110611f8357fe5b905060200201356123b0565b600101611f58565b60016020526000908152604090205481565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505190506001600160a01b03811633146120875760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561259a565b60009182526001602090815260408084205484526005825280842092845291905290205460ff1690565b60009182526001602090815260408084205484526006825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561214c57600080fd5b505afa158015612160573d6000803e3d6000fd5b505050506040513d602081101561217657600080fd5b505190506001600160a01b03811633146121c15760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314612203576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d565761223f8888888481811061221e57fe5b9050602002013587878581811061223157fe5b90506020020135151561251b565b600101612206565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d60208110156122da57600080fd5b505190506001600160a01b03811633146123255760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526003825280832086845282529182902054825187815291820186905281830181905291517f78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae9181900360600190a1505050600091825260016020908152604080842054845260038252808420928452919052812055565b80600660006123be8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a952809181900360600190a1505050565b806002600061242f8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c99181900360600190a1505050565b80600460006124a08661260b565b815260208082019290925260409081016000908120868252835281902080546001600160a01b0319166001600160a01b0394851617905580518681529182018590529183168183015290517f524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad639365916060908290030190a1505050565b80600560006125298661260b565b8152602080820192909252604090810160009081208682528352819020805460ff19169315159390931790925581518581529081018490528215158183015290517f9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b916060908290030190a1505050565b80600360006125a88661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c9181900360600190a1505050565b6000818152600160205260408120548061266d5750604080513360601b60208083019190915260348201859052436054808401919091528351808403909101815260749092018352815191810191909120600085815260019092529190208190555b9291505056fe43616e6e6f742066696e6420636f6e747261637420696e2041646472657373205265736f6c76657243616e206f6e6c7920626520696e766f6b65642062792074686520636f6e6669677572656420636f6e7472616374496e707574206c656e67746873206d757374206d617463680000000000000000a265627a7a72315820b45445e8e5abf0f383dd085e3487a6946dd23c51e71ecdf129f79bf32350761664736f6c63430005100032",
			"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": "0x8e43f4b03b0b32a387c4abd32238bafa8d71eef8378679e5e9b09d0d4d31e8f8",
				"urls": [
					"bzz-raw://1723a6e54f1d25867d72d13382bbce3db29de9631529d44171830ab0652b24dd",
					"dweb:/ipfs/QmdH6scP5nxHqKwsjmW66Ub6QNFnvfFDCDjGTfGaz9yv3C"
				]
			},
			"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": "0x8e43f4b03b0b32a387c4abd32238bafa8d71eef8378679e5e9b09d0d4d31e8f8",
						"urls": [
							"bzz-raw://1723a6e54f1d25867d72d13382bbce3db29de9631529d44171830ab0652b24dd",
							"dweb:/ipfs/QmdH6scP5nxHqKwsjmW66Ub6QNFnvfFDCDjGTfGaz9yv3C"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettings": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200570838038062005708833981810160405260408110156200003757600080fd5b5080516020909101518080836001600160a01b0381166200009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15080600260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200016657600080fd5b505af41580156200017b573d6000803e3d6000fd5b505050506040513d60208110156200019257600080fd5b50516d53797374656d53657474696e677360901b14620001f9576040805162461bcd60e51b815260206004820152601d60248201527f7265616420616e64207772697465206b657973206e6f7420657175616c000000604482015290519081900360640190fd5b50506154fd806200020b6000396000f3fe608060405234801561001057600080fd5b50600436106104e35760003560e01c80636a2b91511161028e578063a777155611610167578063d954bc02116100d9578063e84e2c3c11610092578063e84e2c3c14610d94578063e942204614610d9c578063ee93119814610db9578063f081da8514610dd6578063f216310714610df9578063f867e76714610e16576104e3565b8063d954bc0214610cf8578063dad0ab0f14610d24578063dc8f4a1b14610d2c578063e0e6393d14610d52578063e3bb67d414610d5a578063e7894da114610d77576104e3565b8063c193f0d81161012b578063c193f0d814610c56578063c52f35fe14610c5e578063c7b481bd14610c8a578063c855a8e114610cb6578063cc754a4c14610cbe578063d8ee820814610cdb576104e3565b8063a777155614610bf5578063af5355d814610c12578063b16e450f14610c1a578063b410a03414610c46578063bcf7eeac14610c4e576104e3565b80638925711711610200578063946ce8cd116101c4578063946ce8cd14610b62578063967706e914610b7f57806397a4aca014610b9c5780639d4e186d14610bb9578063a0cf745114610be5578063a4bca13114610bed576104e3565b80638925711714610acd5780638979ee0f14610ad5578063899ffef414610afa5780638da5cb5b14610b52578063922fef0814610b5a576104e3565b806379cb657a1161025257806379cb657a14610a315780637bf8230514610a4e5780637d708a4614610a745780637f3b293c14610a915780638074b37214610a995780638326470c14610aa1576104e3565b80636a2b9151146109d65780637066871f146109de5780637418536014610a0457806375aca32114610a0c57806379ba509714610a29576104e3565b806328a1170d116103c05780634c36b837116103325780635d14928f116102f65780635d14928f146109345780635d467d6a146109515780635e0117d614610977578063614d08f8146109945780636190dd7a1461099c578063635a3872146109b9576104e3565b80634c36b837146108e2578063510242bc146108ea578063523fd889146108f257806353a47bb71461090f578063556eaeb114610917576104e3565b8063345a394311610384578063345a39431461084157806334eac4971461085e578063372a395a14610881578063393d334f146108895780634328a925146108a65780634641ab66146108c3576104e3565b806328a1170d1461071857806329a022ba146107da5780632af64bd3146108005780632cce0e541461081c57806331e4e03014610839576104e3565b80631710940c1161045957806322425fa41161041d57806322425fa4146106a957806323b55008146106b157806323f5589a146106ce578063242df9e1146106d657806325539dd2146106de5780632806a743146106fb576104e3565b80631710940c146106395780631775765f146106415780631e6e219014610649578063214bf9e51461066657806321d9eba61461068c576104e3565b806309e514a4116104ab57806309e514a4146105975780630ee4951b146105bd5780630f27b788146105c557806310557020146105cd57806313d825b2146105f05780631627540c14610613576104e3565b8063038e47fe146104e85780630411d53c1461051a57806304c49f2c1461053957806304f3bcec14610556578063054be0b71461057a575b600080fd5b610508600480360360208110156104fe57600080fd5b503560ff16610e1e565b60408051918252519081900360200190f35b6105376004803603602081101561053057600080fd5b5035610e31565b005b6105376004803603602081101561054f57600080fd5b5035610f00565b61055e610fdb565b604080516001600160a01b039092168252519081900360200190f35b6105376004803603602081101561059057600080fd5b5035610fea565b610508600480360360208110156105ad57600080fd5b50356001600160a01b03166110c1565b6105086110cc565b6105086110dc565b610537600480360360408110156105e357600080fd5b50803590602001356110e6565b6105376004803603604081101561060657600080fd5b50803590602001356111dc565b6105376004803603602081101561062957600080fd5b50356001600160a01b03166112ca565b610508611326565b610508611330565b6105376004803603602081101561065f57600080fd5b503561133a565b6105086004803603602081101561067c57600080fd5b50356001600160a01b0316611421565b610537600480360360208110156106a257600080fd5b503561142c565b610508611558565b610537600480360360208110156106c757600080fd5b5035611562565b610508611642565b61050861164c565b610508600480360360208110156106f457600080fd5b5035611656565b6105376004803603602081101561071157600080fd5b5035611661565b6105376004803603604081101561072e57600080fd5b81019060208101813564010000000081111561074957600080fd5b82018360208201111561075b57600080fd5b8035906020019184602083028401116401000000008311171561077d57600080fd5b91939092909160208101903564010000000081111561079b57600080fd5b8201836020820111156107ad57600080fd5b803590602001918460208302840111640100000000831117156107cf57600080fd5b50909250905061173d565b610508600480360360208110156107f057600080fd5b50356001600160a01b03166118cb565b6108086118d6565b604080519115158252519081900360200190f35b6105376004803603602081101561083257600080fd5b50356119e0565b610508611ad2565b6108086004803603602081101561085757600080fd5b5035611adc565b6105376004803603604081101561087457600080fd5b5080359060200135611ae7565b610508611bdd565b6105376004803603602081101561089f57600080fd5b5035611be7565b610537600480360360208110156108bc57600080fd5b5035611cc6565b610537600480360360208110156108d957600080fd5b50351515611dfa565b61055e611edc565b610508611ee6565b6105376004803603602081101561090857600080fd5b5035611ef6565b61055e611fca565b6105376004803603602081101561092d57600080fd5b5035611fd9565b6105376004803603602081101561094a57600080fd5b50356120b8565b6105086004803603602081101561096757600080fd5b50356001600160a01b0316612199565b6105376004803603602081101561098d57600080fd5b50356121a4565b61050861227e565b610537600480360360208110156109b257600080fd5b50356122f5565b610537600480360360208110156109cf57600080fd5b50356123d4565b6105086124af565b610508600480360360208110156109f457600080fd5b50356001600160a01b03166124b9565b6105376124c4565b61053760048036036020811015610a2257600080fd5b503561268c565b61053761276d565b61053760048036036020811015610a4757600080fd5b5035612829565b61053760048036036020811015610a6457600080fd5b50356001600160a01b0316612902565b61053760048036036020811015610a8a57600080fd5b50356129eb565b610508612ac5565b610508612ad8565b61053760048036036040811015610ab757600080fd5b506001600160a01b038135169060200135612ae2565b610508612bc3565b61053760048036036040811015610aeb57600080fd5b50803590602001351515612bcd565b610b02612cc5565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b3e578181015183820152602001610b26565b505050509050019250505060405180910390f35b61055e612d16565b610508612d25565b61053760048036036020811015610b7857600080fd5b5035612d2f565b61050860048036036020811015610b9557600080fd5b5035612e3a565b61050860048036036020811015610bb257600080fd5b5035612e45565b61053760048036036040811015610bcf57600080fd5b506001600160a01b038135169060200135612e50565b610508612f7a565b610508612f84565b61050860048036036020811015610c0b57600080fd5b5035612f8e565b610508612f99565b61053760048036036040811015610c3057600080fd5b506001600160a01b038135169060200135612fa3565b610508613095565b61050861309f565b6108086130a9565b61053760048036036040811015610c7457600080fd5b50803590602001356001600160a01b03166130b3565b61053760048036036040811015610ca057600080fd5b506001600160a01b0381351690602001356131b1565b610508613293565b61053760048036036020811015610cd457600080fd5b503561329d565b61053760048036036020811015610cf157600080fd5b5035613379565b61053760048036036040811015610d0e57600080fd5b506001600160a01b038135169060200135613456565b610508613580565b61053760048036036040811015610d4257600080fd5b5060ff8135169060200135613593565b61050861368f565b61053760048036036020811015610d7057600080fd5b5035613699565b61053760048036036020811015610d8d57600080fd5b5035613777565b610508613858565b61053760048036036020811015610db257600080fd5b5035613862565b61050860048036036020811015610dcf57600080fd5b503561393c565b61053760048036036040811015610dec57600080fd5b5080359060200135613947565b61055e60048036036020811015610e0f57600080fd5b5035613a38565b610508613a43565b6000610e2982613a56565b90505b919050565b610e39613af3565b610e41613b3e565b6001600160a01b0316631d5b277f6000805160206154a983398151915269199b1859d4995dd85c9960b21b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610eb157600080fd5b505af1158015610ec5573d6000803e3d6000fd5b50506040805184815290517fa31178ade19fb6a78fe78b68ebf820b88707e3bdbedbf77db4e80977800f39449350908190036020019150a150565b610f08613af3565b610f10613b3e565b604080516363daca0960e01b81526001600160a01b03929092166004830152703332b2a832b934b7b2223ab930ba34b7b760791b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916363daca09916064808301926000929190829003018186803b158015610f8c57600080fd5b505af4158015610fa0573d6000803e3d6000fd5b50506040805184815290517f791bd58dd9719b5eb5ccdd6ec4d5c459b0ab8efcf59b723cf477693c0889eacd9350908190036020019150a150565b6002546001600160a01b031681565b610ff2613af3565b610ffa613b3e565b60408051636d4851f160e01b81526001600160a01b039290921660048301526c69737375616e6365526174696f60981b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636d4851f1916064808301926000929190829003018186803b15801561107257600080fd5b505af4158015611086573d6000803e3d6000fd5b50506040805184815290517f63b22e09cc3a33e847c063e35f887bd4ea96bc8c0f93f1f8c311e4fa6d8854529350908190036020019150a150565b6000610e2982613b5b565b60006110d6613c14565b90505b90565b60006110d6613c9d565b6110ee613af3565b6110f6613b3e565b60408051635d3045ab60e01b81526001600160a01b039290921660048301527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635d3045ab916084808301926000929190829003018186803b15801561118557600080fd5b505af4158015611199573d6000803e3d6000fd5b5050604080518581526020810185905281517f98698e41d9ebb66410ec490ae1224f1b8d1766696d7217fa96e067de3ef5332a9450908190039091019150a15050565b6111e4613af3565b6111ec613b3e565b60408051638134ddb760e01b81526001600160a01b039290921660048301527461746f6d696345786368616e67654665655261746560581b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91638134ddb7916084808301926000929190829003018186803b15801561127357600080fd5b505af4158015611287573d6000803e3d6000fd5b5050604080518581526020810185905281517f84023d924a8ccb4a028f052967ed7e1e642279c24150e018962f0779021fce4c9450908190039091019150a15050565b6112d2613af3565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006110d6613d1a565b60006110d6613d96565b611342613af3565b61134a613b3e565b60408051630e7bf1c560e01b81526001600160a01b039290921660048301527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91630e7bf1c5916064808301926000929190829003018186803b1580156113d257600080fd5b505af41580156113e6573d6000803e3d6000fd5b50506040805184815290517f6e65c7d32a9129ebc4e4e6d755e2a9668753c046f4b128ac8aeb4f3e5446a1e59350908190036020019150a150565b6000610e2982613e0c565b611434613af3565b8061147e576040805162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b604482015290519081900360640190fd5b611486613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191527f65786368616e676544796e616d69634665655468726573686f6c640000000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561150957600080fd5b505af115801561151d573d6000803e3d6000fd5b50506040805184815290517f0a1c77eb56927959639f898ae5258d25789fe6c36d7958d2c3daf3f1471d42d99350908190036020019150a150565b60006110d6613ec5565b61156a613af3565b611572613b3e565b604080516367f9fdd960e11b81526001600160a01b039290921660048301527573656c664c69717569646174696f6e50656e616c747960501b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163cff3fbb2916064808301926000929190829003018186803b1580156115f357600080fd5b505af4158015611607573d6000803e3d6000fd5b50506040805184815290517fcc1eff40ab461aae35275af10e50d93e6e37087e019f27e936816b62540168fe9350908190036020019150a150565b60006110d6613f3c565b60006110d6613fb4565b6000610e298261402a565b611669613af3565b611671613b3e565b60408051631faca50560e21b81526001600160a01b03929092166004830152716c69717569646174696f6e50656e616c747960701b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637eb29414916064808301926000929190829003018186803b1580156116ee57600080fd5b505af4158015611702573d6000803e3d6000fd5b50506040805184815290517fbfb22c07314f4682bba789860ceb851eb8cea2d867920332b2a42cf56be5b2e99350908190036020019150a150565b611745613af3565b61174d613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__631a5bb1f790916e65786368616e67654665655261746560881b878787876040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b0316815260200186815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509850505050505050505060006040518083038186803b15801561183957600080fd5b505af415801561184d573d6000803e3d6000fd5b506000925050505b838110156118c4577fbbdab54f0da6d720d21f53e4d6f5bbe83e5a2f74c1354175140ea74f8e90c77e85858381811061188a57fe5b9050602002013584848481811061189d57fe5b604080519485526020918202939093013590840152508051918290030190a1600101611855565b5050505050565b6000610e29826140d3565b600060606118e2612cc5565b905060005b81518110156119d75760008282815181106118fe57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561196657600080fd5b505afa15801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b50516001600160a01b03161415806119bd57506000818152600360205260409020546001600160a01b0316155b156119ce57600093505050506110d9565b506001016118e7565b50600191505090565b6119e8613af3565b60006119f2613b3e565b6040805162856d3960e51b81526001600160a01b039290921660048301526e1d185c99d95d151a1c995cda1bdb19608a1b6024830152604482018490525173__$6a024fd1d0d065824004f6878746fc5d0d$__916310ada720916064808301926020929190829003018186803b158015611a6b57600080fd5b505af4158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b50516040805182815290519192507fb2b3a840c101d8e7f0cf8d80d3868976968714347038fe89b36c5031f94dab12919081900360200190a15050565b60006110d661418e565b6000610e2982614203565b611aef613af3565b611af7613b3e565b60408051636c5a980960e01b81526001600160a01b039290921660048301527f63726f7373436861696e53796e74685472616e73666572456e61626c65640000602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636c5a9809916084808301926000929190829003018186803b158015611b8657600080fd5b505af4158015611b9a573d6000803e3d6000fd5b5050604080518581526020810185905281517f2f10f42e3d725e85dada13510e81fc571c49386ab4cd9152b12e2db2b0c04b729450908190039091019150a15050565b60006110d66142b4565b611bef613af3565b611bf7613b3e565b604080516339aafdf360e21b81526001600160a01b039290921660048301527465786368616e67654d617844796e616d696346656560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163e6abf7cc916064808301926000929190829003018186803b158015611c7757600080fd5b505af4158015611c8b573d6000803e3d6000fd5b50506040805184815290517fd7764866d2b524c8fa50c82668b78d32bf7b46a87e37b891de9dd40853de464f9350908190036020019150a150565b611cce613af3565b80611d20576040805162461bcd60e51b815260206004820152601860248201527f5765696768742064656361792063616e6e6f7420626520300000000000000000604482015290519081900360640190fd5b611d28613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191527f65786368616e676544796e616d69634665655765696768744465636179000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b50506040805184815290517fd80e77b0d087a975f2a783eb806eb9a1e93dab1bf148651d3e70c6e85d740eba9350908190036020019150a150565b611e02613af3565b611e0a613b3e565b60408051633e0ecceb60e11b81526001600160a01b03929092166004830152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b602483015282151560448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637c1d99d6916064808301926000929190829003018186803b158015611e8b57600080fd5b505af4158015611e9f573d6000803e3d6000fd5b505060408051841515815290517fe11c1893b6f97decd3ac13637137734a4b75d159e899e5a8abb48470ab0bc4fd9350908190036020019150a150565b60006110d6614337565b6000611ef06143b3565b51905090565b611efe613af3565b611f06613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191526e1b1a5c5d5a59185d1954995dd85c99608a1b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611f7b57600080fd5b505af1158015611f8f573d6000803e3d6000fd5b50506040805184815290517f6586b69a20f0202ee8802e307c1ca76ce96354ff6b1123d5d7fd3e9b0057e0359350908190036020019150a150565b6001546001600160a01b031681565b611fe1613af3565b611fe9613b3e565b60408051636a5b304360e01b81526001600160a01b0392909216600483015274736e784c69717569646174696f6e50656e616c747960581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636a5b3043916064808301926000929190829003018186803b15801561206957600080fd5b505af415801561207d573d6000803e3d6000fd5b50506040805184815290517fe7a7d374b4557aa224d3675ac9b1abd0ac00b616e7b669db75d30d8582935bb39350908190036020019150a150565b6120c0613af3565b6120c8613b3e565b6040805163064c16cf60e21b81526001600160a01b039290921660048301527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916319305b3c916064808301926000929190829003018186803b15801561214a57600080fd5b505af415801561215e573d6000803e3d6000fd5b50506040805184815290517ff96e059cb3386bb65fd1d80017c7ce524f813b012d7dc97a1252f9cd4f4c99f39350908190036020019150a150565b6000610e298261469d565b6121ac613af3565b6121b4613b3e565b60408051632cfaf72960e21b81526001600160a01b039290921660048301526f6c69717569646174696f6e44656c617960801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163b3ebdca4916064808301926000929190829003018186803b15801561222f57600080fd5b505af4158015612243573d6000803e3d6000fd5b50506040805184815290517f9917e32433edcb65f8982c1b2c26c3469468308456f93cf34b98c1b0459c53989350908190036020019150a150565b600073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c457600080fd5b505af41580156122d8573d6000803e3d6000fd5b505050506040513d60208110156122ee57600080fd5b5051905090565b6122fd613af3565b612305613b3e565b6040805163d4aebcef60e01b81526001600160a01b039290921660048301527464656274536e617073686f745374616c6554696d6560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d4aebcef916064808301926000929190829003018186803b15801561238557600080fd5b505af4158015612399573d6000803e3d6000fd5b50506040805184815290517f9795be9f1478ed09e9e47e67318b8aa7a0c0213170403191099bf7dd435fb4d79350908190036020019150a150565b6123dc613af3565b6123e4613b3e565b604080516341a7936f60e11b81526001600160a01b039290921660048301527077616974696e67506572696f645365637360781b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163834f26de916064808301926000929190829003018186803b15801561246057600080fd5b505af4158015612474573d6000803e3d6000fd5b50506040805184815290517fc32c92cac11e29883e0fb2d9e38230cc510e3bda48abc270b780de60bb8465f89350908190036020019150a150565b60006110d6614755565b6000610e29826147cb565b60606124ce612cc5565b905060005b81518110156126885760008282815181106124ea57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b838110156125a0578181015183820152602001612588565b50505050905090810190601f1680156125cd5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156125eb57600080fd5b505afa1580156125ff573d6000803e3d6000fd5b505050506040513d602081101561261557600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016124d3565b5050565b612694613af3565b61269c613b3e565b6040805163fe250a5560e01b81526001600160a01b03929092166004830152766574686572577261707065724d696e744665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fe250a55916064808301926000929190829003018186803b15801561271e57600080fd5b505af4158015612732573d6000803e3d6000fd5b50506040805184815290517f19ef86e0422ac5c02afdc7b9f91f468ccc5e9b785bf7c158e01357e8503a819b9350908190036020019150a150565b6001546001600160a01b031633146127b65760405162461bcd60e51b81526004018080602001828103825260358152602001806154456035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b612831613af3565b612839613b3e565b6040805163fd194a3560e01b81526001600160a01b039290921660048301526e1c985d1954dd185b1954195c9a5bd9608a1b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fd194a35916064808301926000929190829003018186803b1580156128b357600080fd5b505af41580156128c7573d6000803e3d6000fd5b50506040805184815290517f16529d8c407b08938da67de7fa4319199baffce4f5d1971f812cc770b0237e669350908190036020019150a150565b61290a613af3565b612912613b3e565b604080516330d6e65760e21b81526001600160a01b0392831660048201527561676772656761746f725761726e696e67466c61677360501b602482015291831660448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163c35b995c916064808301926000929190829003018186803b15801561299357600080fd5b505af41580156129a7573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f0f4cbdee769ea02d5757b91905563555cc648fe42fc3ef201e28d97d2bbde9659350908190036020019150a150565b6129f3613af3565b6129fb613b3e565b6040805163067bb56d60e31b81526001600160a01b039290921660048301526f61746f6d69635477617057696e646f7760801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916333ddab68916064808301926000929190829003018186803b158015612a7657600080fd5b505af4158015612a8a573d6000803e3d6000fd5b50506040805184815290517f61ee2076e20b46130ce31de66f08321493e96f79de0837fb0296b7feca92285b9350908190036020019150a150565b6000612acf6143b3565b60400151905090565b60006110d6614886565b612aea613af3565b612af2613b3e565b60408051631b5238f760e31b81526001600160a01b0392831660048201526e636f6c6c617073654665655261746560881b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163da91c7b8916084808301926000929190829003018186803b158015612b7357600080fd5b505af4158015612b87573d6000803e3d6000fd5b50506040805184815290517f7e9498fa8cb2442ec5a6f05b47f4adaafaf286d03a3fa580cc0f3592b60b32359350908190036020019150a15050565b60006110d66148f6565b612bd5613af3565b612bdd613b3e565b60408051637c14e56b60e01b81526001600160a01b039290921660048301527f70757265436861696e6c696e6b466f7241746f6d696373456e61626c6564000060248301526044820184905282151560648301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637c14e56b916084808301926000929190829003018186803b158015612c6d57600080fd5b505af4158015612c81573d6000803e3d6000fd5b505060408051858152841515602082015281517fc39c526ec779c4ad9e0426c2a964a82134f99c4490e764153e19574c58b2ab539450908190039091019150a15050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110612d0757fe5b60200260200101818152505090565b6000546001600160a01b031681565b60006110d661496d565b612d37613af3565b612d3f613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6311d78c0c90916f6c69717569646174696f6e526174696f60801b84612d816149ea565b612d89614a65565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b031681526020018581526020018481526020018381526020018281526020019550505050505060006040518083038186803b158015612deb57600080fd5b505af4158015612dff573d6000803e3d6000fd5b50506040805184815290517f5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a9350908190036020019150a150565b6000610e2982614ad8565b6000610e2982614b7b565b612e58613af3565b612e60613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63c404a0de909171777261707065724275726e4665655261746560701b8585612ea6886140d3565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b158015612f1a57600080fd5b505af4158015612f2e573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517f65647551bef307c3b3c3cc08ff4dd60cf02eb1e9e9d20604c5603b90a453e4979450908190039091019150a15050565b60006110d6614c27565b60006110d6614c9d565b6000610e2982614d1a565b60006110d6614dcb565b612fab613af3565b612fb3613b3e565b60408051631f86e9a960e21b81526001600160a01b0392831660048201526f777261707065724d6178546f6b656e7360801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637e1ba6a4916084808301926000929190829003018186803b15801561303557600080fd5b505af4158015613049573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517fc466f93337e5645290e02cdbed66a95340e81d809b710d8f6de2280de3e27b2f9450908190039091019150a15050565b60006110d6614a65565b60006110d6614e46565b60006110d6614ebe565b6130bb613af3565b6130c3613b3e565b60408051635f7ad87160e01b81526001600160a01b0392831660048201527f61746f6d69634571756976616c656e74466f7244657850726963696e6700000060248201526044810185905291831660648301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635f7ad871916084808301926000929190829003018186803b15801561315257600080fd5b505af4158015613166573d6000803e3d6000fd5b5050604080518581526001600160a01b038516602082015281517fc7cff0a6f47777500050f9a29aac5206e15b25b782d1834a176f3b3b134d4f3a9450908190039091019150a15050565b6131b9613af3565b6131c1613b3e565b60408051637dfecb2360e11b81526001600160a01b0392831660048201526f696e746572616374696f6e44656c617960801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fbfd9646916084808301926000929190829003018186803b15801561324357600080fd5b505af4158015613257573d6000803e3d6000fd5b50506040805184815290517f4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c23619350908190036020019150a15050565b60006110d6614f39565b6132a5613af3565b6132ad613b3e565b60408051630a6c461160e41b81526001600160a01b03929092166004830152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163a6c46110916064808301926000929190829003018186803b15801561332a57600080fd5b505af415801561333e573d6000803e3d6000fd5b50506040805184815290517f8086de8bfec0a6cd9a9213caef7ee137a59e4d8da145de163dc3f244dacddc689350908190036020019150a150565b613381613af3565b613389613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191527765786368616e676544796e616d6963466565526f756e647360401b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561340757600080fd5b505af115801561341b573d6000803e3d6000fd5b50506040805184815290517f098d0190950f074545dd4e10dda16c804bd054facc9ed1ec4181e076ab09bd479350908190036020019150a150565b61345e613af3565b613466613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6353c0bf1c909171777261707065724d696e744665655261746560701b85856134ac886147cb565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b15801561352057600080fd5b505af4158015613534573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517ffe7e17467e216f68f8d4a3aea0ab082631afc874fb216e93c38e52a2ddb7ec659450908190039091019150a15050565b600061358a6143b3565b60200151905090565b61359b613af3565b6135a3613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63f02d9a5b90916135d185614fb8565b846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001838152602001828152602001935050505060006040518083038186803b15801561362657600080fd5b505af415801561363a573d6000803e3d6000fd5b505050507fbf62a396f632016f0e0cffedb18ee9be41a161c79cee3b64736b0c97a924554a82826040518083600581111561367157fe5b60ff1681526020018281526020019250505060405180910390a15050565b60006110d6615161565b6136a1613af3565b6136a9613b3e565b6001600160a01b0316631d5b277f6000805160206154a9833981519152783634b8bab4b230ba34b7b722b9b1b937bba23ab930ba34b7b760391b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561372857600080fd5b505af115801561373c573d6000803e3d6000fd5b50506040805184815290517f9f268a84b9cb3eb37f078345457b36a34236602cd78eac0d9166e9e62579fef19350908190036020019150a150565b61377f613af3565b613787613b3e565b6040805163496d5d7960e11b81526001600160a01b03929092166004830152766574686572577261707065724275726e4665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916392dabaf2916064808301926000929190829003018186803b15801561380957600080fd5b505af415801561381d573d6000803e3d6000fd5b50506040805184815290517f1c97c2e8b44aa487062d3e92ce52ac814b35191f4799fd2d5a3f36c67f1d9d4a9350908190036020019150a150565b60006110d66149ea565b61386a613af3565b613872613b3e565b6040805163d9158b0360e01b81526001600160a01b039290921660048301526f6d696e696d756d5374616b6554696d6560801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d9158b03916064808301926000929190829003018186803b1580156138ed57600080fd5b505af4158015613901573d6000803e3d6000fd5b50506040805184815290517f2b0fa66d155c9598699cb6569577f27b95729bbf580268eed39db6bc4e8144779350908190036020019150a150565b6000610e29826151d6565b61394f613af3565b613957613b3e565b6040805163446ca4fd60e01b81526001600160a01b0392909216600483015277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163446ca4fd916084808301926000929190829003018186803b1580156139e157600080fd5b505af41580156139f5573d6000803e3d6000fd5b5050604080518581526020810185905281517f460476cc6f40e86f19053ba74c9baf4c2cef96452bb2722a454d66db953a7b3d9450908190039091019150a15050565b6000610e2982615287565b6000613a4d6143b3565b60600151905090565b6000613a60613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152613a8685614fb8565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b505afa158015613ad5573d6000803e3d6000fd5b505050506040513d6020811015613aeb57600080fd5b505192915050565b6000546001600160a01b03163314613b3c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061547a602f913960400191505060405180910390fd5b565b60006110d66e466c657869626c6553746f7261676560881b615338565b6000613b65613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f696e746572616374696f6e44656c617960801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000613c1e613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b505afa1580156122d8573d6000803e3d6000fd5b6000613ca7613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152766574686572577261707065724d696e744665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613d24613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613da0613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613e16613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f777261707065724d6178546f6b656e7360801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000613ecf613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152703332b2a832b934b7b2223ab930ba34b7b760791b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613f46613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613fbe613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614034613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527461746f6d696345786368616e67654665655261746560581b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b60006140dd613b3e565b6001600160a01b031663c4f610ed6000805160206154a983398151915271777261707065724d696e744665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614198613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b600061420d613b3e565b6001600160a01b031663d994502d6000805160206154a98339815191527f70757265436861696e6c696e6b466f7241746f6d696373456e61626c65640000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b60006142be613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614341613b3e565b6001600160a01b0316639ee5955a6000805160206154a98339815191527561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6143bb61541c565b60408051600480825260a08201909252606091602082016080803883390190505090507f65786368616e676544796e616d69634665655468726573686f6c6400000000008160008151811061440c57fe5b6020026020010181815250507f65786368616e676544796e616d696346656557656967687444656361790000008160018151811061444657fe5b6020026020010181815250507765786368616e676544796e616d6963466565526f756e647360401b8160028151811061447b57fe5b6020026020010181815250507465786368616e67654d617844796e616d696346656560581b816003815181106144ad57fe5b60200260200101818152505060606144c3613b3e565b6001600160a01b031663b67fa7ed6000805160206154a9833981519152846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561453657818101518382015260200161451e565b50505050905001935050505060006040518083038186803b15801561455a57600080fd5b505afa15801561456e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561459757600080fd5b81019080805160405193929190846401000000008211156145b757600080fd5b9083019060208201858111156145cc57600080fd5b82518660208202830111640100000000821117156145e957600080fd5b82525081516020918201928201910280838360005b838110156146165781810151838201526020016145fe565b50505050905001604052505050905060405180608001604052808260008151811061463d57fe5b602002602001015181526020018260018151811061465757fe5b602002602001015181526020018260028151811061467157fe5b602002602001015181526020018260038151811061468b57fe5b60200260200101518152509250505090565b60006146a7613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e636f6c6c617073654665655261746560881b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b600061475f613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f61746f6d69635477617057696e646f7760801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b60006147d5613b3e565b6001600160a01b031663c4f610ed6000805160206154a983398151915271777261707065724275726e4665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614890613b3e565b6001600160a01b03166323257c2b6000805160206154a983398151915269199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614900613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614977613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152766574686572577261707065724275726e4665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b60006149f4613b3e565b6001600160a01b03166323257c2b6000805160206154a983398151915274736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614a6f613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614ae2613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614b85613b3e565b6001600160a01b03166323257c2b6000805160206154a983398151915277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614c31613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614ca7613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614d24613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614dd5613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614e50613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614ec8613b3e565b6001600160a01b031663d994502d6000805160206154a9833981519152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614f43613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152783634b8bab4b230ba34b7b722b9b1b937bba23ab930ba34b7b760391b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b600080826005811115614fc757fe5b1415614ff457507f63726f7373446f6d61696e4465706f7369744761734c696d6974000000000000610e2c565b600182600581111561500257fe5b141561502f57507f63726f7373446f6d61696e457363726f774761734c696d697400000000000000610e2c565b600282600581111561503d57fe5b141561506a57507f63726f7373446f6d61696e5265776172644761734c696d697400000000000000610e2c565b600382600581111561507857fe5b14156150a557507f63726f7373446f6d61696e5769746864726177616c4761734c696d6974000000610e2c565b60058260058111156150b357fe5b14156150e057507f63726f7373446f6d61696e52656c61794761734c696d69740000000000000000610e2c565b60048260058111156150ee57fe5b141561511b57507f63726f7373446f6d61696e436c6f73654761734c696d69740000000000000000610e2c565b6040805162461bcd60e51b8152602060048201526016602482015275556e6b6e6f776e20676173206c696d6974207479706560501b604482015290519081900360640190fd5b600061516b613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e1d185c99d95d151a1c995cda1bdb19608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b60006151e0613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527f63726f7373436861696e53796e74685472616e73666572456e61626c65640000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000615291613b3e565b6001600160a01b0316639ee5955a6000805160206154a98339815191527f61746f6d69634571756976616c656e74466f7244657850726963696e67000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816154155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153da5781810151838201526020016153c2565b50505050905090810190601f1680156154075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e53797374656d53657474696e6773000000000000000000000000000000000000a265627a7a7231582006c8def75d3a6440a968d482b01d1516082b4a058408c769a292472e65c6a65664736f6c63430005100032",
			"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": "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": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "CrossChainSynthTransferEnabledUpdated",
					"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": "newReward",
							"type": "uint256"
						}
					],
					"name": "FlagRewardUpdated",
					"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": "newReward",
							"type": "uint256"
						}
					],
					"name": "LiquidateRewardUpdated",
					"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": "newDuration",
							"type": "uint256"
						}
					],
					"name": "LiquidationEscrowDurationUpdated",
					"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": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "enabled",
							"type": "bool"
						}
					],
					"name": "PureChainlinkPriceForAtomicSwapsEnabledUpdated",
					"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": "newPenalty",
							"type": "uint256"
						}
					],
					"name": "SelfLiquidationPenaltyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newPenalty",
							"type": "uint256"
						}
					],
					"name": "SnxLiquidationPenaltyUpdated",
					"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": [],
					"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": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "crossChainSynthTransferEnabled",
					"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": [],
					"name": "flagReward",
					"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": "liquidateReward",
					"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": "liquidationEscrowDuration",
					"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": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "pureChainlinkPriceForAtomicSwapsEnabled",
					"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": 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": "selfLiquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"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": "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": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_value",
							"type": "uint256"
						}
					],
					"name": "setCrossChainSynthTransferEnabled",
					"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": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "setFlagReward",
					"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": "reward",
							"type": "uint256"
						}
					],
					"name": "setLiquidateReward",
					"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": "duration",
							"type": "uint256"
						}
					],
					"name": "setLiquidationEscrowDuration",
					"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": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "_enabled",
							"type": "bool"
						}
					],
					"name": "setPureChainlinkPriceForAtomicSwapsEnabled",
					"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": "penalty",
							"type": "uint256"
						}
					],
					"name": "setSelfLiquidationPenalty",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "penalty",
							"type": "uint256"
						}
					],
					"name": "setSnxLiquidationPenalty",
					"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": "snxLiquidationPenalty",
					"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": "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": "0xfa78d6c6b2a6d59225daee24806fe936c736e57020c3843f555a406b83de8093",
				"urls": [
					"bzz-raw://93d57758c5ece20f99dd17f89bfeb3180e45b00900d41cdf250d9e923367d57c",
					"dweb:/ipfs/QmfDobPPytxMMiij4Vw8ebRyXRm7KHoYWTSwNJA9aHG3iT"
				]
			},
			"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": "0xfa78d6c6b2a6d59225daee24806fe936c736e57020c3843f555a406b83de8093",
						"urls": [
							"bzz-raw://93d57758c5ece20f99dd17f89bfeb3180e45b00900d41cdf250d9e923367d57c",
							"dweb:/ipfs/QmfDobPPytxMMiij4Vw8ebRyXRm7KHoYWTSwNJA9aHG3iT"
						]
					}
				},
				"version": 1
			}
		},
		"SystemStatus": {
			"bytecode": "608060405234801561001057600080fd5b506040516128193803806128198339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505061271f806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106103835760003560e01c80636309a10c116101de578063a55ce9c51161010f578063e470df58116100ad578063f405f65a1161007c578063f405f65a14610d61578063f44d1e0b14610d69578063f4c80f5e14610d71578063f8b4b08414610d8e57610383565b8063e470df5814610cb1578063e665edf014610cce578063e91e691814610d3c578063f161620714610d5957610383565b8063b9a49869116100e9578063b9a4986914610bb0578063c0eee44314610c1e578063da5917ae14610c26578063de1b885114610c4357610383565b8063a55ce9c514610b68578063abc0bb6e14610b70578063b431c0ea14610b9357610383565b80637c3125411161017c5780638da5cb5b116101565780638da5cb5b14610b1757806394c79f7414610b1f5780639f8a95ba14610b3c578063a0aad31c14610b6057610383565b80637c31254114610a845780637fe9b23d14610a8c578063856aae6c14610afa57610383565b80636ef5d841116101b85780636ef5d841146109505780637118d43114610a575780637243bc2c14610a5f57806379ba509714610a7c57610383565b80636309a10c146108bd57806367a280b2146108da57806369eaced2146108e257610383565b80632dd8afdb116102b85780634abdb44d1161025657806355585bce1161023057806355585bce1461088257806356c3da451461088a5780636132eba414610892578063614d08f8146108b557610383565b80634abdb44d146106f8578063517d60c61461070057806353a47bb71461085e57610383565b8063396e258e11610292578063396e258e1461065f57806342a28e211461067c57806348bf1971146106995780634a661850146106d557610383565b80632dd8afdb146106335780632e8d0b9e1461063b578063346cde511461065757610383565b80631ce00ba21161032557806322264567116102ff578063222645671461057d5780632366245e146105a05780632a647ab7146105a85780632be470901461061657610383565b80631ce00ba2146104a55780631f4b3401146104c857806320f2bf001461053657610383565b80631588e817116103615780631588e817146103b45780631627540c146103d1578063180113bc146103f75780631cba727c1461043757610383565b8063086dabd11461038857806312bde51414610392578063157c51d3146103ac575b600080fd5b610390610d96565b005b61039a610da0565b60408051918252519081900360200190f35b610390610dad565b610390600480360360208110156103ca57600080fd5b5035610e17565b610390600480360360208110156103e757600080fd5b50356001600160a01b0316610e82565b6104146004803603602081101561040d57600080fd5b5035610ede565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b6103906004803603604081101561044d57600080fd5b810190602081018135600160201b81111561046757600080fd5b82018360208201111561047957600080fd5b803590602001918460208302840111600160201b8311171561049a57600080fd5b919350915035610f03565b610390600480360360408110156104bb57600080fd5b5080359060200135610f46565b610390600480360360208110156104de57600080fd5b810190602081018135600160201b8111156104f857600080fd5b82018360208201111561050a57600080fd5b803590602001918460208302840111600160201b8311171561052b57600080fd5b509092509050610f7e565b6105626004803603604081101561054c57600080fd5b50803590602001356001600160a01b0316610fba565b60408051921515835290151560208301528051918290030190f35b6103906004803603604081101561059357600080fd5b5080359060200135610fe3565b610414611029565b610390600480360360408110156105be57600080fd5b810190602081018135600160201b8111156105d857600080fd5b8201836020820111156105ea57600080fd5b803590602001918460208302840111600160201b8311171561060b57600080fd5b919350915035611042565b6103906004803603602081101561062c57600080fd5b5035611080565b6104146110ea565b610643611103565b604080519115158252519081900360200190f35b61041461112d565b6103906004803603602081101561067557600080fd5b5035611146565b6103906004803603602081101561069257600080fd5b50356111b1565b610390600480360360808110156106af57600080fd5b508035906001600160a01b036020820135169060408101351515906060013515156111c5565b610390600480360360408110156106eb57600080fd5b50803590602001356111df565b61039a611225565b6103906004803603608081101561071657600080fd5b810190602081018135600160201b81111561073057600080fd5b82018360208201111561074257600080fd5b803590602001918460208302840111600160201b8311171561076357600080fd5b919390929091602081019035600160201b81111561078057600080fd5b82018360208201111561079257600080fd5b803590602001918460208302840111600160201b831117156107b357600080fd5b919390929091602081019035600160201b8111156107d057600080fd5b8201836020820111156107e257600080fd5b803590602001918460208302840111600160201b8311171561080357600080fd5b919390929091602081019035600160201b81111561082057600080fd5b82018360208201111561083257600080fd5b803590602001918460208302840111600160201b8311171561085357600080fd5b509092509050611234565b610866611325565b604080516001600160a01b039092168252519081900360200190f35b610390611334565b61039a61139f565b610390600480360360408110156108a857600080fd5b50803590602001356113ad565b61039a6113b5565b610390600480360360208110156108d357600080fd5b50356113c8565b61039061140d565b610390600480360360208110156108f857600080fd5b810190602081018135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460208302840111600160201b8311171561094557600080fd5b509092509050611479565b6109be6004803603602081101561096657600080fd5b810190602081018135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460208302840111600160201b831117156109b357600080fd5b5090925090506114b5565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a025781810151838201526020016109ea565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a41578181015183820152602001610a29565b5050505090500194505050505060405180910390f35b6103906115de565b61041460048036036020811015610a7557600080fd5b50356115ee565b610390611613565b6103906116cf565b61039060048036036040811015610aa257600080fd5b810190602081018135600160201b811115610abc57600080fd5b820183602082011115610ace57600080fd5b803590602001918460208302840111600160201b83111715610aef57600080fd5b9193509150356116df565b61039060048036036020811015610b1057600080fd5b503561171d565b61086661173e565b61039060048036036020811015610b3557600080fd5b503561174d565b610b44611792565b604080516001600160f81b039092168252519081900360200190f35b610390611797565b61039a6117af565b61039060048036036040811015610b8657600080fd5b50803590602001356117c3565b61064360048036036020811015610ba957600080fd5b5035611809565b6109be60048036036020811015610bc657600080fd5b810190602081018135600160201b811115610be057600080fd5b820183602082011115610bf257600080fd5b803590602001918460208302840111600160201b83111715610c1357600080fd5b509092509050611831565b610643611952565b61039060048036036020811015610c3c57600080fd5b503561195b565b61039060048036036020811015610c5957600080fd5b810190602081018135600160201b811115610c7357600080fd5b820183602082011115610c8557600080fd5b803590602001918460208302840111600160201b83111715610ca657600080fd5b50909250905061196c565b61039060048036036020811015610cc757600080fd5b50356119a8565b6109be60048036036020811015610ce457600080fd5b810190602081018135600160201b811115610cfe57600080fd5b820183602082011115610d1057600080fd5b803590602001918460208302840111600160201b83111715610d3157600080fd5b509092509050611a1d565b61041460048036036020811015610d5257600080fd5b5035611b3e565b61039a611b63565b610390611b72565b61039a611bde565b61039060048036036020811015610d8757600080fd5b5035611bea565b610414611c2f565b610d9e611c48565b565b6553797374656d60d01b81565b610dbf6553797374656d60d01b611d27565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610e2b6745786368616e676560c01b611d84565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610e8a611ddc565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60096020526000908152604090205460ff81169061010090046001600160f81b031682565b610f41838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611e25915050565b505050565b610f4e611c48565b610f56611ed3565b610f5f82611f15565b610f6881611f15565b610f7182611f63565b610f7a81611f63565b5050565b610f7a828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611fb192505050565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061101357fe5b602002602001018181525050610f418183612059565b60045460ff81169061010090046001600160f81b031682565b610f41838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612059915050565b611093664675747572657360c81b611d84565b600680546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fbb77bf6af5bb933d0fb912130167ce25b6debb9c728f232ee4e7c181f16c8e0c9181900360200190a150565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015611128575060035461010090046001600160f81b03166001145b905090565b60065460ff81169061010090046001600160f81b031682565b61115a6749737375616e636560c01b611d84565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b6111b9611c48565b6111c281611f63565b50565b6111cd611ddc565b6111d984848484612101565b50505050565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061120f57fe5b602002602001018181525050610f418183611e25565b6749737375616e636560c01b81565b61123c611ddc565b868514801561124a57508483145b801561125557508281145b6112a6576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b8781101561131a576113128989838181106112c057fe5b905060200201358888848181106112d357fe5b905060200201356001600160a01b03168787858181106112ef57fe5b90506020020135151586868681811061130457fe5b905060200201351515612101565b6001016112a9565b505050505050505050565b6001546001600160a01b031681565b611347664675747572657360c81b611d27565b6006805460ff191690819055604080516101009092046001600160f81b03168252517fcbdc17547b5be7fb4a78666d4253509496561d5b1088a019865bd70d7e248fa6916020908290030190a16006805460ff169055565b664675747572657360c81b81565b610f68611c48565b6b53797374656d53746174757360a01b81565b6040805160018082528183019092526060916020808301908038833901905050905081816000815181106113f857fe5b602002602001018181525050610f7a81612247565b6114216749737375616e636560c01b611d27565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610f7a82828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061224792505050565b606080838390506040519080825280602002602001820160405280156114e5578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611512578160200160208202803883390190505b50905060005b838110156115d6576009600086868481811061153057fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061156257fe5b911515602092830291909101909101526009600086868481811061158257fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b03168282815181106115c357fe5b6020908102919091010152600101611518565b509250929050565b6115e6611c48565b610d9e611ed3565b60086020526000908152604090205460ff81169061010090046001600160f81b031682565b6001546001600160a01b0316331461165c5760405162461bcd60e51b815260040180806020018281038252603581526020018061251d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6116d7611c48565b610d9e6122f5565b610f41838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612337915050565b611725611c48565b61172d611ed3565b6117356123dd565b6111c28161241f565b6000546001600160a01b031681565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811061177d57fe5b602002602001018181525050610f7a81612476565b600181565b61179f611c48565b6117a7611ed3565b610d9e6123dd565b6c53796e746845786368616e676560981b81565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106117f357fe5b602002602001018181525050610f418183612337565b60035460009060ff168061182b575060008281526008602052604090205460ff165b92915050565b60608083839050604051908082528060200260200182016040528015611861578160200160208202803883390190505b5060408051858152602080870282010190915290925083801561188e578160200160208202803883390190505b50905060005b838110156115d657600860008686848181106118ac57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff168382815181106118de57fe5b91151560209283029190910190910152600860008686848181106118fe57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061193f57fe5b6020908102919091010152600101611894565b60035460ff1690565b611963611c48565b6111c281611f15565b610f7a82828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061247692505050565b6119ba6553797374656d60d01b611d84565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b60608083839050604051908082528060200260200182016040528015611a4d578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611a7a578160200160208202803883390190505b50905060005b838110156115d65760076000868684818110611a9857fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff16838281518110611aca57fe5b9115156020928302919091019091015260076000868684818110611aea57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b0316828281518110611b2b57fe5b6020908102919091010152600101611a80565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6745786368616e676560c01b81565b611b866745786368616e676560c01b611d27565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b640a6f2dce8d60db1b81565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110611c1a57fe5b602002602001018181525050610f7a81611fb1565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b0316600114611c84576040518060600160405280602c8152602001612659602c9139611c9e565b6040518060600160405280603e8152602001612685603e91395b906111c25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cec578181015183820152602001611cd4565b50505050905090810190601f168015611d195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff166111c25760405162461bcd60e51b81526004018080602001828103825260218152602001806126386021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff166111c25760405162461bcd60e51b81526004018080602001828103825260218152602001806126386021913960400191505060405180910390fd5b6000546001600160a01b03163314610d9e5760405162461bcd60e51b815260040180806020018281038252602f8152602001806125de602f913960400191505060405180910390fd5b611e3e6c53796e746845786368616e676560981b611d84565b60005b8251811015610f41576000838281518110611e5857fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcea0da706e9f2a6a1cb56cdab42ac548791339f1710deadf814f15fc0a6a7114928290030190a150600101611e41565b60055460ff1615610d9e5760405162461bcd60e51b815260040180806020018281038252602b81526020018061260d602b913960400191505060405180910390fd5b60008181526007602052604090205460ff16156111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061257d602e913960400191505060405180910390fd5b60008181526008602052604090205460ff16156111c25760405162461bcd60e51b81526004018080602001828103825260288152602001806126c36028913960400191505060405180910390fd5b611fc4664675747572657360c81b611d27565b60005b8151811015610f7a576000828281518110611fde57fe5b6020908102919091018101516000818152600983526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f250fcb5d34afaf9bc18ec9ca0bf709e0f2ecb8ae4d4a3a616c0bf54b2ddf53e6928290030190a1600090815260096020526040812055600101611fc7565b61206c664675747572657360c81b611d84565b60005b8251811015610f4157600083828151811061208657fe5b60209081029190910181015160008181526009835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcaa561b71353382b62092c429c14613b5db8f9c5f3a27cb51df16e51f350f8ca928290030190a15060010161206f565b6553797374656d60d01b84148061212257506749737375616e636560c01b84145b8061213757506745786368616e676560c01b84145b8061214b5750664675747572657360c81b84145b8061216557506c53796e746845786368616e676560981b84145b806121775750640a6f2dce8d60db1b84145b6121c8576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b6122606c53796e746845786368616e676560981b611d27565b60005b8151811015610f7a57600082828151811061227a57fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f91037f810fbf9c3c6d5573650d27de6b5e8d2187698822700d4524102472bc08928290030190a1600090815260076020526040812055600101612263565b60045460ff1615610d9e5760405162461bcd60e51b815260040180806020018281038252602b815260200180612552602b913960400191505060405180910390fd5b612348640a6f2dce8d60db1b611d84565b60005b8251811015610f4157600083828151811061236257fe5b60209081029190910181015160008181526008835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541928290030190a15060010161234b565b60065460ff1615610d9e5760405162461bcd60e51b81526004018080602001828103825260338152602001806125ab6033913960400191505060405180910390fd5b60008181526009602052604090205460ff16156111c2576040805162461bcd60e51b815260206004820152601060248201526f13585c9ad95d081cdd5cdc195b99195960821b604482015290519081900360640190fd5b612487640a6f2dce8d60db1b611d27565b60005b8151811015610f7a5760008282815181106124a157fe5b6020908102919091018101516000818152600883526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220928290030190a160009081526008602052604081205560010161248a56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697049737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f6869626974656446757475726573206d61726b657473206172652073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645265737472696374656420746f2061636365737320636f6e74726f6c206c69737453796e7468657469782069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e7468657469782069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e6420627953796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a72315820b3e235c524d4797e16d2887a0caf49fea2b93fdb292ea2406dec1e14cbada97064736f6c63430005100032",
			"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": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"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": "0xdacf3837a255f65bdc08390d1fbd6c7005d987a3a97fdc8ece53724a2a027190",
				"urls": [
					"bzz-raw://5c9f132d02cf7519f384cb0b0763f795d9488d8cc0978ad9493ed91724e7f59b",
					"dweb:/ipfs/QmVns7eEQQoaYtLxhPSVpXYxmc7UzwDeRZMFqUEhjKa8KA"
				]
			},
			"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": "0xdacf3837a255f65bdc08390d1fbd6c7005d987a3a97fdc8ece53724a2a027190",
						"urls": [
							"bzz-raw://5c9f132d02cf7519f384cb0b0763f795d9488d8cc0978ad9493ed91724e7f59b",
							"dweb:/ipfs/QmVns7eEQQoaYtLxhPSVpXYxmc7UzwDeRZMFqUEhjKa8KA"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeRatesWithDexPricing": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620047bc380380620047bc833981016040819052620000349162000100565b81818080836001600160a01b0381166200006b5760405162461bcd60e51b81526004016200006290620001bc565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b891849062000196565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550620002179350505050565b8051620000fa81620001fd565b92915050565b600080604083850312156200011457600080fd5b6000620001228585620000ed565b92505060206200013585828601620000ed565b9150509250929050565b6200014a81620001e9565b82525050565b6200014a81620001d7565b60006200016a601983620001ce565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a682856200013f565b620001b5602083018462000150565b9392505050565b60208082528101620000fa816200015b565b90815260200190565b60006001600160a01b038216620000fa565b6000620000fa826000620000fa82620001d7565b6200020881620001d7565b81146200021457600080fd5b50565b61459580620002276000396000f3fe608060405234801561001057600080fd5b50600436106102685760003560e01c8063614d08f8116101515780638da5cb5b116100c3578063c8e5bbd511610087578063c8e5bbd514610563578063ce8480ea14610584578063d89ee86114610597578063ed762450146105aa578063fce132f9146105cb578063fdadbc7e146105de57610268565b80638da5cb5b1461050d5780639eab4a3714610515578063ac82f6081461051d578063b295ad3414610530578063c2c8a6761461055057610268565b806374eded391161011557806374eded39146104b157806379ba5097146104c45780637a018a1e146104cc5780638295016a146104df5780638661cc7b146104f2578063899ffef41461050557610268565b8063614d08f814610459578063654a60ac146104615780636ce66c80146104745780637103353e1461049657806374185360146104a957610268565b80632528f0fe116101ea57806338aa1b99116101ae57806338aa1b99146103e25780633f0e084f146103f55780634308a94f146104085780634c36b837146104295780634f72def61461043e57806353a47bb71461045157610268565b80632528f0fe146103815780632678df961461039457806326bd30fa146103b45780632af64bd3146103c75780632bed9e0c146103cf57610268565b80630a7d36d1116102315780630a7d36d1146103105780630c71cd23146103235780630ee4951b14610344578063109e46a2146103595780631627540c1461036c57610268565b80629919c01461026d578063045056f81461029657806304f3bcec146102b8578063055286e0146102cd57806305a046e5146102f0575b600080fd5b61028061027b3660046135ff565b6105f1565b60405161028d919061419b565b60405180910390f35b6102a96102a43660046135ff565b61060c565b60405161028d93929190614395565b6102c061077f565b60405161028d919061421b565b6102e06102db366004613687565b61078e565b60405161028d94939291906143e5565b6103036102fe36600461352f565b61096b565b60405161028d9190614145565b61028061031e36600461352f565b6109ed565b6103366103313660046135ff565b610b16565b60405161028d92919061437a565b61034c610bb3565b60405161028d91906141a9565b61034c610367366004613749565b610bc3565b61037f61037a3660046134be565b610c06565b005b61028061038f3660046135ff565b610c64565b6103a76103a23660046134be565b610c70565b60405161028d9190614134565b6102e06103c2366004613806565b610d24565b610280610de3565b61037f6103dd3660046135ff565b610efa565b6102806103f03660046135ff565b610fb7565b61037f61040336600461361d565b610fc5565b61041b6104163660046135ff565b6111cc565b60405161028d9291906141c5565b610431611204565b60405161028d9190614081565b61034c61044c3660046135ff565b61120e565b61043161122c565b61034c61123b565b61034c61046f366004613687565b61125f565b6104876104823660046136d4565b611277565b60405161028d939291906143bd565b6102c06104a43660046135ff565b6112dc565b61037f6112f7565b61037f6104bf3660046137aa565b61144d565b61037f611512565b61034c6104da3660046135ff565b6115ae565b6104876104ed366004613687565b6115b9565b6102806105003660046135ff565b6115d9565b6103a761167b565b6104316116f2565b6102c0611701565b61034c61052b3660046135ff565b6117ad565b61054361053e3660046135ff565b6117c8565b60405161028d919061440d565b61030361055e36600461352f565b6117dd565b61057661057136600461352f565b611855565b60405161028d92919061417b565b61034c6105923660046135ff565b6119a5565b6102806105a5366004613571565b6119b0565b6105bd6105b8366004613687565b611af5565b60405161028d929190614156565b6102806105d93660046137c8565b611bd3565b61041b6105ec366004613657565b611cb6565b6000610604826105ff611ccf565b611d79565b90505b919050565b600081815260046020526040812054819081906001600160a01b0316631cd554d160e21b85148061064557506001600160a01b03811615155b61066a5760405162461bcd60e51b8152600401610661906142ca565b60405180910390fd5b610672613083565b61067b86611da4565b9050631cd554d160e21b8614156106a657516001600160d81b03169350600092508291506107789050565b80516001600160d81b031694506106bb611f6e565b815160405163413caeb560e01b81526001600160a01b03929092169163413caeb5916106ec918691906004016140c5565b602060405180830381600087803b15801561070657600080fd5b505af115801561071a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061073e91908101906135e1565b935061075c61074b611ccf565b826020015164ffffffffff16611f8a565b8061077357506107738661076e611fa5565b612006565b925050505b9193909250565b6002546001600160a01b031681565b60008060008061079c61309a565b6107a46120d6565b6001600160a01b031663697b659b338a6040518363ffffffff1660e01b81526004016107d192919061408f565b6101a06040518083038186803b1580156107ea57600080fd5b505afa1580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061082291908101906137e7565b905061082c61309a565b6108346120d6565b6001600160a01b031663697b659b33896040518363ffffffff1660e01b815260040161086192919061408f565b6101a06040518083038186803b15801561087a57600080fd5b505afa15801561088e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108b291908101906137e7565b90506108bc61309a565b6108c46120d6565b6001600160a01b031663697b659b33631cd554d160e21b6040518363ffffffff1660e01b81526004016108f892919061408f565b6101a06040518083038186803b15801561091157600080fd5b505afa158015610925573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061094991908101906137e7565b9050610957838a8484610d24565b965096509650965050505093509350935093565b6060808383905060405190808252806020026020018201604052801561099b578160200160208202803883390190505b50905060005b838110156109e3576109c48585838181106109b857fe5b905060200201356120fc565b8282815181106109d057fe5b60209081029190910101526001016109a1565b5090505b92915050565b6000806109f8611ccf565b90506060610a3885858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061211892505050565b905060005b84811015610b0a57631cd554d160e21b868683818110610a5957fe5b905060200201351415610a6b57610b02565b610a73613083565b610a8e878784818110610a8257fe5b90506020020135611da4565b9050828281518110610a9c57fe5b602002602001015180610abf5750610abf84826020015164ffffffffff16611f8a565b80610aee5750610aee878784818110610ad457fe5b9050602002013582600001516001600160d81b0316612293565b15610b005760019450505050506109e7565b505b600101610a3d565b50600095945050505050565b600080610b21613083565b610b2a84611da4565b9050631cd554d160e21b841415610b5057516001600160d81b0316915060009050610bae565b8051610b6e610b5d611ccf565b836020015164ffffffffff16611f8a565b80610b805750610b808561076e611fa5565b80610b9d5750610b9d8583600001516001600160d81b0316612293565b6001600160d81b0390911693509150505b915091565b6000610bbd611ccf565b90505b90565b600083815b610bd5878360010161232d565b915050801580610be6575083850181115b15610bf357509050610bfe565b600190910190610bc8565b949350505050565b610c0e6124cf565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610c59908390614081565b60405180910390a150565b600080610bfe83610b16565b600654604080518281526020808402820101909152606091600091908015610ca2578160200160208202803883390190505b50915060005b600654811015610d1d57600060068281548110610cc157fe5b600091825260208083209091015480835260049091526040909120549091506001600160a01b039081169086161415610d145780848480600101955081518110610d0757fe5b6020026020010181815250505b50600101610ca8565b5050919050565b600080600080610d3d88600001518888600001516124fb565b8a519295509093509150600090610d539061254d565b90506000610d64886000015161254d565b90506000808315610d7757859150610d8e565b610d8b86610d868e8c8f61262d565b612841565b91505b8215610d9b575083610db2565b610daf85610daa8b8d8f61262d565b612857565b90505b610dd281610dc68d8563ffffffff61286616565b9063ffffffff6128a016565b975050505050945094509450949050565b60006060610def61167b565b905060005b8151811015610ef1576000828281518110610e0b57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610e5c9085906004016141a9565b60206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610eac91908101906134dc565b6001600160a01b0316141580610ed757506000818152600360205260409020546001600160a01b0316155b15610ee85760009350505050610bc0565b50600101610df4565b50600191505090565b610f026124cf565b6000818152600460205260409020546001600160a01b031680610f375760405162461bcd60e51b81526004016106619061436a565b600082815260046020908152604080832080546001600160a01b031916905560059091528120805460ff19169055610f708360066128d5565b90508015610fb2577fec70e890fc7db7de4059b114c9093a1f41283d18ffcfbcac45566feea4d4f7778383604051610fa99291906141b7565b60405180910390a15b505050565b60006106048261076e611fa5565b610fcd6124cf565b60008190506000816001600160a01b031663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b15801561100d57600080fd5b505afa158015611021573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611045919081019061385f565b10156110635760405162461bcd60e51b81526004016106619061434a565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561109e57600080fd5b505afa1580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110d691908101906138e5565b9050601b8160ff1611156110fc5760405162461bcd60e51b8152600401610661906142ba565b6000848152600460205260409020546001600160a01b031661114e57600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018490555b600084815260046020908152604080832080546001600160a01b0319166001600160a01b038716179055600590915290819020805460ff191660ff8416179055517f0bcae573430f69c5361e5d76534d3f61d2d803958778680cd74be9dc6299bc63906111be90869085906141b7565b60405180910390a150505050565b6000806111d7613083565b6111e084611da4565b80516020909101516001600160d81b03909116935064ffffffffff16915050915091565b6000610bbd611fa5565b6006818154811061121b57fe5b600091825260209091200154905081565b6001546001600160a01b031681565b7f45786368616e676552617465735769746844657850726963696e67000000000081565b600061126c8484846124fb565b509095945050505050565b6000806000611286888661232d565b5091508786141561129b5750859150806112d1565b6112a5868561232d565b50905080156112d1576112ce816112c2898563ffffffff61297916565b9063ffffffff61298e16565b92505b955095509592505050565b6004602052600090815260409020546001600160a01b031681565b606061130161167b565b905060005b815181101561144957600082828151811061131d57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161135f9190614076565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161138b9291906141fb565b60206040518083038186803b1580156113a357600080fd5b505afa1580156113b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113db91908101906134dc565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061143790849084906141b7565b60405180910390a15050600101611306565b5050565b6114556124cf565b61145d6129a3565b6001600160a01b0316634dca09786c45786368616e6765526174657360981b713232bc283934b1b2a0b3b3b932b3b0ba37b960711b846040518463ffffffff1660e01b81526004016114b1939291906141d3565b600060405180830381600087803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b505050507f8a51d16f378c74938a4b9290afe425bbfba62f05aa9d27bff5e892f62696f76081604051610c599190614081565b6001546001600160a01b0316331461153c5760405162461bcd60e51b81526004016106619061425a565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261157f926001600160a01b03918216929116906140aa565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610604826129c0565b60008060006115c98686866124fb565b9250925092505b93509350939050565b60006115e361309a565b6115eb6120d6565b6001600160a01b031663697b659b33856040518363ffffffff1660e01b815260040161161892919061408f565b6101a06040518083038186803b15801561163157600080fd5b505afa158015611645573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061166991908101906137e7565b905061167481611bd3565b9392505050565b606080611686612a70565b6040805160018082528183019092529192506060919060208083019080388339019050509050772234b932b1ba24b73a32b3b930ba34b7b726b0b730b3b2b960411b816000815181106116d557fe5b6020026020010181815250506116eb8282612ac0565b9250505090565b6000546001600160a01b031681565b600061170b6129a3565b6001600160a01b0316639ee5955a6c45786368616e6765526174657360981b713232bc283934b1b2a0b3b3b932b3b0ba37b960711b6040518363ffffffff1660e01b815260040161175d9291906141c5565b60206040518083038186803b15801561177557600080fd5b505afa158015611789573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bbd91908101906134dc565b60006117b882611da4565b516001600160d81b031692915050565b60056020526000908152604090205460ff1681565b6060808383905060405190808252806020026020018201604052801561180d578160200160208202803883390190505b50905060005b838110156109e35761183685858381811061182a57fe5b905060200201356117ad565b82828151811061184257fe5b6020908102919091010152600101611813565b6060600083839050604051908082528060200260200182016040528015611886578160200160208202803883390190505b5091506000611893611ccf565b905060606118d386868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061211892505050565b905060005b8581101561199b576118e8613083565b6118f7888884818110610a8257fe5b905080600001516001600160d81b031686838151811061191357fe5b602002602001018181525050841580156119465750631cd554d160e21b88888481811061193c57fe5b9050602002013514155b156119925782828151811061195757fe5b60200260200101518061197a575061197a84826020015164ffffffffff16611f8a565b8061198f575061198f888884818110610ad457fe5b94505b506001016118d8565b5050509250929050565b6000610604826120fc565b60008184146119d15760405162461bcd60e51b81526004016106619061435a565b60006119db611ccf565b90506060611a1b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061211892505050565b905060005b86811015611ae757631cd554d160e21b888883818110611a3c57fe5b905060200201351415611a4e57611adf565b600080611a7f8a8a85818110611a6057fe5b90506020020135898986818110611a7357fe5b9050602002013561232d565b91509150838381518110611a8f57fe5b602002602001015180611aa75750611aa78582611f8a565b80611ac95750611ac98a8a85818110611abc57fe5b9050602002013583612293565b15611adc57600195505050505050610bfe565b50505b600101611a20565b506000979650505050505050565b60608083604051908082528060200260200182016040528015611b22578160200160208202803883390190505b50915083604051908082528060200260200182016040528015611b4f578160200160208202803883390190505b50905060008311611b6857611b63856129c0565b611b6a565b825b925060005b84811015611bc957611b81868561232d565b848381518110611b8d57fe5b60200260200101848481518110611ba057fe5b60209081029190910101919091525283611bba5750611bcb565b60001990930192600101611b6f565b505b935093915050565b8051600090631cd554d160e21b1415611bee57506000610607565b60c082015160e0830151811580611c03575080155b15611c1357600092505050610607565b6000611c25428463ffffffff612b7c16565b90506000611c3686600001516129c0565b90505b8215611caa57600080611c5088600001518461232d565b9150915080600014158015611c6457508381105b15611c785760009650505050505050610607565b811580611c83575080155b15611c8f575050611caa565b82611c9b575050611caa565b50506000199283019201611c39565b50600195945050505050565b600080611cc3848461232d565b915091505b9250929050565b6000611cd96129a3565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401611d299291906141c5565b60206040518083038186803b158015611d4157600080fd5b505afa158015611d55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bbd919081019061385f565b6000631cd554d160e21b831415611d92575060006109e7565b61167482611d9f856120fc565b611f8a565b611dac613083565b631cd554d160e21b821415611e5c57604051806040016040528073__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0a57600080fd5b505af4158015611e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e42919081019061385f565b6001600160d81b0316815260006020909101529050610607565b6000828152600460205260409020546001600160a01b03168015611f685760408051600481526024810182526020810180516001600160e01b0316633fabe5a360e21b17905290516000906060906001600160a01b03851690611ec090859061404a565b600060405180830381855afa9150503d8060008114611efb576040519150601f19603f3d011682016040523d82523d6000602084013e611f00565b606091505b50915091508115611f645760008082806020019051611f22919081019061387d565b509350509250506040518060400160405280611f3e8a85612ba4565b6001600160d81b031681526020018264ffffffffff168152509650505050505050610607565b5050505b50919050565b6000610bbd6d21b4b931bab4ba213932b0b5b2b960911b612c44565b600042611f9d838563ffffffff612ca116565b109392505050565b6000611faf6129a3565b6001600160a01b0316639ee5955a6d53797374656d53657474696e677360901b7561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b815260040161175d9291906141c5565b6000631cd554d160e21b83141561201f575060006109e7565b6000838152600460205260409020546001600160a01b031680158061204b57506001600160a01b038316155b1561205a5760009150506109e7565b604051631abf23ff60e11b81526001600160a01b0384169063357e47fe90612086908490600401614081565b60206040518083038186803b15801561209e57600080fd5b505afa1580156120b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bfe91908101906135e1565b6000610bbd772234b932b1ba24b73a32b3b930ba34b7b726b0b730b3b2b960411b612c44565b600061210782611da4565b6020015164ffffffffff1692915050565b60606000612124611fa5565b90506001600160a01b038116156122605760608351604051908082528060200260200182016040528015612162578160200160208202803883390190505b50905060005b84518110156121d7576004600086838151811061218157fe5b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b03168282815181106121b757fe5b6001600160a01b0390921660209283029190910190910152600101612168565b50604051631f5c8f2b60e21b81526001600160a01b03831690637d723cac90612204908490600401614123565b60006040518083038186803b15801561221c57600080fd5b505afa158015612230573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261225891908101906134fa565b925050611f68565b825160405190808252806020026020018201604052801561228b578160200160208202803883390190505b509392505050565b600061229d611f6e565b6000848152600460208190526040918290205491516318b844ad60e01b81526001600160a01b03938416936318b844ad936122dd939116918791016140e0565b60206040518083038186803b1580156122f557600080fd5b505afa158015612309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061167491908101906135e1565b600080631cd554d160e21b8414156123c65773__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561238357600080fd5b505af4158015612397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123bb919081019061385f565b915060009050611cc8565b6000848152600460205260409020546001600160a01b031680156124c7576060846040516024016123f791906141a9565b60408051601f198184030181529181526020820180516001600160e01b0316639a6fc8f560e01b179052519091506000906060906001600160a01b0385169061244190859061404a565b600060405180830381855afa9150503d806000811461247c576040519150601f19603f3d011682016040523d82523d6000602084013e612481565b606091505b509150915081156124c357600080828060200190516124a3919081019061387d565b509350509250506124b48a83612ba4565b97509550611cc8945050505050565b5050505b509250929050565b6000546001600160a01b031633146124f95760405162461bcd60e51b8152600401610661906142fa565b565b6000806000612509866117ad565b91508386141561251d5750839150806115d0565b612526846117ad565b905080156115d057612542816112c2878563ffffffff61297916565b925093509350939050565b60006125576129a3565b6001600160a01b031663d994502d6d53797374656d53657474696e677360901b7f70757265436861696e6c696e6b466f7241746f6d696373456e61626c65640000856040516020016125aa929190614024565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b81526004016125dd9291906141c5565b60206040518083038186803b1580156125f557600080fd5b505afa158015612609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061060491908101906135e1565b60008161264c5760405162461bcd60e51b8152600401610661906142aa565b8351631cd554d160e21b148061266957508251631cd554d160e21b145b6126855760405162461bcd60e51b81526004016106619061424a565b60408401516001600160a01b0381166126b05760405162461bcd60e51b81526004016106619061423a565b60408401516001600160a01b0381166126db5760405162461bcd60e51b81526004016106619061431a565b600061278185610dc673__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561272857600080fd5b505af415801561273c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612760919081019061385f565b6127758b6020015188888c8f60800151612cc6565b9063ffffffff61286616565b9050806127a05760405162461bcd60e51b81526004016106619061433a565b8551631cd554d160e21b146128345761282f8173__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156127f757600080fd5b505af415801561280b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112c2919081019061385f565b612836565b805b979650505050505050565b60008183106128505781611674565b5090919050565b60008183116128505781611674565b600082612875575060006109e7565b8282028284828161288257fe5b04146116745760405162461bcd60e51b81526004016106619061430a565b60008082116128c15760405162461bcd60e51b8152600401610661906142ea565b60008284816128cc57fe5b04949350505050565b6000805b825481101561296f57838382815481106128ef57fe5b906000526020600020015414156129675782818154811061290c57fe5b600091825260208220015582548390600019810190811061292957fe5b906000526020600020015483828154811061294057fe5b600091825260209091200155825461295c846000198301613117565b5060019150506109e7565b6001016128d9565b5060009392505050565b60006116748383670de0b6b3a7640000612fcf565b60006116748383670de0b6b3a764000061300c565b6000610bbd6e466c657869626c6553746f7261676560881b612c44565b6000631cd554d160e21b8214156129d957506000610607565b6000828152600460205260409020546001600160a01b03168015611f6857806001600160a01b031663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b158015612a3057600080fd5b505afa158015612a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a68919081019061385f565b915050610607565b606080612a7b613032565b60408051600180825281830190925291925060609190602080830190803883390190505090506d21b4b931bab4ba213932b0b5b2b960911b816000815181106116d557fe5b60608151835101604051908082528060200260200182016040528015612af0578160200160208202803883390190505b50905060005b8351811015612b3257838181518110612b0b57fe5b6020026020010151828281518110612b1f57fe5b6020908102919091010152600101612af6565b5060005b8251811015612b7557828181518110612b4b57fe5b6020026020010151828286510181518110612b6257fe5b6020908102919091010152600101612b36565b5092915050565b600082821115612b9e5760405162461bcd60e51b8152600401610661906142da565b50900390565b600080821215612bc65760405162461bcd60e51b81526004016106619061426a565b60008381526005602052604090205460ff1682811580612be65750816012145b15612bf057610bfe565b6012821015612c19576012829003600a0a612c11828263ffffffff61286616565b915050610bfe565b6012821115610bfe576011198201600a0a612c3a828263ffffffff6128a016565b9695505050505050565b60008181526003602090815260408083205490516001600160a01b039091169182151591612c7491869101614056565b60405160208183030381529060405290612b755760405162461bcd60e51b81526004016106619190614229565b6000828201838110156116745760405162461bcd60e51b81526004016106619061428a565b600080612dcf73__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1057600080fd5b505af4158015612d24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d48919081019061385f565b610dc6886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612d8457600080fd5b505afa158015612d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dbc91908101906138e5565b879060ff16600a0a63ffffffff61286616565b90506001600160a01b038716612df75760405162461bcd60e51b81526004016106619061432a565b82612e145760405162461bcd60e51b81526004016106619061429a565b604051637c66194960e01b81526000906001600160a01b03891690637c66194990612e49908a9086908b908a906004016140ee565b60206040518083038186803b158015612e6157600080fd5b505afa158015612e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e99919081019061385f565b905060008111612ebb5760405162461bcd60e51b81526004016106619061427a565b612fc1866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612ef757600080fd5b505afa158015612f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f2f91908101906138e5565b60ff16600a0a610dc673__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612f7c57600080fd5b505af4158015612f90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612fb4919081019061385f565b849063ffffffff61286616565b925050505b95945050505050565b600080600a8304612fe6868663ffffffff61286616565b81612fed57fe5b0490506005600a825b061061300057600a015b600a9004949350505050565b60008061302684610dc687600a870263ffffffff61286616565b90506005600a82612ff6565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061307457fe5b60200260200101818152505090565b604080518082019091526000808252602082015290565b604051806101a001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815481835581811115610fb257600083815260209020610fb2918101908301610bc091905b80821115613150576000815560010161313c565b5090565b80356109e78161450e565b80516109e78161450e565b600082601f83011261317b57600080fd5b815161318e61318982614442565b61441b565b915081818352602084019350602081019050838560208402820111156131b357600080fd5b60005b838110156131df57816131c9888261322b565b84525060209283019291909101906001016131b6565b5050505092915050565b60008083601f8401126131fb57600080fd5b50813567ffffffffffffffff81111561321357600080fd5b602083019150836020820283011115611cc857600080fd5b80516109e781614525565b80356109e78161452e565b80516109e78161452e565b80356109e781614537565b60006101a0828403121561326a57600080fd5b6132756101a061441b565b905060006132838484613236565b825250602061329484848301613154565b60208301525060406132a884828501613154565b60408301525060606132bc84828501613236565b60608301525060806132d084828501613236565b60808301525060a06132e484828501613236565b60a08301525060c06132f884828501613236565b60c08301525060e061330c84828501613236565b60e08301525061010061332184828501613236565b6101008301525061012061333784828501613236565b6101208301525061014061334d84828501613236565b6101408301525061016061336384828501613236565b6101608301525061018061337984828501613236565b6101808301525092915050565b60006101a0828403121561339957600080fd5b6133a46101a061441b565b905060006133b28484613241565b82525060206133c38484830161315f565b60208301525060406133d78482850161315f565b60408301525060606133eb84828501613241565b60608301525060806133ff84828501613241565b60808301525060a061341384828501613241565b60a08301525060c061342784828501613241565b60c08301525060e061343b84828501613241565b60e08301525061010061345084828501613241565b6101008301525061012061346684828501613241565b6101208301525061014061347c84828501613241565b6101408301525061016061349284828501613241565b6101608301525061018061337984828501613241565b80516109e781614549565b80516109e781614540565b6000602082840312156134d057600080fd5b6000610bfe8484613154565b6000602082840312156134ee57600080fd5b6000610bfe848461315f565b60006020828403121561350c57600080fd5b815167ffffffffffffffff81111561352357600080fd5b610bfe8482850161316a565b6000806020838503121561354257600080fd5b823567ffffffffffffffff81111561355957600080fd5b613565858286016131e9565b92509250509250929050565b6000806000806040858703121561358757600080fd5b843567ffffffffffffffff81111561359e57600080fd5b6135aa878288016131e9565b9450945050602085013567ffffffffffffffff8111156135c957600080fd5b6135d5878288016131e9565b95989497509550505050565b6000602082840312156135f357600080fd5b6000610bfe848461322b565b60006020828403121561361157600080fd5b6000610bfe8484613236565b6000806040838503121561363057600080fd5b600061363c8585613236565b925050602061364d85828601613154565b9150509250929050565b6000806040838503121561366a57600080fd5b60006136768585613236565b925050602061364d85828601613236565b60008060006060848603121561369c57600080fd5b60006136a88686613236565b93505060206136b986828701613236565b92505060406136ca86828701613236565b9150509250925092565b600080600080600060a086880312156136ec57600080fd5b60006136f88888613236565b955050602061370988828901613236565b945050604061371a88828901613236565b935050606061372b88828901613236565b925050608061373c88828901613236565b9150509295509295909350565b6000806000806080858703121561375f57600080fd5b600061376b8787613236565b945050602061377c87828801613236565b935050604061378d87828801613236565b925050606061379e87828801613236565b91505092959194509250565b6000602082840312156137bc57600080fd5b6000610bfe848461324c565b60006101a082840312156137db57600080fd5b6000610bfe8484613257565b60006101a082840312156137fa57600080fd5b6000610bfe8484613386565b600080600080610500858703121561381d57600080fd5b60006138298787613257565b9450506101a061383b87828801613236565b9350506101c061384d87828801613257565b92505061036061379e87828801613257565b60006020828403121561387157600080fd5b6000610bfe8484613241565b600080600080600060a0868803121561389557600080fd5b60006138a188886134a8565b95505060206138b288828901613241565b94505060406138c388828901613241565b93505060606138d488828901613241565b925050608061373c888289016134a8565b6000602082840312156138f757600080fd5b6000610bfe84846134b3565b600061390f8383613932565b505060200190565b600061390f8383613a39565b61392c816144be565b82525050565b61392c81614476565b600061394682614469565b613950818561446d565b935061395b83614463565b8060005b838110156139895781516139738882613903565b975061397e83614463565b92505060010161395f565b509495945050505050565b600061399f82614469565b6139a9818561446d565b93506139b483614463565b8060005b838110156139895781516139cc8882613917565b97506139d783614463565b9250506001016139b8565b60006139ed82614469565b6139f7818561446d565b9350613a0283614463565b8060005b83811015613989578151613a1a8882613917565b9750613a2583614463565b925050600101613a06565b61392c81614481565b61392c81610bc0565b61392c613a4e82610bc0565b610bc0565b6000613a5e82614469565b613a688185610607565b9350613a788185602086016144d4565b9290920192915050565b61392c81614486565b6000613a9682614469565b613aa0818561446d565b9350613ab08185602086016144d4565b613ab981614504565b9093019392505050565b6000613ad0601f8361446d565b7f4e6f2061746f6d6963206571756976616c656e7420666f7220736f7572636500815260200192915050565b6000613b0960218361446d565b7f41746f6d6963207377617073206d75737420676f207468726f756768207355538152601160fa1b602082015260400192915050565b6000613b4c60358361446d565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613ba3601b8361446d565b7f4e656761746976652072617465206e6f7420737570706f727465640000000000815260200192915050565b6000613bdc60148361446d565b7306465782070726963652072657475726e656420360641b815260200192915050565b6000613c0c601b8361446d565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613c4560208361446d565b7f556e696e697469616c697a65642061746f6d696320747761702077696e646f77815260200192915050565b6000613c7e601d8361446d565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000815260200192915050565b6000613cb760328361446d565b7f41676772656761746f7220646563696d616c732073686f756c64206265206c6f815271776572206f7220657175616c20746f20323760701b602082015260400192915050565b6000613d0b60178361446d565b7f4e6f2061676772656761746f7220666f72206173736574000000000000000000815260200192915050565b6000613d44601e8361446d565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613d7d601a8361446d565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000613db6601183610607565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000613de3602f8361446d565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613e3460218361446d565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613e77601d8361446d565b7f4e6f2061746f6d6963206571756976616c656e7420666f722064657374000000815260200192915050565b6000613eb0601b8361446d565b7f6465782061676772656761746f72206164647265737320697320300000000000815260200192915050565b6000613ee9601d8361446d565b7f526573756c74206d7573742062652067726561746572207468616e2030000000815260200192915050565b6000613f22601983610607565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613f5b601b8361446d565b7f476976656e2041676772656761746f7220697320696e76616c69640000000000815260200192915050565b6000613f9460308361446d565b7f726f756e64496473206d757374206265207468652073616d65206c656e67746881526f2061732063757272656e63794b65797360801b602082015260400192915050565b6000613fe6601c8361446d565b7f4e6f2061676772656761746f722065786973747320666f72206b657900000000815260200192915050565b61392c816144c9565b61392c816144a9565b60006140308285613a42565b6020820191506140408284613a42565b5060200192915050565b60006116748284613a53565b600061406182613da9565b915061406d8284613a42565b50602001919050565b600061406182613f15565b602081016109e78284613932565b6040810161409d8285613923565b6116746020830184613a39565b604081016140b88285613932565b6116746020830184613932565b604081016140d38285613932565b6116746020830184614012565b6040810161409d8285613932565b608081016140fc8287613932565b6141096020830186613a39565b6141166040830185613932565b612fc66060830184613a39565b60208082528101611674818461393b565b602080825281016116748184613994565b6020808252810161167481846139e2565b6040808252810161416781856139e2565b90508181036020830152610bfe81846139e2565b6040808252810161418c81856139e2565b90506116746020830184613a30565b602081016109e78284613a30565b602081016109e78284613a39565b604081016140b88285613a39565b6040810161409d8285613a39565b606081016141e18286613a39565b6141ee6020830185613a39565b610bfe6040830184613932565b604081016142098285613a39565b8181036020830152610bfe8184613a8b565b602081016109e78284613a82565b602080825281016116748184613a8b565b6020808252810161060481613ac3565b6020808252810161060481613afc565b6020808252810161060481613b3f565b6020808252810161060481613b96565b6020808252810161060481613bcf565b6020808252810161060481613bff565b6020808252810161060481613c38565b6020808252810161060481613c71565b6020808252810161060481613caa565b6020808252810161060481613cfe565b6020808252810161060481613d37565b6020808252810161060481613d70565b6020808252810161060481613dd6565b6020808252810161060481613e27565b6020808252810161060481613e6a565b6020808252810161060481613ea3565b6020808252810161060481613edc565b6020808252810161060481613f4e565b6020808252810161060481613f87565b6020808252810161060481613fd9565b604081016143888285613a39565b6116746020830184613a30565b606081016143a38286613a39565b6143b06020830185613a30565b610bfe6040830184613a30565b606081016143cb8286613a39565b6143d86020830185613a39565b610bfe6040830184613a39565b608081016143f38287613a39565b6144006020830186613a39565b6141166040830185613a39565b602081016109e7828461401b565b60405181810167ffffffffffffffff8111828210171561443a57600080fd5b604052919050565b600067ffffffffffffffff82111561445957600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b600061060482614491565b151590565b600061060482614476565b6001600160a01b031690565b6001600160d81b031690565b60ff1690565b69ffffffffffffffffffff1690565b600061060482614486565b60006106048261449d565b60005b838110156144ef5781810151838201526020016144d7565b838111156144fe576000848401525b50505050565b601f01601f191690565b61451781614476565b811461452257600080fd5b50565b61451781614481565b61451781610bc0565b61451781614486565b614517816144a9565b614517816144af56fea365627a7a723158204b11a87c5980a85035dedab3c47a383ae08c8cfd7ca964f3a8a97f2cb814139e6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "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": "amount",
							"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": [
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "currencyKey",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "dexPriceAggregator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "atomicEquivalentForDexPricing",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "atomicExchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicTwapWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicMaxVolumePerBlock",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityConsiderationWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityUpdateThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeMaxDynamicFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeRounds",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeWeightDecay",
									"type": "uint256"
								}
							],
							"internalType": "struct IDirectIntegrationManager.ParameterIntegrationSettings",
							"name": "sourceSettings",
							"type": "tuple"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "currencyKey",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "dexPriceAggregator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "atomicEquivalentForDexPricing",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "atomicExchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicTwapWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicMaxVolumePerBlock",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityConsiderationWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityUpdateThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeMaxDynamicFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeRounds",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeWeightDecay",
									"type": "uint256"
								}
							],
							"internalType": "struct IDirectIntegrationManager.ParameterIntegrationSettings",
							"name": "destinationSettings",
							"type": "tuple"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "currencyKey",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "dexPriceAggregator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "atomicEquivalentForDexPricing",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "atomicExchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicTwapWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicMaxVolumePerBlock",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityConsiderationWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityUpdateThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeMaxDynamicFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeRounds",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeWeightDecay",
									"type": "uint256"
								}
							],
							"internalType": "struct IDirectIntegrationManager.ParameterIntegrationSettings",
							"name": "usdSettings",
							"type": "tuple"
						}
					],
					"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": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateWithSafetyChecks",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "broken",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "staleOrInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"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"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "currencyKey",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "dexPriceAggregator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "atomicEquivalentForDexPricing",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "atomicExchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicTwapWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicMaxVolumePerBlock",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityConsiderationWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityUpdateThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeMaxDynamicFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeRounds",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeWeightDecay",
									"type": "uint256"
								}
							],
							"internalType": "struct IDirectIntegrationManager.ParameterIntegrationSettings",
							"name": "settings",
							"type": "tuple"
						}
					],
					"name": "synthTooVolatileForAtomicExchange",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xb88a3675577a44cf3584747dfa9e4c8c1a29662913b08ea4dbb7c4c6d30ff852",
				"urls": [
					"bzz-raw://a488bcf545003f33473e27959d1e6832cc3e37337b6e20d6310996a4a46e9049",
					"dweb:/ipfs/QmUQod9pjCuUCqASk854QUJvQL68Lwiw4FBZfgYtBMmdaz"
				]
			},
			"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": "0xb88a3675577a44cf3584747dfa9e4c8c1a29662913b08ea4dbb7c4c6d30ff852",
						"urls": [
							"bzz-raw://a488bcf545003f33473e27959d1e6832cc3e37337b6e20d6310996a4a46e9049",
							"dweb:/ipfs/QmUQod9pjCuUCqASk854QUJvQL68Lwiw4FBZfgYtBMmdaz"
						]
					}
				},
				"version": 1
			}
		},
		"LegacyTokenState": {
			"bytecode": "608060405234801561001057600080fd5b5060405161050e38038061050e8339818101604052604081101561003357600080fd5b508051602091820151600080546001600160a01b038085166001600160a01b0319928316179092556002805492841692909116821790556040805191825251929391927f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03929181900390910190a1505061045c806100b26000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610155578063aefc4ccb1461015d578063b46310f614610165578063da46098c14610191578063dd62ed3e146101c75761009e565b806352f445ca146100a357806353a47bb7146100cb5780635b94db27146100ef57806370a082311461011557806379ba50971461014d575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b03166101f5565b005b6100d3610260565b604080516001600160a01b039092168252519081900360200190f35b6100c96004803603602081101561010557600080fd5b50356001600160a01b031661026f565b61013b6004803603602081101561012b57600080fd5b50356001600160a01b03166102da565b60408051918252519081900360200190f35b6100c96102ec565b6100d3610376565b6100d3610385565b6100c96004803603604081101561017b57600080fd5b506001600160a01b038135169060200135610394565b6100c9600480360360608110156101a757600080fd5b506001600160a01b038135811691602081013590911690604001356103c7565b61013b600480360360408110156101dd57600080fd5b506001600160a01b038135811691602001351661040a565b6000546001600160a01b0316331461020c57600080fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6000546001600160a01b0316331461028657600080fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60036020526000908152604090205481565b6001546001600160a01b0316331461030357600080fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6002546001600160a01b031633146103ab57600080fd5b6001600160a01b03909116600090815260036020526040902055565b6002546001600160a01b031633146103de57600080fd5b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b60046020908152600092835260408084209091529082529020548156fea265627a7a723158204d45d621e7fb068ff826044cd07cd4fc88976e9683de143e64f4b68c051e7fb364736f6c63430005100032",
			"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": "0x7d6645233a7bd71d9274f5c602672f50165ca54593c32412be3e7d5100f34aea",
				"urls": [
					"bzz-raw://23764a8ff1650ef82fecece37ac213be46a8ff947313e121ab7f2f09a6bb5efb",
					"dweb:/ipfs/QmXeqxfGmQM5ZFkRkWSw8PLPBszBLW6UbStPSFr9gAb9bU"
				]
			},
			"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": "0x7d6645233a7bd71d9274f5c602672f50165ca54593c32412be3e7d5100f34aea",
						"urls": [
							"bzz-raw://23764a8ff1650ef82fecece37ac213be46a8ff947313e121ab7f2f09a6bb5efb",
							"dweb:/ipfs/QmXeqxfGmQM5ZFkRkWSw8PLPBszBLW6UbStPSFr9gAb9bU"
						]
					}
				},
				"version": 1
			}
		},
		"ProxyERC20": {
			"bytecode": "608060405234801561001057600080fd5b50604051610f7f380380610f7f8339818101604052602081101561003357600080fd5b505180806001600160a01b038116610092576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505050610e83806100fc6000396000f3fe6080604052600436106100f35760003560e01c8063776d1a011161008a57806395d89b411161005957806395d89b4114610473578063a9059cbb14610488578063d4b83992146104c1578063dd62ed3e146104d6576100f3565b8063776d1a011461038157806379ba5097146103b45780638da5cb5b146103c9578063907dff97146103de576100f3565b806323b872dd116100c657806323b872dd146102af578063313ce567146102f257806353a47bb71461031d57806370a082311461034e576100f3565b806306fdde031461017c578063095ea7b3146102065780631627540c1461025357806318160ddd14610288575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e80610178573d82fd5b3d82f35b34801561018857600080fd5b50610191610511565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cb5781810151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061023f6004803603604081101561022957600080fd5b506001600160a01b038135169060200135610648565b604080519115158252519081900360200190f35b34801561025f57600080fd5b506102866004803603602081101561027657600080fd5b50356001600160a01b0316610736565b005b34801561029457600080fd5b5061029d610792565b60408051918252519081900360200190f35b3480156102bb57600080fd5b5061023f600480360360608110156102d257600080fd5b506001600160a01b03813581169160208101359091169060400135610808565b3480156102fe57600080fd5b506103076108ff565b6040805160ff9092168252519081900360200190f35b34801561032957600080fd5b50610332610944565b604080516001600160a01b039092168252519081900360200190f35b34801561035a57600080fd5b5061029d6004803603602081101561037157600080fd5b50356001600160a01b0316610953565b34801561038d57600080fd5b50610286600480360360208110156103a457600080fd5b50356001600160a01b03166109d6565b3480156103c057600080fd5b50610286610a32565b3480156103d557600080fd5b50610332610aee565b3480156103ea57600080fd5b50610286600480360360c081101561040157600080fd5b81019060208101813564010000000081111561041c57600080fd5b82018360208201111561042e57600080fd5b8035906020019184600183028401116401000000008311171561045057600080fd5b919350915080359060208101359060408101359060608101359060800135610afd565b34801561047f57600080fd5b50610191610c06565b34801561049457600080fd5b5061023f600480360360408110156104ab57600080fd5b506001600160a01b038135169060200135610c4b565b3480156104cd57600080fd5b50610332610d04565b3480156104e257600080fd5b5061029d600480360360408110156104f957600080fd5b506001600160a01b0381358116916020013516610d13565b600254604080516306fdde0360e01b815290516060926001600160a01b0316916306fdde03916004808301926000929190829003018186803b15801561055657600080fd5b505afa15801561056a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561059357600080fd5b81019080805160405193929190846401000000008211156105b357600080fd5b9083019060208201858111156105c857600080fd5b82516401000000008111828201881017156105e257600080fd5b82525081516020918201929091019080838360005b8381101561060f5781810151838201526020016105f7565b50505050905090810190601f16801561063c5780820380516001836020036101000a031916815260200191505b50604052505050905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b50506002546040805163095ea7b360e01b81526001600160a01b03888116600483015260248201889052915191909216935063095ea7b3925060448083019260209291908290030181600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b505050506040513d602081101561072b57600080fd5b506001949350505050565b61073e610d9f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d602081101561080157600080fd5b5051905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561085357600080fd5b505af1158015610867573d6000803e3d6000fd5b5050600254604080516323b872dd60e01b81526001600160a01b03898116600483015288811660248301526044820188905291519190921693506323b872dd925060648083019260209291908290030181600087803b1580156108c957600080fd5b505af11580156108dd573d6000803e3d6000fd5b505050506040513d60208110156108f357600080fd5b50600195945050505050565b6002546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b1580156107d757600080fd5b6001546001600160a01b031681565b600254604080516370a0823160e01b81526001600160a01b038481166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505192915050565b6109de610d9f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b03163314610a7b5760405162461bcd60e51b8152600401808060200182810382526035815260200180610deb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b03163314610b53576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a908490819084018382808284376000920191909152509293508992505081159050610bbd5760018114610bc85760028114610bd45760038114610be15760048114610bef57610bfa565b8260208301a0610bfa565b868360208401a1610bfa565b85878460208501a2610bfa565b8486888560208601a3610bfa565b838587898660208701a45b50505050505050505050565b600254604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b41916004808301926000929190829003018186803b15801561055657600080fd5b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b158015610c9657600080fd5b505af1158015610caa573d6000803e3d6000fd5b50506002546040805163a9059cbb60e01b81526001600160a01b03888116600483015260248201889052915191909216935063a9059cbb925060448083019260209291908290030181600087803b15801561070157600080fd5b6002546001600160a01b031681565b60025460408051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301529151600093929092169163dd62ed3e91604480820192602092909190829003018186803b158015610d6c57600080fd5b505afa158015610d80573d6000803e3d6000fd5b505050506040513d6020811015610d9657600080fd5b50519392505050565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040180806020018281038252602f815260200180610e20602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582024d3b7e63fd53cdc167662de76221f567126fde9de194390a2181613da7470c764736f6c63430005100032",
			"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": "0x1d46e255bcec9d874c1acbd3f2e57f27d3e607c49368f874e0677fbff53f8b07",
				"urls": [
					"bzz-raw://c38ba2aa89d5deeff6c6a7d0d5c3dbe03a4b147b35092ca304fa30b7d7ed5a8b",
					"dweb:/ipfs/QmeN2kZyCzRNRxcZyTCZehk5oJ5hEE1Uxii9KkGRHPNHoZ"
				]
			},
			"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": "0x1d46e255bcec9d874c1acbd3f2e57f27d3e607c49368f874e0677fbff53f8b07",
						"urls": [
							"bzz-raw://c38ba2aa89d5deeff6c6a7d0d5c3dbe03a4b147b35092ca304fa30b7d7ed5a8b",
							"dweb:/ipfs/QmeN2kZyCzRNRxcZyTCZehk5oJ5hEE1Uxii9KkGRHPNHoZ"
						]
					}
				},
				"version": 1
			}
		},
		"Synthetix": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200638438038062006384833981016040819052620000349162000315565b84848484848085856040518060400160405280601781526020017f53796e746865746978204e6574776f726b20546f6b656e000000000000000000815250604051806040016040528060038152602001620a69cb60eb1b81525086601289868160006001600160a01b0316816001600160a01b03161415620000d35760405162461bcd60e51b8152600401620000ca9062000463565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620001209184906200042b565b60405180910390a1506000546001600160a01b0316620001545760405162461bcd60e51b8152600401620000ca9062000451565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e90620001a19083906200041b565b60405180910390a150600480546001600160a01b0319166001600160a01b0388161790558451620001da90600590602088019062000243565b508351620001f090600690602087019062000243565b50506007919091556008805460ff191660ff90921691909117610100600160a81b0319166101006001600160a01b0397909716969096029590951790945550620004e19c50505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028657805160ff1916838001178555620002b6565b82800160010185558215620002b6579182015b82811115620002b657825182559160200191906001019062000299565b50620002c4929150620002c8565b5090565b620002e591905b80821115620002c45760008155600101620002cf565b90565b8051620002f581620004b1565b92915050565b8051620002f581620004cb565b8051620002f581620004d6565b600080600080600060a086880312156200032e57600080fd5b60006200033c8888620002e8565b95505060206200034f88828901620002fb565b94505060406200036288828901620002e8565b9350506060620003758882890162000308565b92505060806200038888828901620002e8565b9150509295509295909350565b620003a081620004a4565b82525050565b620003a0816200047e565b6000620003c060118362000475565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620003ef60198362000475565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60208101620002f5828462000395565b604081016200043b828562000395565b6200044a6020830184620003a6565b9392505050565b60208082528101620002f581620003b1565b60208082528101620002f581620003e0565b90815260200190565b6000620002f58262000498565b6000620002f5826200047e565b6001600160a01b031690565b6000620002f5826200048b565b620004bc816200047e565b8114620004c857600080fd5b50565b620004bc816200048b565b620004bc81620002e5565b615e9380620004f16000396000f3fe608060405234801561001057600080fd5b50600436106104495760003560e01c80636c00f310116102415780639f7698071161013b578063d37c4d8b116100c3578063e8e09b8b11610087578063e8e09b8b146108f3578063e90dd9e214610906578063ec5568891461090e578063edef719a146106b0578063ee52a2f31461091657610449565b8063d37c4d8b146108aa578063d67bdd25146108bd578063d8a1f76f146108c5578063dbf63340146108d8578063dd62ed3e146108e057610449565b8063ace88afd1161010a578063ace88afd14610856578063af086c7e14610869578063bc67f83214610871578063c2bf388014610884578063c836fa0a1461089757610449565b80639f7698071461080a578063a311c7c21461081d578063a5fdc5de14610830578063a9059cbb1461084357610449565b806384358843116101c95780639324cac71161018d5780639324cac7146107cc57806395d89b41146107d457806397107d6d146107dc5780639741fb22146107ef578063987757dd146107f757610449565b80638435884314610775578063899ffef4146107965780638a2900141461079e5780638da5cb5b146107b157806391e56b68146107b957610449565b806372cb051f1161021057806372cb051f1461072a578063741853601461073f57806379ba509714610747578063835e119c1461074f57806383d625d41461076257610449565b80636c00f310146106de5780636f01a986146106f1578063704e7b851461070457806370a082311461071757610449565b80632c955fa71161035257806344b3e923116102da5780635e22846a1161029e5780635e22846a14610695578063614d08f8146106a8578063666ed4f1146106b05780636ac0bf9c146106c35780636b76222f146106d657610449565b806344b3e9231461064a5780634e99bda91461065d578063528c7efb1461066557806353a47bb71461066d5780635af090ef1461068257610449565b806330ead7601161032157806330ead760146105f6578063313ce56714610609578063320223db1461061157806332608039146106245780633e89b9e51461063757610449565b80632c955fa7146105a85780632d3169eb146105bb5780632e0f2625146105ce5780632f7206ce146105e357610449565b806316b2213f116103d557806323b872dd116103a457806323b872dd1461055f5780632621716f14610572578063295da87d146105855780632a905318146105985780632af64bd3146105a057610449565b806316b2213f1461052957806318160ddd1461053c57806318821400146105445780631fce304d1461054c57610449565b8063095ea7b31161041c578063095ea7b3146104ab5780630e30963c146104cb5780631137aedf146104ec5780631249c58b1461050e5780631627540c1461051657610449565b806303fbc5471461044e57806304f3bcec1461045857806305b3c1c91461047657806306fdde0314610496575b600080fd5b610456610929565b005b610460610b16565b60405161046d9190615aeb565b60405180910390f35b6104896104843660046146ea565b610b2a565b60405161046d919061594c565b61049e610bb7565b60405161046d9190615af9565b6104be6104b93660046147ad565b610c45565b60405161046d919061593e565b6104de6104d9366004614a00565b610cd2565b60405161046d929190615ce4565b6104ff6104fa3660046146ea565b610de1565b60405161046d939291906159f0565b6104be610e76565b6104566105243660046146ea565b611230565b6104896105373660046146ea565b61128e565b6104896112c3565b61049e6112c9565b6104be61055a3660046149c4565b611302565b6104be61056d366004614760565b611397565b6104896105803660046146ea565b6113d6565b6104566105933660046149c4565b6115b7565b61049e611638565b6104be611657565b6104566105b63660046146ea565b611773565b6104566105c9366004614a00565b6117bf565b6105d6611875565b60405161046d9190615d27565b6104566105f13660046148f7565b61187a565b610489610604366004614a43565b61193c565b6105d66119fa565b61045661061f3660046146ea565b611a03565b6104606106323660046149c4565b611a4f565b6104896106453660046149c4565b611ad4565b610489610658366004614ab8565b611b0c565b6104be611bc4565b6104be611c43565b610675611e23565b60405161046d91906156e5565b610489610690366004614a43565b611e32565b6104be6106a33660046146ea565b611e92565b610489611ebe565b6104566106be3660046147ad565b611ece565b6104896106d13660046146ea565b611eda565b610456611fe2565b6104566106ec3660046148f7565b61208d565b6104566106ff3660046147dd565b6120e0565b6104be6107123660046147ad565b612199565b6104896107253660046146ea565b6121c4565b6107326121f6565b60405161046d919061592d565b610456612274565b6104566123c6565b61046061075d3660046149c4565b612462565b6104896107703660046149c4565b612497565b6107886107833660046146ea565b6124cf565b60405161046d929190615976565b610732612804565b6104566107ac3660046149c4565b612898565b6106756128e2565b6104896107c7366004614870565b6128f1565b6104896129b1565b61049e6129bc565b6104566107ea3660046146ea565b612a17565b610456612a6a565b6104ff6108053660046149c4565b612ae3565b610456610818366004614b2d565b612b59565b61048961082b3660046146ea565b612b85565b61048961083e3660046146ea565b612bba565b6104be6108513660046147ad565b612bef565b6104566108643660046147dd565b612c39565b610456612c86565b61045661087f3660046146ea565b612ccf565b6104566108923660046147ad565b612cf9565b6104896108a536600461480f565b612d7d565b6104896108b83660046147ad565b612e3b565b610675612ec2565b6104566108d33660046149c4565b612ed1565b610489612ed9565b6104896108ee366004614726565b612f53565b6104566109013660046147ad565b612f87565b610460612fd5565b610460612fe4565b610489610924366004614a22565b612ff3565b6109316130af565b60085460405163dacb2d0160e01b815260009161010090046001600160a01b03169063dacb2d019061096590600401615cc6565b60206040518083038186803b15801561097d57600080fd5b505afa158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109b59190810190614708565b60085460405163dacb2d0160e01b81529192506000916101009091046001600160a01b03169063dacb2d01906109ed90600401615c3e565b60206040518083038186803b158015610a0557600080fd5b505afa158015610a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a3d9190810190614708565b9050816001600160a01b0316816001600160a01b03161415610a7a5760405162461bcd60e51b8152600401610a7190615cb6565b60405180910390fd5b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a0823191610aac918791016156e5565b60206040518083038186803b158015610ac457600080fd5b505afa158015610ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610afc91908101906149e2565b90508015610b1157610b0f8383836130d9565b505b505050565b60085461010090046001600160a01b031681565b6000610b346132b5565b6001600160a01b03166305b3c1c9836040518263ffffffff1660e01b8152600401610b5f91906156e5565b60206040518083038186803b158015610b7757600080fd5b505afa158015610b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610baf91908101906149e2565b90505b919050565b6005805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c3d5780601f10610c1257610100808354040283529160200191610c3d565b820191906000526020600020905b815481529060010190602001808311610c2057829003601f168201915b505050505081565b6000610c4f6132c9565b60035460048054604051633691826360e21b81526001600160a01b03938416939091169163da46098c91610c89918591899189910161584b565b600060405180830381600087803b158015610ca357600080fd5b505af1158015610cb7573d6000803e3d6000fd5b50505050610cc6818585613308565b60019150505b92915050565b6000808584610ce18282613388565b610ce96132c9565b610cf16133e9565b6001600160a01b0316634f8633d2600360009054906101000a90046001600160a01b0316600360009054906101000a90046001600160a01b03168b8b8b600360009054906101000a90046001600160a01b03166001600360009054906101000a90046001600160a01b03168e6040518a63ffffffff1660e01b8152600401610d81999897969594939291906157fb565b6040805180830381600087803b158015610d9a57600080fd5b505af1158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dd29190810190614b99565b93509350505094509492505050565b6000806000610dee6132b5565b6001600160a01b0316631137aedf856040518263ffffffff1660e01b8152600401610e1991906156e5565b60606040518083038186803b158015610e3157600080fd5b505afa158015610e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e699190810190614bc9565b9250925092509193909250565b6000610e80613400565b6000610e8a613454565b6001600160a01b03161415610eb15760405162461bcd60e51b8152600401610a7190615bf1565b6000610ebb613475565b90506000610ec7613454565b90506000826001600160a01b031663cc5c095c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0457600080fd5b505afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f3c91908101906149e2565b905060008111610f5e5760405162461bcd60e51b8152600401610a7190615c89565b610f6a60003083613491565b604051637e7961d760e01b81526000906001600160a01b03851690637e7961d790610f9990859060040161594c565b602060405180830381600087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610feb91908101906149e2565b90506000610fff838363ffffffff6134d416565b600480546040516370a0823160e01b81529293506001600160a01b03169163b46310f691879161109b91869186916370a082319161103f918791016156e5565b60206040518083038186803b15801561105757600080fd5b505afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061108f91908101906149e2565b9063ffffffff6134fc16565b6040518363ffffffff1660e01b81526004016110b89291906158c3565b600060405180830381600087803b1580156110d257600080fd5b505af11580156110e6573d6000803e3d6000fd5b505050506110f5308583613491565b604051630b32e9c760e31b81526001600160a01b038516906359974e389061112190849060040161594c565b602060405180830381600087803b15801561113b57600080fd5b505af115801561114f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061117391908101906149a6565b50600480546040516370a0823160e01b81526001600160a01b039091169163b46310f69133916111b391879186916370a082319161103f918791016156f3565b6040518363ffffffff1660e01b81526004016111d0929190615701565b600060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b5050505061120d303384613491565b600754611220908463ffffffff6134fc16565b6007555060019450505050505b90565b6112386130af565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906112839083906156e5565b60405180910390a150565b60006112986132b5565b6001600160a01b03166316b2213f836040518263ffffffff1660e01b8152600401610b5f91906156e5565b60075481565b6040518060400160405280601781526020017f53796e746865746978204e6574776f726b20546f6b656e00000000000000000081525081565b60008061130d6133e9565b6003546040516301670a7b60e21b81526001600160a01b039283169263059c29ec926113409291169087906004016158c3565b60206040518083038186803b15801561135857600080fd5b505afa15801561136c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061139091908101906149e2565b1192915050565b60006113a1613521565b6113a9613576565b6113b384836135b6565b506003546113cc906001600160a01b0316858585613887565b90505b9392505050565b6000806113e1613933565b6001600160a01b031663204b676a846040518263ffffffff1660e01b815260040161140c91906156e5565b60206040518083038186803b15801561142457600080fd5b505afa158015611438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061145c91908101906149e2565b905060006114686145b5565b60005b8381101561159e5761147b613933565b6001600160a01b031663ae58254987836040518363ffffffff1660e01b81526004016114a89291906158c3565b60206040518083038186803b1580156114c057600080fd5b505afa1580156114d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114f891908101906149e2565b9250611502613933565b6001600160a01b03166345626bd687856040518363ffffffff1660e01b815260040161152f9291906158c3565b604080518083038186803b15801561154657600080fd5b505afa15801561155a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061157e9190810190614b4b565b602081015190925015611596579350610bb292505050565b60010161146b565b5060405162461bcd60e51b8152600401610a7190615b64565b6115bf613400565b6115c76132c9565b6115cf6132b5565b60035460405163b06e8c6560e01b81526001600160a01b039283169263b06e8c65926116029291169085906004016158c3565b600060405180830381600087803b15801561161c57600080fd5b505af1158015611630573d6000803e3d6000fd5b505050505b50565b604051806040016040528060038152602001620a69cb60eb1b81525081565b60006060611663612804565b905060005b815181101561176a57600082828151811061167f57fe5b602090810291909101810151600081815260099092526040918290205460085492516321f8a72160e01b81529193506001600160a01b0390811692610100900416906321f8a721906116d590859060040161594c565b60206040518083038186803b1580156116ed57600080fd5b505afa158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117259190810190614708565b6001600160a01b031614158061175057506000818152600960205260409020546001600160a01b0316155b15611761576000935050505061122d565b50600101611668565b50600191505090565b61177b613400565b6117836132c9565b61178b6132b5565b60035460405163159fa0d560e11b81526001600160a01b0392831692632b3f41aa926116029286929091169060040161571c565b6117c761394f565b6002546040516001600160a01b039091169063907dff97906117f1908690869086906020016159f0565b604051602081830303815290604052600260405161180e9061566d565b6040519081900381206001600160e01b031960e086901b16825261183d9392918a906000908190600401615a6a565b600060405180830381600087803b15801561185757600080fd5b505af115801561186b573d6000803e3d6000fd5b5050505050505050565b601281565b61188261394f565b6002546040516001600160a01b039091169063907dff97906118b090889088908890889088906020016159a4565b60405160208183030381529060405260026040516118cd90615657565b60405180910390206118de8b613987565b6000806040518763ffffffff1660e01b815260040161190296959493929190615a6a565b600060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b50505050505050505050565b6000858461194a8282613388565b6119526132c9565b61195a6133e9565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d29261199c9291169081908d908d908d9084906000908f908f906004016157fb565b6040805180830381600087803b1580156119b557600080fd5b505af11580156119c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119ed9190810190614b99565b5098975050505050505050565b60085460ff1681565b611a0b613400565b611a136132c9565b611a1b6132b5565b60035460405163fd864ccf60e01b81526001600160a01b039283169263fd864ccf926116029286929091169060040161571c565b6000611a596132b5565b6001600160a01b03166332608039836040518263ffffffff1660e01b8152600401611a84919061594c565b60206040518083038186803b158015611a9c57600080fd5b505afa158015611ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610baf9190810190614b0f565b6000611ade6132b5565b6001600160a01b0316637b1001b78360016040518363ffffffff1660e01b8152600401610b5f929190615968565b60008584611b1a8282613388565b611b226132c9565b611b2a6133e9565b60035460405162674ed160e71b81526001600160a01b03928316926333a7688092611b66929116908c908c908c9084908d908d906004016158d1565b602060405180830381600087803b158015611b8057600080fd5b505af1158015611b94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611bb891908101906149e2565b98975050505050505050565b6000611bce6132b5565b6001600160a01b0316634e99bda96040518163ffffffff1660e01b815260040160206040518083038186803b158015611c0657600080fd5b505afa158015611c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c3e91908101906149a6565b905090565b6000611c4d613576565b611c556132c9565b6003546001600160a01b0316611c69613993565b6001600160a01b031663c00007b0826040518263ffffffff1660e01b8152600401611c9491906156e5565b600060405180830381600087803b158015611cae57600080fd5b505af1158015611cc2573d6000803e3d6000fd5b50505050600080611cd16132b5565b6001600160a01b03166372c658168460016040518363ffffffff1660e01b8152600401611cff9291906158a8565b606060405180830381600087803b158015611d1957600080fd5b505af1158015611d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d519190810190614bc9565b509150915060008111611d765760405162461bcd60e51b8152600401610a7190615c6c565b611d82838383866139b2565b6000611d9684611d90613993565b85613a2e565b905080611db55760405162461bcd60e51b8152600401610a7190615c11565b611dbd613993565b6001600160a01b0316633c6b16ab846040518263ffffffff1660e01b8152600401611de8919061594c565b600060405180830381600087803b158015611e0257600080fd5b505af1158015611e16573d6000803e3d6000fd5b5092965050505050505090565b6001546001600160a01b031681565b60008584611e408282613388565b611e486132c9565b611e506133e9565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d29261199c9291169081908d908d908d9032906000908f908f90600401615775565b6000611e9c613576565b611ea46132c9565b600354610baf9083906000906001600160a01b0316613a3b565b680a6f2dce8d0cae8d2f60bb1b81565b611ed6613e3d565b5050565b6000611ee46132b5565b600480546040516370a0823160e01b81526001600160a01b0393841693636bed0415938793909116916370a0823191611f1f918591016156e5565b60206040518083038186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f6f91908101906149e2565b6040518363ffffffff1660e01b8152600401611f8c9291906158c3565b604080518083038186803b158015611fa357600080fd5b505afa158015611fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611fdb9190810190614b69565b5092915050565b611fea6130af565b6004546000906001600160a01b03166370a08231612006613e55565b6040518263ffffffff1660e01b815260040161202291906156e5565b60206040518083038186803b15801561203a57600080fd5b505afa15801561204e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061207291908101906149e2565b9050611ed661207f613e55565b612087613933565b836130d9565b61209561394f565b6002546040516001600160a01b039091169063907dff97906120c390889088908890889088906020016159a4565b60405160208183030381529060405260026040516118cd90615698565b6120e861394f565b6002546040516001600160a01b039091169063907dff97906121109085908590602001615976565b604051602081830303815290604052600260405161212d906156ae565b604051809103902061213e88613987565b6000806040518763ffffffff1660e01b815260040161216296959493929190615a6a565b600060405180830381600087803b15801561217c57600080fd5b505af1158015612190573d6000803e3d6000fd5b50505050505050565b60006121a3613576565b6121ab6132c9565b6003546113cf90849084906001600160a01b0316613a3b565b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a0823191610b5f918691016156e5565b60606122006132b5565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561223857600080fd5b505afa15801561224c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c3e9190810190614971565b606061227e612804565b905060005b8151811015611ed657600082828151811061229a57fe5b602002602001015190506000600860019054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016122dc91906156cf565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401612308929190615984565b60206040518083038186803b15801561232057600080fd5b505afa158015612334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123589190810190614708565b6000838152600960205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906123b4908490849061595a565b60405180910390a15050600101612283565b6001546001600160a01b031633146123f05760405162461bcd60e51b8152600401610a7190615b27565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92612433926001600160a01b039182169291169061571c565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600061246c6132b5565b6001600160a01b031663835e119c836040518263ffffffff1660e01b8152600401611a84919061594c565b60006124a16132b5565b6001600160a01b0316637b1001b78360006040518363ffffffff1660e01b8152600401610b5f929190615968565b6000806124da613576565b6008546040516321f8a72160e01b815260009161010090046001600160a01b0316906321f8a721906125299075446562744d69677261746f724f6e457468657265756d60501b9060040161594c565b60206040518083038186803b15801561254157600080fd5b505afa158015612555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125799190810190614708565b9050336001600160a01b038216148061263557506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a721906125d0906b131959d858de53585c9ad95d60a21b9060040161594c565b60206040518083038186803b1580156125e857600080fd5b505afa1580156125fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126209190810190614708565b6001600160a01b0316336001600160a01b0316145b6126515760405162461bcd60e51b8152600401610a7190615c21565b600480546040516370a0823160e01b81526001600160a01b03909116916370a0823191612680918891016156e5565b60206040518083038186803b15801561269857600080fd5b505afa1580156126ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126d091908101906149e2565b915081156127065760006126e5853385613a2e565b9050806127045760405162461bcd60e51b8152600401610a7190615bb1565b505b61270e613933565b6001600160a01b031663326a3cfb856040518263ffffffff1660e01b815260040161273991906156e5565b60206040518083038186803b15801561275157600080fd5b505afa158015612765573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061278991908101906149e2565b925082156127fe57612799613933565b6001600160a01b031663de065f6785338660006040518563ffffffff1660e01b81526004016127cb9493929190615737565b600060405180830381600087803b1580156127e557600080fd5b505af11580156127f9573d6000803e3d6000fd5b505050505b50915091565b60608061280f613e6f565b6040805160028082526060808301845293945090916020830190803883390190505090506b526577617264457363726f7760a01b8160008151811061285057fe5b6020026020010181815250506d537570706c795363686564756c6560901b8160018151811061287b57fe5b6020026020010181815250506128918282613fb8565b9250505090565b6128a0613400565b6128a86132c9565b6128b06132b5565b6003546040516285c0d160e31b81526001600160a01b039283169263042e0688926116029291169085906004016158c3565b6000546001600160a01b031681565b600085846128ff8282613388565b6129076132c9565b61290f6133e9565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d292612952928e92909116908d908d908d9085906000908f908f906004016157fb565b6040805180830381600087803b15801561296b57600080fd5b505af115801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129a39190810190614b99565b509998505050505050505050565b631cd554d160e21b81565b6006805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c3d5780601f10610c1257610100808354040283529160200191610c3d565b612a1f6130af565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e906112839083906156f3565b612a72613400565b612a7a6132c9565b612a826132b5565b6003546040516324beb82560e11b81526001600160a01b039283169263497d704a92612ab3929116906004016156e5565b600060405180830381600087803b158015612acd57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b565b6000806000612af06132c9565b612af86133e9565b6003546040516306c5a00b60e21b81526001600160a01b0392831692631b16802c92612b2b9291169088906004016158c3565b606060405180830381600087803b158015612b4557600080fd5b505af1158015610e45573d6000803e3d6000fd5b612b6161406d565b600480546001600160a01b0319166001600160a01b038316179055611635816140db565b6000612b8f6132b5565b6001600160a01b031663a311c7c2836040518263ffffffff1660e01b8152600401610b5f91906156e5565b6000612bc46132b5565b6001600160a01b031663a5fdc5de836040518263ffffffff1660e01b8152600401610b5f91906156e5565b6000612bf9613521565b612c01613576565b600354612c17906001600160a01b0316836135b6565b50600354612c2f906001600160a01b03168484613a2e565b5060019392505050565b612c4161394f565b6002546040516001600160a01b039091169063907dff9790612c699085908590602001615976565b604051602081830303815290604052600260405161212d90615662565b612c8e613400565b612c966132c9565b612c9e6132b5565b60035460405163644bb89960e11b81526001600160a01b039283169263c897713292612ab3929116906004016156e5565b612cd761414d565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b612d01613400565b612d096132c9565b612d116132b5565b600354604051632694552d60e21b81526001600160a01b0392831692639a5154b492612d4792879290911690869060040161584b565b600060405180830381600087803b158015612d6157600080fd5b505af1158015612d75573d6000803e3d6000fd5b505050505050565b60008382612d8b8282613388565b612d936132c9565b612d9b6133e9565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d292612dde928c92909116908b908b908b908590600090829082906004016157fb565b6040805180830381600087803b158015612df757600080fd5b505af1158015612e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e2f9190810190614b99565b50979650505050505050565b6000612e456132b5565b6001600160a01b031663d37c4d8b84846040518363ffffffff1660e01b8152600401612e729291906158c3565b60206040518083038186803b158015612e8a57600080fd5b505afa158015612e9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113cf91908101906149e2565b6003546001600160a01b031681565b611635613e3d565b6000612ee36132b5565b6001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1b57600080fd5b505afa158015612f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c3e91908101906149e2565b60048054604051636eb1769f60e11b81526000926001600160a01b039092169163dd62ed3e91612e7291879187910161571c565b612f8f613400565b612f976132c9565b612f9f6132b5565b60035460405163227635b160e11b81526001600160a01b03928316926344ec6b6292612d4792879290911690869060040161584b565b6004546001600160a01b031681565b6002546001600160a01b031681565b600083826130018282613388565b6130096132c9565b6130116133e9565b6003546040516327c319e960e11b81526001600160a01b0392831692634f8633d2926130539291169081908b908b908b908490600090829082906004016157fb565b6040805180830381600087803b15801561306c57600080fd5b505af1158015613080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130a49190810190614b99565b509695505050505050565b6000546001600160a01b03163314612ae15760405162461bcd60e51b8152600401610a7190615c01565b60006001600160a01b038316158015906130fc57506001600160a01b0383163014155b801561311657506002546001600160a01b03848116911614155b6131325760405162461bcd60e51b8152600401610a7190615b0a565b600480546040516370a0823160e01b81526001600160a01b039091169163b46310f69187916131cd91879186916370a0823191613171918791016156e5565b60206040518083038186803b15801561318957600080fd5b505afa15801561319d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131c191908101906149e2565b9063ffffffff6134d416565b6040518363ffffffff1660e01b81526004016131ea9291906158c3565b600060405180830381600087803b15801561320457600080fd5b505af1158015613218573d6000803e3d6000fd5b5050600480546040516370a0823160e01b81526001600160a01b03909116935063b46310f69250869161325b91879186916370a082319161103f918791016156e5565b6040518363ffffffff1660e01b81526004016132789291906158c3565b600060405180830381600087803b15801561329257600080fd5b505af11580156132a6573d6000803e3d6000fd5b50505050612c2f848484613491565b6000611c3e6524b9b9bab2b960d11b614177565b6002546001600160a01b031633148015906132ef57506003546001600160a01b03163314155b15612ae157600380546001600160a01b03191633179055565b6002546040516001600160a01b039091169063907dff979061332e90849060200161594c565b604051602081830303815290604052600360405161334b906156a3565b604051809103902061335c88613987565b61336588613987565b60006040518763ffffffff1660e01b815260040161216296959493929190615aa4565b6133906141d4565b6001600160a01b0316631ce00ba283836040518363ffffffff1660e01b81526004016133bd929190615976565b60006040518083038186803b1580156133d557600080fd5b505afa158015612d75573d6000803e3d6000fd5b6000611c3e6822bc31b430b733b2b960b91b614177565b6134086141d4565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561344057600080fd5b505afa158015610b0f573d6000803e3d6000fd5b6000611c3e722932bbb0b93239a234b9ba3934b13aba34b7b760691b614177565b6000611c3e6d537570706c795363686564756c6560901b614177565b6002546040516001600160a01b039091169063907dff97906134b790849060200161594c565b604051602081830303815290604052600360405161334b906156da565b6000828211156134f65760405162461bcd60e51b8152600401610a7190615ba1565b50900390565b6000828201838110156113cf5760405162461bcd60e51b8152600401610a7190615b74565b6002546001600160a01b031633141561353957612ae1565b613542336141ee565b1561355e57600380546001600160a01b03191633179055612ae1565b60405162461bcd60e51b8152600401610a7190615c99565b61357e6141d4565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561344057600080fd5b6008546040516321f8a72160e01b815260009182916101009091046001600160a01b0316906321f8a721906135fe906b131959d858de53585c9ad95d60a21b9060040161594c565b60206040518083038186803b15801561361657600080fd5b505afa15801561362a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061364e9190810190614708565b6003549091506001600160a01b03161580159061367857506003546001600160a01b038281169116145b806136945750806001600160a01b0316846001600160a01b0316145b156136a3576001915050610ccc565b60006136ad6132b5565b6001600160a01b031663d37c4d8b86631cd554d160e21b6040518363ffffffff1660e01b81526004016136e19291906158c3565b60206040518083038186803b1580156136f957600080fd5b505afa15801561370d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061373191908101906149e2565b1115610cc6576000806137426132b5565b600480546040516370a0823160e01b81526001600160a01b0393841693636bed0415938b93909116916370a082319161377d918591016156e5565b60206040518083038186803b15801561379557600080fd5b505afa1580156137a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137cd91908101906149e2565b6040518363ffffffff1660e01b81526004016137ea9291906158c3565b604080518083038186803b15801561380157600080fd5b505afa158015613815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506138399190810190614b69565b915091508185111561385d5760405162461bcd60e51b8152600401610a7190615bd1565b801561387b5760405162461bcd60e51b8152600401610a7190615be1565b50600195945050505050565b60048054604051636eb1769f60e11b81526000926001600160a01b039092169163da46098c91879189916138cd918891879163dd62ed3e9161317191889188910161571c565b6040518463ffffffff1660e01b81526004016138eb9392919061584b565b600060405180830381600087803b15801561390557600080fd5b505af1158015613919573d6000803e3d6000fd5b505050506139288484846130d9565b90505b949350505050565b6000611c3e6d2932bbb0b93222b9b1b937bbab1960911b614177565b6139576133e9565b6001600160a01b0316336001600160a01b031614612ae15760405162461bcd60e51b8152600401610a7190615b54565b6001600160a01b031690565b6000611c3e704c697175696461746f725265776172647360781b614177565b6002546040516001600160a01b039091169063907dff97906139dc90869086908690602001615cff565b60405160208183030381529060405260026040516139f9906156c4565b6040518091039020613a0a89613987565b6000806040518763ffffffff1660e01b815260040161183d96959493929190615a6a565b60006113cc8484846130d9565b6000613a45613993565b6001600160a01b031663c00007b0856040518263ffffffff1660e01b8152600401613a7091906156e5565b600060405180830381600087803b158015613a8a57600080fd5b505af1158015613a9e573d6000803e3d6000fd5b505050506000806000613aaf6132b5565b6001600160a01b03166372c658168860006040518363ffffffff1660e01b8152600401613add9291906158a8565b606060405180830381600087803b158015613af757600080fd5b505af1158015613b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613b2f9190810190614bc9565b919450925090508015613ba857613b44613933565b6001600160a01b031663de065f678889848a6040518563ffffffff1660e01b8152600401613b759493929190615873565b600060405180830381600087803b158015613b8f57600080fd5b505af1158015613ba3573d6000803e3d6000fd5b505050505b613bb4878484886139b2565b6000613bbe61459d565b6001600160a01b0316638074b3726040518163ffffffff1660e01b815260040160206040518083038186803b158015613bf657600080fd5b505afa158015613c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613c2e91908101906149e2565b90506000613c3a61459d565b6001600160a01b03166331e4e0306040518163ffffffff1660e01b815260040160206040518083038186803b158015613c7257600080fd5b505afa158015613c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613caa91908101906149e2565b90506000613cb661459d565b6001600160a01b0316635616c9578b6040518263ffffffff1660e01b8152600401613ce191906156e5565b60206040518083038186803b158015613cf957600080fd5b505afa158015613d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613d319190810190614708565b90506000613d408b8386613a2e565b905080613d5f5760405162461bcd60e51b8152600401610a7190615b84565b6000613d6c8c8b86613a2e565b905080613d8b5760405162461bcd60e51b8152600401610a7190615c5c565b8715613e2b576000613da58d613d9f613993565b8b613a2e565b905080613dc45760405162461bcd60e51b8152600401610a7190615c11565b613dcc613993565b6001600160a01b0316633c6b16ab8a6040518263ffffffff1660e01b8152600401613df7919061594c565b600060405180830381600087803b158015613e1157600080fd5b505af1158015613e25573d6000803e3d6000fd5b50505050505b5060019b9a5050505050505050505050565b60405162461bcd60e51b8152600401610a7190615bc1565b6000611c3e6b526577617264457363726f7760a01b614177565b60408051600780825261010082019092526060916020820160e0803883390190505090506b53797374656d53746174757360a01b81600081518110613eb057fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110613ed657fe5b6020026020010181815250506524b9b9bab2b960d11b81600281518110613ef957fe5b602002602001018181525050722932bbb0b93239a234b9ba3934b13aba34b7b760691b81600381518110613f2957fe5b602002602001018181525050704c697175696461746f725265776172647360781b81600481518110613f5757fe5b602002602001018181525050692634b8bab4b230ba37b960b11b81600581518110613f7e57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600681518110613fa957fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015613fe8578160200160208202803883390190505b50905060005b835181101561402a5783818151811061400357fe5b602002602001015182828151811061401757fe5b6020908102919091010152600101613fee565b5060005b8251811015611fdb5782818151811061404357fe5b602002602001015182828651018151811061405a57fe5b602090810291909101015260010161402e565b6002546001600160a01b0316331480159061409357506003546001600160a01b03163314155b156140ab57600380546001600160a01b031916331790555b6000546003546001600160a01b03908116911614612ae15760405162461bcd60e51b8152600401610a7190615b44565b6002546040516001600160a01b039091169063907dff97906141019084906020016156e5565b604051602081830303815290604052600160405161411e906156b9565b6040519081900381206001600160e01b031960e086901b16825261160293929160009081908190600401615a0b565b6002546001600160a01b03163314612ae15760405162461bcd60e51b8152600401610a7190615c99565b60008181526009602090815260408083205490516001600160a01b0390911691821515916141a791869101615678565b60405160208183030381529060405290611fdb5760405162461bcd60e51b8152600401610a719190615af9565b6000611c3e6b53797374656d53746174757360a01b614177565b6008546040516321f8a72160e01b815260009161010090046001600160a01b0316906321f8a7219061422290600401615ca9565b60206040518083038186803b15801561423a57600080fd5b505afa15801561424e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506142729190810190614708565b6001600160a01b0316826001600160a01b0316148061432357506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a721906142be90600401615c31565b60206040518083038186803b1580156142d657600080fd5b505afa1580156142ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061430e9190810190614708565b6001600160a01b0316826001600160a01b0316145b806143c057506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a7219061435b90600401615b1a565b60206040518083038186803b15801561437357600080fd5b505afa158015614387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143ab9190810190614708565b6001600160a01b0316826001600160a01b0316145b8061445d57506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a721906143f890600401615b94565b60206040518083038186803b15801561441057600080fd5b505afa158015614424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506144489190810190614708565b6001600160a01b0316826001600160a01b0316145b806144fa57506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a7219061449590600401615b37565b60206040518083038186803b1580156144ad57600080fd5b505afa1580156144c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506144e59190810190614708565b6001600160a01b0316826001600160a01b0316145b80610baf57506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a7219061453290600401615c7c565b60206040518083038186803b15801561454a57600080fd5b505afa15801561455e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506145829190810190614708565b6001600160a01b0316826001600160a01b0316149050919050565b6000611c3e692634b8bab4b230ba37b960b11b614177565b604080518082019091526000808252602082015290565b8035610ccc81615e18565b8051610ccc81615e18565b600082601f8301126145f357600080fd5b815161460661460182615d5c565b615d35565b9150818183526020840193506020810190508385602084028201111561462b57600080fd5b60005b8381101561465757816146418882614677565b845250602092830192919091019060010161462e565b5050505092915050565b8051610ccc81615e2c565b8035610ccc81615e35565b8051610ccc81615e35565b8051610ccc81615e3e565b8035610ccc81615e3e565b6000604082840312156146aa57600080fd5b6146b46040615d35565b905060006146c284846146df565b82525060206146d384848301614677565b60208301525092915050565b8051610ccc81615e47565b6000602082840312156146fc57600080fd5b600061392b84846145cc565b60006020828403121561471a57600080fd5b600061392b84846145d7565b6000806040838503121561473957600080fd5b600061474585856145cc565b9250506020614756858286016145cc565b9150509250929050565b60008060006060848603121561477557600080fd5b600061478186866145cc565b9350506020614792868287016145cc565b92505060406147a38682870161466c565b9150509250925092565b600080604083850312156147c057600080fd5b60006147cc85856145cc565b92505060206147568582860161466c565b6000806000606084860312156147f257600080fd5b60006147fe86866145cc565b93505060206147928682870161466c565b6000806000806080858703121561482557600080fd5b600061483187876145cc565b94505060206148428782880161466c565b93505060406148538782880161466c565b92505060606148648782880161466c565b91505092959194509250565b60008060008060008060c0878903121561488957600080fd5b600061489589896145cc565b96505060206148a689828a0161466c565b95505060406148b789828a0161466c565b94505060606148c889828a0161466c565b93505060806148d989828a016145cc565b92505060a06148ea89828a0161466c565b9150509295509295509295565b60008060008060008060c0878903121561491057600080fd5b600061491c89896145cc565b965050602061492d89828a0161466c565b955050604061493e89828a0161466c565b945050606061494f89828a0161466c565b935050608061496089828a0161466c565b92505060a06148ea89828a016145cc565b60006020828403121561498357600080fd5b815167ffffffffffffffff81111561499a57600080fd5b61392b848285016145e2565b6000602082840312156149b857600080fd5b600061392b8484614661565b6000602082840312156149d657600080fd5b600061392b848461466c565b6000602082840312156149f457600080fd5b600061392b8484614677565b60008060008060808587031215614a1657600080fd5b6000614831878761466c565b600080600060608486031215614a3757600080fd5b60006147fe868661466c565b600080600080600060a08688031215614a5b57600080fd5b6000614a67888861466c565b9550506020614a788882890161466c565b9450506040614a898882890161466c565b9350506060614a9a888289016145cc565b9250506080614aab8882890161466c565b9150509295509295909350565b600080600080600060a08688031215614ad057600080fd5b6000614adc888861466c565b9550506020614aed8882890161466c565b9450506040614afe8882890161466c565b9350506060614a9a8882890161466c565b600060208284031215614b2157600080fd5b600061392b8484614682565b600060208284031215614b3f57600080fd5b600061392b848461468d565b600060408284031215614b5d57600080fd5b600061392b8484614698565b60008060408385031215614b7c57600080fd5b6000614b888585614677565b925050602061475685828601614661565b60008060408385031215614bac57600080fd5b6000614bb88585614677565b925050602061475685828601614682565b600080600060608486031215614bde57600080fd5b6000614bea8686614677565b9350506020614bfb86828701614677565b92505060406147a386828701614677565b6000614c188383614c9a565b505060200190565b614c2981615dbe565b82525050565b614c2981615d90565b6000614c4382615d83565b614c4d8185615d87565b9350614c5883615d7d565b8060005b83811015614c86578151614c708882614c0c565b9750614c7b83615d7d565b925050600101614c5c565b509495945050505050565b614c2981615d9b565b614c298161122d565b614c29614caf8261122d565b61122d565b6000614cbf82615d83565b614cc98185615d87565b9350614cd9818560208601615de2565b614ce281615e0e565b9093019392505050565b614c2981615da0565b614c2981615dc9565b614c2981615dd7565b6000614d14601f83615d87565b7f43616e6e6f74207472616e7366657220746f2074686973206164647265737300815260200192915050565b75446562744d69677261746f724f6e4f7074696d69736d60501b9052565b6000614d6b603583615d87565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6e53796e746865746978457363726f7760881b9052565b6000614dd9601383615d87565b7227bbb732b91037b7363c90333ab731ba34b7b760691b815260200192915050565b6000614e08601e83615d87565b7f4f6e6c792045786368616e6765722063616e20696e766f6b6520746869730000815260200192915050565b6000614e41604483610bb2565b7f41746f6d696353796e746845786368616e676528616464726573732c6279746581527f7333322c75696e743235362c627974657333322c75696e743235362c616464726020820152636573732960e01b604082015260440192915050565b6000614ead601483615d87565b73616c6c20656e747269657320617265207a65726f60601b815260200192915050565b6000614edd601b83615d87565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614f16602483615d87565b7f466c616720726577617264207472616e7366657220646964206e6f742073756381526318d9595960e21b602082015260400192915050565b6b526577617264457363726f7760a01b9052565b6000614f70601883615d87565b7f4e657720657363726f77206164647265737320756e7365740000000000000000815260200192915050565b6000614fa9602883610bb2565b7f45786368616e67655265636c61696d28616464726573732c627974657333322c81526775696e743235362960c01b602082015260280192915050565b6000614ff3601e83615d87565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061502c601383615d87565b721cdb9e081d1c985b9cd9995c8819985a5b1959606a1b815260200192915050565b600061505b601b83615d87565b7f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000815260200192915050565b6000615094603183610bb2565b7f45786368616e6765547261636b696e6728627974657333322c627974657333328152702c75696e743235362c75696e743235362960781b602082015260310192915050565b60006150e7601183610bb2565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000615114603e83610bb2565b7f53796e746845786368616e676528616464726573732c627974657333322c756981527f6e743235362c627974657333322c75696e743235362c616464726573732900006020820152603e0192915050565b6000615173602683615d87565b7f43616e6e6f74207472616e73666572207374616b6564206f7220657363726f778152650cac840a69cb60d31b602082015260400192915050565b60006151bb601e83615d87565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b60006151f4601b83615d87565b7f52657761726473446973747269627574696f6e206e6f74207365740000000000815260200192915050565b600061522d602f83615d87565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600061527e602483615d87565b7f5472616e7366657220746f204c697175696461746f72526577617264732066618152631a5b195960e21b602082015260400192915050565b60006152c4602183610bb2565b7f417070726f76616c28616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b6000615307602783610bb2565b7f45786368616e676552656261746528616464726573732c627974657333322c75815266696e743235362960c81b602082015260270192915050565b6000615350602483615d87565b7f4f6e6c79204c3120446562744d69677261746f72206f72204c65676163794d618152631c9ad95d60e21b602082015260400192915050565b6000615396601a83610bb2565b7f546f6b656e5374617465557064617465642861646472657373290000000000008152601a0192915050565b60006153cf603283610bb2565b7f4163636f756e744c69717569646174656428616464726573732c75696e743235815271362c75696e743235362c616464726573732960701b602082015260320192915050565b6d2932bbb0b93222b9b1b937bbab1960911b9052565b6000615439601983610bb2565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000615472602983615d87565b7f4c697175696461746520726577617264207472616e7366657220646964206e6f8152681d081cdd58d8d9595960ba1b602082015260400192915050565b60006154bd601583615d87565b7463616e6e6f742073656c66206c697175696461746560581b815260200192915050565b6411195c1bdd60da1b9052565b60006154fb601583615d87565b744e6f20737570706c79206973206d696e7461626c6560581b815260200192915050565b600061552c601883615d87565b7f4f6c6420657363726f77206164647265737320756e7365740000000000000000815260200192915050565b6000615565602183610bb2565b7f5472616e7366657228616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b60006155a8601783615d87565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b7f53796e746865746978427269646765546f4f7074696d69736d000000000000009052565b6000615606601e83615d87565b7f63616e6e6f74206d69677261746520746f2073616d6520616464726573730000815260200192915050565b732932bbb0b93222b9b1b937bbab19233937bd32b760611b9052565b614c2981615db8565b6000610ccc82614e34565b6000610ccc82614f9c565b6000610ccc82615087565b6000615683826150da565b915061568f8284614ca3565b50602001919050565b6000610ccc82615107565b6000610ccc826152b7565b6000610ccc826152fa565b6000610ccc82615389565b6000610ccc826153c2565b60006156838261542c565b6000610ccc82615558565b60208101610ccc8284614c2f565b60208101610ccc8284614c20565b6040810161570f8285614c20565b6113cf6020830184614c9a565b6040810161572a8285614c2f565b6113cf6020830184614c2f565b608081016157458287614c2f565b6157526020830186614c20565b61575f6040830185614c9a565b61576c6060830184614cfe565b95945050505050565b6101208101615784828c614c2f565b615791602083018b614c2f565b61579e604083018a614c9a565b6157ab6060830189614c9a565b6157b86080830188614c9a565b6157c560a0830187614c20565b6157d260c0830186614c91565b6157df60e0830185614c2f565b6157ed610100830184614c9a565b9a9950505050505050505050565b610120810161580a828c614c2f565b615817602083018b614c2f565b615824604083018a614c9a565b6158316060830189614c9a565b61583e6080830188614c9a565b6157c560a0830187614c2f565b606081016158598286614c2f565b6158666020830185614c2f565b61392b6040830184614c9a565b608081016158818287614c2f565b61588e6020830186614c2f565b61589b6040830185614c9a565b61576c6060830184614c9a565b604081016158b68285614c2f565b6113cf6020830184614c91565b6040810161570f8285614c2f565b60e081016158df828a614c2f565b6158ec6020830189614c9a565b6158f96040830188614c9a565b6159066060830187614c9a565b6159136080830186614c2f565b61592060a0830185614c9a565b611bb860c0830184614c9a565b602080825281016113cf8184614c38565b60208101610ccc8284614c91565b60208101610ccc8284614c9a565b6040810161572a8285614c9a565b604081016158b68285614c9a565b6040810161570f8285614c9a565b604081016159928285614c9a565b81810360208301526113cc8184614cb4565b60a081016159b28288614c9a565b6159bf6020830187614c9a565b6159cc6040830186614c9a565b6159d96060830185614c9a565b6159e66080830184614c2f565b9695505050505050565b606081016159fe8286614c9a565b6158666020830185614c9a565b60c08082528101615a1c8189614cb4565b9050615a2b6020830188614cfe565b615a386040830187614c9a565b615a456060830186614cf5565b615a526080830185614cf5565b615a5f60a0830184614cf5565b979650505050505050565b60c08082528101615a7b8189614cb4565b9050615a8a6020830188614cfe565b615a976040830187614c9a565b615a456060830186614c9a565b60c08082528101615ab58189614cb4565b9050615ac46020830188614cfe565b615ad16040830187614c9a565b615ade6060830186614c9a565b615a526080830185614c9a565b60208101610ccc8284614cec565b602080825281016113cf8184614cb4565b60208082528101610baf81614d07565b60208101610bb282614d40565b60208082528101610baf81614d5e565b60208101610bb282614db5565b60208082528101610baf81614dcc565b60208082528101610baf81614dfb565b60208082528101610baf81614ea0565b60208082528101610baf81614ed0565b60208082528101610baf81614f09565b60208101610bb282614f4f565b60208082528101610baf81614fe6565b60208082528101610baf8161501f565b60208082528101610baf8161504e565b60208082528101610baf81615166565b60208082528101610baf816151ae565b60208082528101610baf816151e7565b60208082528101610baf81615220565b60208082528101610baf81615271565b60208082528101610baf81615343565b60208101610bb282615416565b60408101615c4b82615416565b8181036020830152610baf81614f63565b60208082528101610baf81615465565b60208082528101610baf816154b0565b60208101610bb2826154e1565b60208082528101610baf816154ee565b60208082528101610baf8161559b565b60208101610bb2826155d4565b60208082528101610baf816155f9565b60408101615cd382615632565b8181036020830152610baf8161551f565b60408101615cf28285614c9a565b6113cf6020830184614cec565b60608101615d0d8286614c9a565b615d1a6020830185614c9a565b61392b6040830184614c2f565b60208101610ccc828461564e565b60405181810167ffffffffffffffff81118282101715615d5457600080fd5b604052919050565b600067ffffffffffffffff821115615d7357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000610baf82613987565b151590565b6000610baf82615d90565b67ffffffffffffffff1690565b60ff1690565b6000610baf82615da0565b6000610baf614caf8361122d565b6000610baf8261122d565b60005b83811015615dfd578181015183820152602001615de5565b83811115610b0f5750506000910152565b601f01601f191690565b615e2181615d90565b811461163557600080fd5b615e2181615d9b565b615e218161122d565b615e2181615da0565b615e2181615dab56fea365627a7a723158203da0feefa4691535959e364a24e007dd888c79a90e82c413a86ee4cbd7ef59b36c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "snxRedeemed",
							"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": "anySynthOrSNXRateIsInvalid",
					"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"
						},
						{
							"internalType": "uint256",
							"name": "minAmount",
							"type": "uint256"
						}
					],
					"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": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getFirstNonZeroEscrowIndex",
					"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": "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"
						}
					],
					"name": "liquidateDelinquentAccount",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "escrowStartIndex",
							"type": "uint256"
						}
					],
					"name": "liquidateDelinquentAccountEscrowIndex",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "liquidateSelf",
					"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": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "migrateAccountBalances",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalEscrowRevoked",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalLiquidBalance",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "migrateEscrowBalanceToRewardEscrowV2",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "migrateEscrowContractBalance",
					"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": "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": true,
					"inputs": [],
					"name": "sUSD",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"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": "transferableSynthetix",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xa4adacf15426be1f1af675a149af5c8d6deec9f8d3ee1dab54b105d3c25c55f3",
				"urls": [
					"bzz-raw://fe48502943b1b2166fb1ab2b75e7c36b4deae9fe1c7e89da0da96a30c0fdceea",
					"dweb:/ipfs/QmciyuHMCb5cKyoUHqcMp2AHsYgYKFzQgqzZRGEUJT6o2q"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Synthetix.sol": "Synthetix"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Synthetix.sol": {
						"keccak256": "0xa4adacf15426be1f1af675a149af5c8d6deec9f8d3ee1dab54b105d3c25c55f3",
						"urls": [
							"bzz-raw://fe48502943b1b2166fb1ab2b75e7c36b4deae9fe1c7e89da0da96a30c0fdceea",
							"dweb:/ipfs/QmciyuHMCb5cKyoUHqcMp2AHsYgYKFzQgqzZRGEUJT6o2q"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516112e23803806112e28339818101604052606081101561003357600080fd5b5080516020820151604090920151909190826001600160a01b0381166100a0576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055506111ad806101356000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e31461045d578063da7bd3e914610465578063ee1d036c14610491578063fec9f9da146104bd57610173565b80639b217f90146103fd578063ae2e933b14610429578063b5ddb9c71461043157610173565b806370a082311461039157806371e780f3146103b7578063759b5225146103bf57806379ba5097146103c75780638da5cb5b146103cf57806397f46527146103d757610173565b8063326a3cfb11610130578063326a3cfb146102ab578063449d0eb1146102d1578063458efde31461030d57806345e5441f1461031557806353a47bb7146103475780636b3905c41461036b57610173565b80631627540c1461017857806319db2228146101a057806319e740c0146101c6578063204b676a146101fe578063227d517a146102245780632f5bb6611461024a575b600080fd5b61019e6004803603602081101561018e57600080fd5b50356001600160a01b03166104e3565b005b61019e600480360360208110156101b657600080fd5b50356001600160a01b031661053f565b6101ec600480360360208110156101dc57600080fd5b50356001600160a01b031661059b565b60408051918252519081900360200190f35b6101ec6004803603602081101561021457600080fd5b50356001600160a01b03166105dd565b6101ec6004803603602081101561023a57600080fd5b50356001600160a01b03166105f8565b6102706004803603602081101561026057600080fd5b50356001600160a01b031661060a565b6040518082600260200280838360005b83811015610298578181015183820152602001610280565b5050505090500191505060405180910390f35b6101ec600480360360208110156102c157600080fd5b50356001600160a01b031661065b565b6102f7600480360360208110156102e757600080fd5b50356001600160a01b031661066d565b6040518151815280826141008083836020610280565b61019e6106f3565b6101ec6004803603606081101561032b57600080fd5b506001600160a01b0381351690602081013590604001356108dc565b61034f610918565b604080516001600160a01b039092168252519081900360200190f35b6101ec6004803603602081101561038157600080fd5b50356001600160a01b0316610927565b6101ec600480360360208110156103a757600080fd5b50356001600160a01b0316610940565b6101ec61095b565b61034f610961565b61019e610970565b61034f610a2c565b6101ec600480360360208110156103ed57600080fd5b50356001600160a01b0316610a3b565b6101ec6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a4d565b61034f610a68565b61019e6004803603604081101561044757600080fd5b506001600160a01b038135169060200135610a77565b6101ec610ad0565b6102706004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610ad6565b6101ec600480360360408110156104a757600080fd5b506001600160a01b038135169060200135610b45565b61019e600480360360208110156104d357600080fd5b50356001600160a01b0316610b58565b6104eb610bb4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610547610bb4565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb62959181900360200190a150565b6000806105a7836105dd565b905060005b818110156105d4576105be8482610a4d565b156105cc5791506105d89050565b6001016105ac565b5090505b919050565b6001600160a01b031660009081526004602052604090205490565b60066020526000908152604090205481565b610612610f98565b600061061d8361059b565b9050610628836105dd565b81141561064a57505060408051808201909152600080825260208201526105d8565b6106548382610ad6565b9392505050565b60056020526000908152604090205481565b610675610fb6565b61067d610fb6565b6000610688846105dd565b905060005b818110156106ea5761069d610f98565b6106a78683610ad6565b8051909150846002840261020881106106bc57fe5b60200201528060016020020151848360020260010161020881106106dc57fe5b60200201525060010161068d565b50909392505050565b60006106fe336105dd565b90506000805b828110156107a35760006107183383610a4d565b90504281111561072857506107a3565b60006107343384610b45565b905080156107995760408051808201825260008082526020808301829052338252600490529190912080548590811061076957fe5b9060005260206000209060020201906002610785929190610fd6565b50610796848263ffffffff610bff16565b93505b5050600101610704565b5080156108d8576007546107bd908263ffffffff610c5916565b600755336000908152600560205260409020546107e0908263ffffffff610c5916565b3360009081526005602090815260408083209390935560069052205461080c908263ffffffff610bff16565b33600081815260066020908152604080832094909455600254845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b600460205282600052604060002082815481106108f557fe5b9060005260206000209060020201816002811061090e57fe5b0154925083915050565b6001546001600160a01b031681565b60006109328261060a565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b60075481565b6002546001600160a01b031681565b6001546001600160a01b031633146109b95760405162461bcd60e51b81526004018080602001828103825260358152602001806110656035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000610a468261060a565b6001610935565b6000610a598383610ad6565b60005b60200201519392505050565b6003546001600160a01b031681565b6003546001600160a01b0316331480610ac15760405162461bcd60e51b81526004018080602001828103825260328152602001806111476032913960400191505060405180910390fd5b610acb8383610cb6565b505050565b61010481565b610ade610f98565b6001600160a01b0383166000908152600460205260409020805483908110610b0257fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610b25575050505050905092915050565b6000610b518383610ad6565b6001610a5c565b610b60610bb4565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f46e9c68bd7831071bdd478f1ae4c4a52463961a9d620383a0a121dbfc0e0f06d9181900360200190a150565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040180806020018281038252602f815260200180611118602f913960400191505060405180910390fd5b565b600082820183811015610654576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115610cb0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b80610d08576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600754610d1b908263ffffffff610bff16565b600755600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d6020811015610d9357600080fd5b50516007541115610dd55760405162461bcd60e51b81526004018080602001828103825260478152602001806110d16047913960600191505060405180910390fd5b6001600160a01b038216600090815260046020526040902054610104811115610e45576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b6301dfe200420181610e71576001600160a01b0384166000908152600560205260409020839055610efe565b80610e7f8560018503610a4d565b10610ebb5760405162461bcd60e51b815260040180806020018281038252603781526020018061109a6037913960400191505060405180910390fd5b6001600160a01b038416600090815260056020526040902054610ee4908463ffffffff610bff16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925284825281830187905280546001810180835591855292909320610f4d9260029081029091019190611019565b5050604080514281526020810185905281516001600160a01b038716927fedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c928290030190a250505050565b60405180604001604052806002906020820280388339509192915050565b604051806141000160405280610208906020820280388339509192915050565b8260028101928215611009579160200282015b82811115611009578251829060ff16905591602001919060010190610fe9565b50611015929150611047565b5090565b8260028101928215611009579160200282015b8281111561100957825182559160200191906001019061102c565b61106191905b80821115611015576000815560010161104d565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c792074686520466565506f6f6c20636f6e7472616374732063616e20706572666f726d207468697320616374696f6ea265627a7a72315820fa51bbafea8a0e92834ee2381033a3ec9c2e13de4973127626edb6267fa7319764736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ISynthetix",
							"name": "_synthetix",
							"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": "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": "newSynthetix",
							"type": "address"
						}
					],
					"name": "SynthetixUpdated",
					"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": "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 ISynthetix",
							"name": "_synthetix",
							"type": "address"
						}
					],
					"name": "setSynthetix",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthetix",
					"outputs": [
						{
							"internalType": "contract ISynthetix",
							"name": "",
							"type": "address"
						}
					],
					"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": [],
					"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": "0xdaea14bfe132f2f9d19cefd7600d94b27a8de1bbdf3e69bae118ee571e5ebdc9",
				"urls": [
					"bzz-raw://9c8d4c15bc445f6f316187efb4cab026b34153e716340374fbd1f110ff5b2875",
					"dweb:/ipfs/QmVj7oiZ6xxLYnDup6dNTBhAUbruA9FvRQK4nhoU9D6MpH"
				]
			},
			"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": "0xdaea14bfe132f2f9d19cefd7600d94b27a8de1bbdf3e69bae118ee571e5ebdc9",
						"urls": [
							"bzz-raw://9c8d4c15bc445f6f316187efb4cab026b34153e716340374fbd1f110ff5b2875",
							"dweb:/ipfs/QmVj7oiZ6xxLYnDup6dNTBhAUbruA9FvRQK4nhoU9D6MpH"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrowV2Storage": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162001db138038062001db183398101604081905262000034916200015a565b80826001600160a01b038116620000685760405162461bcd60e51b81526004016200005f9062000267565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b59184906200022f565b60405180910390a1506000546001600160a01b0316620000e95760405162461bcd60e51b81526004016200005f9062000255565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390620001369083906200021f565b60405180910390a1505050620002c2565b80516200015481620002a8565b92915050565b600080604083850312156200016e57600080fd5b60006200017c858562000147565b92505060206200018f8582860162000147565b9150509250929050565b620001a48162000294565b82525050565b620001a48162000282565b6000620001c460118362000279565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620001f360198362000279565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60208101620001548284620001aa565b604081016200023f828562000199565b6200024e6020830184620001aa565b9392505050565b602080825281016200015481620001b5565b602080825281016200015481620001e4565b90815260200190565b60006001600160a01b03821662000154565b600062000154826000620001548262000282565b620002b38162000282565b8114620002bf57600080fd5b50565b611adf80620002d26000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806353401559116100c3578063ae5825491161007c578063ae58254914610294578063aefc4ccb146102a7578063c8949d11146102af578063cec7bdb1146102c4578063d5e6a906146102d7578063e6b2cf6c146102ea5761014d565b8063534015591461024c57806353a47bb71461025f578063614d08f81461027457806371e780f31461027c57806379ba5097146102845780638da5cb5b1461028c5761014d565b80633d1d26bd116101155780633d1d26bd146101d85780633e21e59a146101eb57806343ba57df146101fe57806345626bd61461021157806352580bb71461023157806352f445ca146102395761014d565b80631627540c14610152578063204b676a14610167578063227d517a1461019057806327f071d2146101a3578063326a3cfb146101c5575b600080fd5b6101656101603660046112fa565b6102f2565b005b61017a6101753660046112fa565b610350565b60405161018791906118c9565b60405180910390f35b61017a61019e3660046112fa565b6103af565b6101b66101b136600461138a565b610489565b604051610187939291906119e3565b61017a6101d33660046112fa565b610608565b6101656101e63660046113f5565b610681565b6101656101f9366004611320565b610716565b61017a61020c36600461135a565b6107c4565b61022461021f366004611320565b610903565b60405161018791906119d5565b61017a610a4f565b6101656102473660046112fa565b610a55565b61016561025a366004611320565b610aa8565b610267610bca565b6040516101879190611885565b61017a610bd9565b61017a610bf5565b610165610c27565b610267610cc3565b61017a6102a2366004611320565b610cd2565b610267610dd5565b6102b7610de4565b60405161018791906118d7565b6101656102d2366004611320565b610df3565b6101656102e53660046113d7565b610ea7565b61017a61100f565b6102fa611015565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610345908390611885565b60405180910390a150565b600b546000906001600160a01b03166103845760405162461bcd60e51b815260040161037b906119b5565b60405180910390fd5b6001600160a01b0382166000908152600460205260409020546103a683611041565b0190505b919050565b600b546000906001600160a01b03166103da5760405162461bcd60e51b815260040161037b906119b5565b6001600160a01b0382166000908152600760205260409020548061048057600b5460405163113ea8bd60e11b81526001600160a01b039091169063227d517a90610428908690600401611885565b60206040518083038186803b15801561044057600080fd5b505afa158015610454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104789190810190611431565b9150506103aa565b6104788161108f565b600b54600090819081906001600160a01b03166104b85760405162461bcd60e51b815260040161037b906119b5565b6002546001600160a01b031633146104e25760405162461bcd60e51b815260040161037b90611965565b600084116105025760405162461bcd60e51b815260040161037b90611985565b61050b866110a8565b600061051687610350565b9050600081116105385760405162461bcd60e51b815260040161037b90611975565b8086106105575760405162461bcd60e51b815260040161037b90611955565b600080610562611242565b8891505b838210156105d9576105788a83610cd2565b92506105848a84610903565b6020810151909150156105ce5760208101516105a790889063ffffffff61116f16565b96506105c28a84836000015167ffffffffffffffff1661119b565b8787106105ce576105d9565b600190910190610566565b8382146105e657816105eb565b600182035b905190955067ffffffffffffffff16935050505093509350939050565b600b546000906001600160a01b03166106335760405162461bcd60e51b815260040161037b906119b5565b6001600160a01b0382166000908152600660205260409020548061048057600b5460405163326a3cfb60e01b81526001600160a01b039091169063326a3cfb90610428908690600401611885565b600b546001600160a01b03166106a95760405162461bcd60e51b815260040161037b906119b5565b6002546001600160a01b031633146106d35760405162461bcd60e51b815260040161037b90611965565b60006106ed826106e1610bf5565b9063ffffffff6111e516565b905060008112156107105760405162461bcd60e51b815260040161037b906118e5565b60085550565b600b546001600160a01b031661073e5760405162461bcd60e51b815260040161037b906119b5565b6002546001600160a01b031633146107685760405162461bcd60e51b815260040161037b90611965565b6000610777826106e1856103af565b9050600081121561079a5760405162461bcd60e51b815260040161037b906119a5565b6107a38161122b565b6001600160a01b039093166000908152600760205260409020929092555050565b600b546000906001600160a01b03166107ef5760405162461bcd60e51b815260040161037b906119b5565b6002546001600160a01b031633146108195760405162461bcd60e51b815260040161037b90611965565b610826602083018361144f565b67ffffffffffffffff1661084c5760405162461bcd60e51b815260040161037b90611905565b6009546040805180820190915280610867602086018661144f565b63ffffffff90811682526001600160e01b036020878101358216938101939093526001600160a01b0388166000818152600385526040808220888352865280822087518154988801519095166401000000000294861663ffffffff199098169790971790941692909217909455928352600482528220805460018181018355918452919092200182905560098054909101905590505b92915050565b61090b611242565b600b546001600160a01b03166109335760405162461bcd60e51b815260040161037b906119b5565b61093b611242565b50506001600160a01b038216600090815260036020908152604080832084845282529182902082518084018452905463ffffffff80821683526001600160e01b036401000000009092048216838501908152855180870190965283519091168552511691830191909152600a54831080156109bf5750815167ffffffffffffffff16155b15610a4857600b546040516322b135eb60e11b81526001600160a01b03909116906345626bd6906109f690879087906004016118ae565b604080518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a459190810190611413565b91505b5092915050565b600a5481565b610a5d611015565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390610345908390611885565b600b546001600160a01b0316610ad05760405162461bcd60e51b815260040161037b906119b5565b6002546001600160a01b03163314610afa5760405162461bcd60e51b815260040161037b90611965565b6001600160a01b03821660009081526003602090815260408083208484529091529020805463ffffffff1680610bb957600b546040516322b135eb60e11b81526001600160a01b03909116906345626bd690610b5c90879087906004016118ae565b604080518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bab9190810190611413565b5167ffffffffffffffff1690505b610bc484848361119b565b50505050565b6001546001600160a01b031681565b74526577617264457363726f77563253746f7261676560581b81565b600b546000906001600160a01b0316610c205760405162461bcd60e51b815260040161037b906119b5565b5060085490565b6001546001600160a01b03163314610c515760405162461bcd60e51b815260040161037b906118f5565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610c94926001600160a01b0391821692911690611893565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b600b546000906001600160a01b0316610cfd5760405162461bcd60e51b815260040161037b906119b5565b6000610d0884611041565b905080831015610d9c57600b5460405163ae58254960e01b81526001600160a01b039091169063ae58254990610d4490879087906004016118ae565b60206040518083038186803b158015610d5c57600080fd5b505afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d949190810190611431565b9150506108fd565b6001600160a01b03841660009081526004602052604090208054828503908110610dc257fe5b90600052602060002001549150506108fd565b6002546001600160a01b031681565b600b546001600160a01b031681565b600b546001600160a01b0316610e1b5760405162461bcd60e51b815260040161037b906119b5565b6002546001600160a01b03163314610e455760405162461bcd60e51b815260040161037b90611965565b6000610e54826106e185610608565b90506000811215610e775760405162461bcd60e51b815260040161037b90611935565b610e808161122b565b6001600160a01b038416600090815260066020526040902055610ea282610681565b505050565b610eaf611015565b600b546001600160a01b031615610ed85760405162461bcd60e51b815260040161037b906119c5565b6001600160a01b038116610efe5760405162461bcd60e51b815260040161037b90611995565b600b80546001600160a01b0319166001600160a01b038316908117909155604080516339acb3db60e21b8152905163e6b2cf6c91600480820192602092909190829003018186803b158015610f5257600080fd5b505afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f8a9190810190611431565b6009819055600a55600b54604080516371e780f360e01b815290516001600160a01b03909216916371e780f391600480820192602092909190829003018186803b158015610fd757600080fd5b505afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107109190810190611431565b60095481565b6000546001600160a01b0316331461103f5760405162461bcd60e51b815260040161037b90611945565b565b6001600160a01b0381166000908152600560205260408120548061048057600b54604051631025b3b560e11b81526001600160a01b039091169063204b676a90610428908690600401611885565b600060001982146110a057816108fd565b600092915050565b6001600160a01b03811660009081526005602052604090205461116c57600b54604051631025b3b560e11b81526000916001600160a01b03169063204b676a906110f6908590600401611885565b60206040518083038186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111469190810190611431565b90506111518161122b565b6001600160a01b038316600090815260056020526040902055505b50565b6000828201838110156111945760405162461bcd60e51b815260040161037b90611915565b9392505050565b6001600160a01b03831660009081526003602090815260408083208584529091529020816111c957426111cb565b815b815463ffffffff191663ffffffff91821617169055505050565b60008282018183128015906111fa5750838112155b8061120f575060008312801561120f57508381125b6111945760405162461bcd60e51b815260040161037b90611925565b6000811561123957816108fd565b50600019919050565b604080518082019091526000808252602082015290565b80356108fd81611a6d565b80356108fd81611a81565b80356108fd81611a8a565b60006040828403121561128c57600080fd5b50919050565b6000604082840312156112a457600080fd5b6112ae6040611a0b565b905060006112bc84846112ef565b82525060206112cd848483016112d9565b60208301525092915050565b80516108fd81611a8a565b80356108fd81611a93565b80516108fd81611a93565b60006020828403121561130c57600080fd5b60006113188484611259565b949350505050565b6000806040838503121561133357600080fd5b600061133f8585611259565b92505060206113508582860161126f565b9150509250929050565b6000806060838503121561136d57600080fd5b60006113798585611259565b92505060206113508582860161127a565b60008060006060848603121561139f57600080fd5b60006113ab8686611259565b93505060206113bc8682870161126f565b92505060406113cd8682870161126f565b9150509250925092565b6000602082840312156113e957600080fd5b60006113188484611264565b60006020828403121561140757600080fd5b6000611318848461126f565b60006040828403121561142557600080fd5b60006113188484611292565b60006020828403121561144357600080fd5b600061131884846112d9565b60006020828403121561146157600080fd5b600061131884846112e4565b61147681611a3b565b82525050565b61147681611a46565b61147681611a49565b600061149b603483611a32565b7f757064617465546f74616c457363726f77656442616c616e63653a2062616c618152736e6365206d75737420626520706f73697469766560601b602082015260400192915050565b60006114f1603583611a32565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000611548601883611a32565b7f76657374696e67207461726765742074696d65207a65726f0000000000000000815260200192915050565b6000611581601b83611a32565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006115ba602183611a32565b7f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006115fd603483611a32565b7f757064617465457363726f774163636f756e7442616c616e63653a2062616c618152736e6365206d75737420626520706f73697469766560601b602082015260400192915050565b6000611653602f83611a32565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006116a4601383611a32565b720e6e8c2e4e892dcc8caf040e8dede40d0d2ced606b1b815260200192915050565b60006116d3603483611a32565b7f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e815273103832b93337b936903a3434b99030b1ba34b7b760611b602082015260400192915050565b6000611729601583611a32565b746e6f20656e747269657320746f206974657261746560581b815260200192915050565b600061175a601483611a32565b73746172676574416d6f756e74206973207a65726f60601b815260200192915050565b600061178a601683611a32565b7563616e6e6f74206265207a65726f206164647265737360501b815260200192915050565b60006117bc603483611a32565b7f7570646174655665737465644163636f756e7442616c616e63653a2062616c618152736e6365206d75737420626520706f73697469766560601b602082015260400192915050565b6000611812601083611a32565b6f19985b1b189858dac81b9bdd081cd95d60821b815260200192915050565b600061183e600b83611a32565b6a185b1c9958591e481cd95d60aa1b815260200192915050565b80516040830190611869848261187c565b506020820151610bc4602085018261147c565b61147681611a60565b602081016108fd828461146d565b604081016118a1828561146d565b611194602083018461146d565b604081016118bc828561146d565b611194602083018461147c565b602081016108fd828461147c565b602081016108fd8284611485565b602080825281016108fd8161148e565b602080825281016108fd816114e4565b602080825281016108fd8161153b565b602080825281016108fd81611574565b602080825281016108fd816115ad565b602080825281016108fd816115f0565b602080825281016108fd81611646565b602080825281016108fd81611697565b602080825281016108fd816116c6565b602080825281016108fd8161171c565b602080825281016108fd8161174d565b602080825281016108fd8161177d565b602080825281016108fd816117af565b602080825281016108fd81611805565b602080825281016108fd81611831565b604081016108fd8284611858565b606081016119f1828661147c565b6119fe602083018561147c565b611318604083018461147c565b60405181810167ffffffffffffffff81118282101715611a2a57600080fd5b604052919050565b90815260200190565b60006108fd82611a54565b90565b60006108fd82611a3b565b6001600160a01b031690565b67ffffffffffffffff1690565b611a7681611a3b565b811461116c57600080fd5b611a7681611a49565b611a7681611a46565b611a7681611a6056fea365627a7a7231582062fb6ef57713c5629ece901bccaba13bd0d6eb2aae6f3932e8f131e043710f356c6578706572696d656e74616cf564736f6c63430005100040",
			"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": 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": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"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"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry",
							"name": "entry",
							"type": "tuple"
						}
					],
					"name": "addVestingEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"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": [],
					"name": "fallbackRewardEscrow",
					"outputs": [
						{
							"internalType": "contract IRewardEscrowV2Frozen",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "firstNonFallbackId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"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": "_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": "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": "contract IRewardEscrowV2Frozen",
							"name": "_fallbackRewardEscrow",
							"type": "address"
						}
					],
					"name": "setFallbackRewardEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryId",
							"type": "uint256"
						}
					],
					"name": "setZeroAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "startIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "targetAmount",
							"type": "uint256"
						}
					],
					"name": "setZeroAmountUntilTarget",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "total",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "endIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastEntryTime",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"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": "account",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "int256",
							"name": "delta",
							"type": "int256"
						}
					],
					"name": "updateEscrowAccountBalance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "delta",
							"type": "int256"
						}
					],
					"name": "updateTotalEscrowedBalance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "int256",
							"name": "delta",
							"type": "int256"
						}
					],
					"name": "updateVestedAccountBalance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryId",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry",
							"name": "entry",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x0b672940ca953424b3d2a730f667cdbd42062b0c1a9d00bf176cebd21a8c0dcf",
				"urls": [
					"bzz-raw://a8995ca36824201eeb0d4faee7377d5dca6947946e49f991362c7060d263a31c",
					"dweb:/ipfs/QmPhLVNgPuiY5kG4CZAPbXfZX3x6G1PJB7y2q3hSi9MQUY"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardEscrowV2Storage.sol": "RewardEscrowV2Storage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardEscrowV2Storage.sol": {
						"keccak256": "0x0b672940ca953424b3d2a730f667cdbd42062b0c1a9d00bf176cebd21a8c0dcf",
						"urls": [
							"bzz-raw://a8995ca36824201eeb0d4faee7377d5dca6947946e49f991362c7060d263a31c",
							"dweb:/ipfs/QmPhLVNgPuiY5kG4CZAPbXfZX3x6G1PJB7y2q3hSi9MQUY"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrowV2": {
			"bytecode": "60806040526303bfc4006007556224ea0060085562093a806009553480156200002757600080fd5b5060405162003adb38038062003adb8339810160408190526200004a916200011d565b8181806249d400836001600160a01b038116620000845760405162461bcd60e51b81526004016200007b90620001d9565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000d1918490620001b3565b60405180910390a1504201600255600380546001600160a01b0319166001600160a01b0392909216919091179055506200023492505050565b805162000117816200021a565b92915050565b600080604083850312156200013157600080fd5b60006200013f85856200010a565b925050602062000152858286016200010a565b9150509250929050565b620001678162000206565b82525050565b6200016781620001f4565b600062000187601983620001eb565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001c382856200015c565b620001d260208301846200016d565b9392505050565b60208082528101620001178162000178565b90815260200190565b60006001600160a01b03821662000117565b6000620001178260006200011782620001f4565b6200022581620001f4565b81146200023157600080fd5b50565b61389780620002446000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806370a08231116101515780638da5cb5b116100c3578063cd7b43dd11610087578063cd7b43dd14610528578063d3be14651461053b578063de065f671461054e578063e6b2cf6c14610561578063eac6248914610569578063f0b882ba1461058957610274565b80638da5cb5b146104df578063910a326d146104e7578063a0416ed3146104ef578063ae58254914610502578063b95375bd1461051557610274565b80637839b92f116101155780637839b92f146104685780637993e6991461047b57806379ba50971461048e5780637cc1d7561461049657806380d46f58146104a9578063899ffef4146104ca57610274565b806370a082311461041257806371e780f31461042557806373307e401461042d5780637418536014610440578063773ab39f1461044857610274565b806330104c5f116101ea57806345626bd6116101ae57806345626bd61461039957806346ba2d90146103b957806353a47bb7146103c15780635eb8cf25146103d65780636154c343146103de5780636dc05bd3146103ff57610274565b806330104c5f14610345578063326a3cfb1461035857806334c7fec91461036b57806337088ffc1461037e5780634525aabc1461038657610274565b80631627540c1161023c5780631627540c146102e9578063178c5655146102fc5780631bb47b4414610304578063204b676a14610317578063227d517a1461032a5780632af64bd31461033d57610274565b8063018c6c551461027957806304f3bcec1461028e57806305662986146102ac5780630961f7e9146102c15780630fcdefb7146102d4575b600080fd5b61028c610287366004612990565b61059c565b005b6102966105e4565b6040516102a3919061353f565b60405180910390f35b6102b46105f3565b6040516102a391906134f5565b6102b46102cf36600461265d565b610614565b6102dc610629565b6040516102a39190613503565b61028c6102f736600461265d565b61062f565b61028c610682565b61028c610312366004612828565b6106df565b6102dc61032536600461265d565b610730565b6102dc61033836600461265d565b6107bb565b6102b46107f0565b6102dc610353366004612791565b610907565b6102dc61036636600461265d565b610922565b61028c610379366004612913565b610957565b6102dc610b0b565b61028c610394366004612990565b610b11565b6103ac6103a7366004612791565b610b4e565b6040516102a391906136de565b6102dc610bda565b6103c9610be0565b6040516102a3919061337a565b6102dc610bef565b6103f16103ec366004612791565b610bf5565b6040516102a392919061375d565b6102dc61040d366004612702565b610c20565b6102dc61042036600461265d565b610c85565b6102dc610c90565b6103c961043b36600461265d565b610d0f565b61028c610d2a565b61045b610456366004612828565b610e80565b6040516102a3919061349c565b61028c61047636600461265d565b610fab565b61028c610489366004612990565b610fb6565b61028c611015565b61028c6104a436600461265d565b6110b1565b6104bc6104b7366004612702565b611201565b6040516102a39291906136ec565b6104d26114d2565b6040516102a3919061348b565b6103c961154a565b6102dc611559565b61028c6104fd366004612828565b61155f565b6102dc610510366004612791565b611659565b61028c610523366004612875565b6116e0565b61028c6105363660046127c1565b6116e8565b61028c610549366004612757565b6116f6565b61028c61055c3660046126a1565b611729565b6102dc6119f5565b61057c610577366004612828565b611a37565b6040516102a391906134e4565b61028c610597366004612702565b611ae8565b6105a4611e5e565b60088190556040517fe829efae5d8a2f7163f46c23a8190bf14625c1e446561ca0f5cf279ab7c8015e906105d9908390613503565b60405180910390a150565b6003546001600160a01b031681565b60004261060d600954600a54611e8a90919063ffffffff16565b1190505b90565b60066020526000908152604090205460ff1681565b600a5481565b610637611e5e565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906105d990839061337a565b61068a611e5e565b42600a8190556009547fceade2b9bc02350b17075c94bb699508b89ed2752f501ea42024b1bb5fd3444591906106c790829063ffffffff611e8a16565b6040516106d592919061370c565b60405180910390a1565b6106e7611eaf565b6001600160a01b0316336001600160a01b0316146107205760405162461bcd60e51b81526004016107179061369e565b60405180910390fd5b61072b838383611ec4565b505050565b600061073a612120565b6001600160a01b031663204b676a836040518263ffffffff1660e01b8152600401610765919061337a565b60206040518083038186803b15801561077d57600080fd5b505afa158015610791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107b591908101906129ae565b92915050565b60006107c5612120565b6001600160a01b031663227d517a836040518263ffffffff1660e01b8152600401610765919061337a565b600060606107fc6114d2565b905060005b81518110156108fe57600082828151811061081857fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b03908116939116916321f8a7219161086991869101613503565b60206040518083038186803b15801561088157600080fd5b505afa158015610895573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108b99190810190612683565b6001600160a01b03161415806108e457506000818152600460205260409020546001600160a01b0316155b156108f55760009350505050610611565b50600101610801565b50600191505090565b600061091b6109168484610b4e565b612143565b9392505050565b600061092c612120565b6001600160a01b031663326a3cfb836040518263ffffffff1660e01b8152600401610765919061337a565b336000610962612506565b6000805b85811015610a3e5761098a8588888481811061097e57fe5b90506020020135610b4e565b92508260200151600014610a36576109a183612143565b91508115610a23576109b1612120565b6001600160a01b03166353401559868989858181106109cc57fe5b905060200201356040518363ffffffff1660e01b81526004016109f09291906133e5565b600060405180830381600087803b158015610a0a57600080fd5b505af1158015610a1e573d6000803e3d6000fd5b505050505b610a33848363ffffffff611e8a16565b93505b600101610966565b508215610b0357610a50848585612174565b610a58612120565b6001600160a01b0316633e21e59a85610a708661226d565b6040518363ffffffff1660e01b8152600401610a8d9291906133e5565b600060405180830381600087803b158015610aa757600080fd5b505af1158015610abb573d6000803e3d6000fd5b50505050836001600160a01b03167ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc64285604051610afa92919061370c565b60405180910390a25b505050505050565b60085481565b610b19611e5e565b60078190556040517f6b92bd20c4b2e6861047ba7209ddc78d538419aae187d0df46716b827b8997a4906105d9908390613503565b610b56612506565b610b5e612120565b6001600160a01b03166345626bd684846040518363ffffffff1660e01b8152600401610b8b9291906133e5565b604080518083038186803b158015610ba257600080fd5b505afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061091b9190810190612972565b60025481565b6001546001600160a01b031681565b60075481565b600080610c00612506565b610c0a8585610b4e565b80516020909101519093509150505b9250929050565b6000610c2a612506565b60005b83811015610c7c57610c458686868481811061097e57fe5b91508160200151600014610c74576000610c5e83612143565b9050610c70848263ffffffff611e8a16565b9350505b600101610c2d565b50509392505050565b60006107b582610922565b6000610c9a612120565b6001600160a01b03166371e780f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd257600080fd5b505afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d0a91908101906129ae565b905090565b6005602052600090815260409020546001600160a01b031681565b6060610d346114d2565b905060005b8151811015610e7c576000828281518110610d5057fe5b602002602001015190506000600360009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d92919061336f565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610dbe92919061351f565b60206040518083038186803b158015610dd657600080fd5b505afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e0e9190810190612683565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610e6a9084908490613511565b60405180910390a15050600101610d39565b5050565b6060828201838111610ec6576040805160008082526020820190925290610ebd565b610eaa61251d565b815260200190600190039081610ea25790505b5091505061091b565b610ecf85610730565b811115610ee257610edf85610730565b90505b8381036000610eef612506565b606083604051908082528060200260200182016040528015610f2b57816020015b610f1861251d565b815260200190600190039081610f105790505b50905060005b84811015610f9e57610f458a8a8301611659565b9350610f518a85610b4e565b9250604051806060016040528084600001516001600160401b031681526020018460200151815260200185815250828281518110610f8b57fe5b6020908102919091010152600101610f31565b5098975050505050505050565b610fb3612296565b50565b610fbe611e5e565b600854811115610fe05760405162461bcd60e51b81526004016107179061368e565b60098190556040517f723c43349da7aeae47190396f2e2fbe6bedb46b9e9705bc5b908d65bc7a1e0e6906105d9908390613503565b6001546001600160a01b0316331461103f5760405162461bcd60e51b81526004016107179061356e565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611082926001600160a01b03918216929116906133ca565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b0381163314156110da5760405162461bcd60e51b81526004016107179061363e565b6110e26105f3565b6110fe5760405162461bcd60e51b81526004016107179061360e565b6111066122ae565b6001600160a01b031663d37c4d8b336040518263ffffffff1660e01b815260040161113191906133b0565b60206040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061118191908101906129ae565b1561119e5760405162461bcd60e51b8152600401610717906136ce565b336000818152600560205260409081902080546001600160a01b0319166001600160a01b038516179055517fcf51776bb16e5780edcca2e64a9ba8a9c7d5d00a6699cbd7606e465361ba4852906111f690849061337a565b60405180910390a250565b6000606061120d6122c2565b6001600160a01b0316336001600160a01b03161461123d5760405162461bcd60e51b81526004016107179061362e565b8261125a5760405162461bcd60e51b81526004016107179061364e565b60408051848152602080860282010190915283801561129357816020015b611280612506565b8152602001906001900390816112785790505b50905060005b8381101561137a576112a9612506565b6112b98787878581811061097e57fe5b60208101519091501561137157808383815181106112d357fe5b60200260200101819052506112f5816020015185611e8a90919063ffffffff16565b93506112ff612120565b6001600160a01b031663534015598888888681811061131a57fe5b905060200201356040518363ffffffff1660e01b815260040161133e9291906133e5565b600060405180830381600087803b15801561135857600080fd5b505af115801561136c573d6000803e3d6000fd5b505050505b50600101611299565b50811561148357611389612120565b6001600160a01b031663cec7bdb1866113a18561226d565b6000036040518363ffffffff1660e01b81526004016113c19291906133e5565b600060405180830381600087803b1580156113db57600080fd5b505af11580156113ef573d6000803e3d6000fd5b505050506113fb6122e9565b6001600160a01b031663a9059cbb6114116122c2565b846040518363ffffffff1660e01b815260040161142f9291906133e5565b602060405180830381600087803b15801561144957600080fd5b505af115801561145d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114819190810190612954565b505b846001600160a01b03167f929c8a2a06883affd05f43baf52398dbbfb6930730ce1bdb2cfe413cd44b107c858585426040516114c294939291906134ad565b60405180910390a2935093915050565b6060806114dd612300565b60408051600180825281830190925291925060609190602080830190803883390190505090507853796e746865746978427269646765546f4f7074696d69736d60381b8160008151811061152d57fe5b60200260200101818152505061154382826123c5565b9250505090565b6000546001600160a01b031681565b60095481565b6001600160a01b0383166115855760405162461bcd60e51b81526004016107179061359e565b3360009081526006602052604090205460ff166115b45760405162461bcd60e51b8152600401610717906135ce565b6115bc6122e9565b6001600160a01b03166323b872dd3330856040518463ffffffff1660e01b81526004016115eb93929190613388565b602060405180830381600087803b15801561160557600080fd5b505af1158015611619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061163d9190810190612954565b6107205760405162461bcd60e51b81526004016107179061361e565b6000611663612120565b6001600160a01b031663ae58254984846040518363ffffffff1660e01b81526004016116909291906133e5565b60206040518083038186803b1580156116a857600080fd5b505afa1580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061091b91908101906129ae565b610b03612296565b6116f0612296565b50505050565b6116fe611e5e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6117316122e9565b6001600160a01b0316336001600160a01b0316146117615760405162461bcd60e51b8152600401610717906135be565b6001600160a01b0384166117875760405162461bcd60e51b8152600401610717906136ae565b6001600160a01b0383166117ad5760405162461bcd60e51b81526004016107179061367e565b60008060006117ba612120565b6001600160a01b03166327f071d28886886040518463ffffffff1660e01b81526004016117e993929190613470565b606060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061183b91908101906129cc565b925092509250848310156118615760405162461bcd60e51b81526004016107179061355e565b8483111561199257600061187b848763ffffffff61248116565b90506000611887612120565b6001600160a01b03166343ba57df8a6040518060400160405280876001600160401b03168152602001868152506040518363ffffffff1660e01b81526004016118d192919061340e565b602060405180830381600087803b1580156118eb57600080fd5b505af11580156118ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061192391908101906129ae565b90506000428411611935576000611945565b611945844263ffffffff61248116565b9050896001600160a01b03167f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc0428584866040516119869493929190613728565b60405180910390a25050505b61199d878787612174565b856001600160a01b0316876001600160a01b03167f18db3cc7a567ad50ae1cf6998aff0c3c2cff4e7c1338a1909def5a5a12ae23a18787866040516119e49392919061371a565b60405180910390a350505050505050565b60006119ff612120565b6001600160a01b031663e6b2cf6c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd257600080fd5b60608282016000611a4786610730565b905080821115611a55578091505b848211611a74575050604080516000815260208101909152905061091b565b604080518684038082526020808202830101909252606090828015611aa3578160200160208202803883390190505b50905060005b82811015611adc57611abd89898301611659565b828281518110611ac957fe5b6020908102919091010152600101611aa9565b50979650505050505050565b611af06105f3565b611b0c5760405162461bcd60e51b81526004016107179061360e565b611b146122ae565b6001600160a01b031663d37c4d8b846040518263ffffffff1660e01b8152600401611b3f9190613400565b60206040518083038186803b158015611b5757600080fd5b505afa158015611b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b8f91908101906129ae565b15611bac5760405162461bcd60e51b8152600401610717906136ce565b6001600160a01b03838116600090815260056020526040902054163314611be55760405162461bcd60e51b81526004016107179061366e565b336000611bf0612506565b60005b84811015611d3b57611c0b8787878481811061097e57fe5b91508160200151600014611d3357611c21612120565b6001600160a01b0316635340155988888885818110611c3c57fe5b905060200201356040518363ffffffff1660e01b8152600401611c609291906133e5565b600060405180830381600087803b158015611c7a57600080fd5b505af1158015611c8e573d6000803e3d6000fd5b50505050611c9a612120565b6001600160a01b03166343ba57df85846040518363ffffffff1660e01b8152600401611cc792919061340e565b602060405180830381600087803b158015611ce157600080fd5b505af1158015611cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d1991908101906129ae565b506020820151611d3090849063ffffffff611e8a16565b92505b600101611bf3565b50611d44612120565b6001600160a01b031663cec7bdb187611d5c8561226d565b6000036040518363ffffffff1660e01b8152600401611d7c9291906133e5565b600060405180830381600087803b158015611d9657600080fd5b505af1158015611daa573d6000803e3d6000fd5b50505050611db6612120565b6001600160a01b031663cec7bdb184611dce8561226d565b6040518363ffffffff1660e01b8152600401611deb9291906133e5565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050856001600160a01b03167f48d567deaa7db90f8a443344e519ca8906521ffe118e1df43e89a3c257963f7c8484888842604051610afa959493929190613429565b6000546001600160a01b03163314611e885760405162461bcd60e51b81526004016107179061365e565b565b60008282018381101561091b5760405162461bcd60e51b81526004016107179061357e565b6000610d0a66119959541bdbdb60ca1b6124a9565b81611ee15760405162461bcd60e51b8152600401610717906135ee565b600081118015611ef357506007548111155b611f0f5760405162461bcd60e51b81526004016107179061358e565b611f17612120565b6001600160a01b031663cec7bdb184611f2f8561226d565b6040518363ffffffff1660e01b8152600401611f4c9291906133e5565b600060405180830381600087803b158015611f6657600080fd5b505af1158015611f7a573d6000803e3d6000fd5b50505050611f866122e9565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611fb1919061337a565b60206040518083038186803b158015611fc957600080fd5b505afa158015611fdd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061200191908101906129ae565b612009610c90565b11156120275760405162461bcd60e51b8152600401610717906135fe565b4281016000612034612120565b6001600160a01b03166343ba57df866040518060400160405280866001600160401b03168152602001888152506040518363ffffffff1660e01b815260040161207e92919061340e565b602060405180830381600087803b15801561209857600080fd5b505af11580156120ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120d091908101906129ae565b9050846001600160a01b03167f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc0428686856040516121119493929190613728565b60405180910390a25050505050565b6000610d0a74526577617264457363726f77563253746f7261676560581b6124a9565b60008082602001516000146107b55782516001600160401b031642101561216b57600061091b565b50506020015190565b61217c612120565b6001600160a01b031663cec7bdb1846121948461226d565b6000036040518363ffffffff1660e01b81526004016121b49291906133e5565b600060405180830381600087803b1580156121ce57600080fd5b505af11580156121e2573d6000803e3d6000fd5b505050506121ee6122e9565b6001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040161221b9291906133e5565b602060405180830381600087803b15801561223557600080fd5b505af1158015612249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116f09190810190612954565b6000600160ff1b82106122925760405162461bcd60e51b8152600401610717906136be565b5090565b60405162461bcd60e51b8152600401610717906135de565b6000610d0a6524b9b9bab2b960d11b6124a9565b6000610d0a7853796e746865746978427269646765546f4f7074696d69736d60381b6124a9565b6000610d0a680a6f2dce8d0cae8d2f60bb1b6124a9565b60408051600480825260a0820190925260609160208201608080388339019050509050680a6f2dce8d0cae8d2f60bb1b8160008151811061233d57fe5b60200260200101818152505066119959541bdbdb60ca1b8160018151811061236157fe5b6020026020010181815250506524b9b9bab2b960d11b8160028151811061238457fe5b60200260200101818152505074526577617264457363726f77563253746f7261676560581b816003815181106123b657fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156123f5578160200160208202803883390190505b50905060005b83518110156124375783818151811061241057fe5b602002602001015182828151811061242457fe5b60209081029190910101526001016123fb565b5060005b825181101561247a5782818151811061245057fe5b602002602001015182828651018151811061246757fe5b602090810291909101015260010161243b565b5092915050565b6000828211156124a35760405162461bcd60e51b8152600401610717906135ae565b50900390565b60008181526004602090815260408083205490516001600160a01b0390911691821515916124d99186910161334f565b6040516020818303038152906040529061247a5760405162461bcd60e51b8152600401610717919061354d565b604080518082019091526000808252602082015290565b604051806060016040528060006001600160401b0316815260200160008152602001600081525090565b80356107b581613825565b80516107b581613825565b60008083601f84011261256f57600080fd5b5081356001600160401b0381111561258657600080fd5b602083019150836020820283011115610c1957600080fd5b60008083601f8401126125b057600080fd5b5081356001600160401b038111156125c757600080fd5b602083019150836040820283011115610c1957600080fd5b80356107b581613839565b80516107b581613839565b60006040828403121561260757600080fd5b612611604061376b565b9050600061261f8484612652565b825250602061263084848301612647565b60208301525092915050565b80356107b581613842565b80516107b581613842565b80516107b58161384b565b60006020828403121561266f57600080fd5b600061267b8484612547565b949350505050565b60006020828403121561269557600080fd5b600061267b8484612552565b600080600080608085870312156126b757600080fd5b60006126c38787612547565b94505060206126d487828801612547565b93505060406126e58782880161263c565b92505060606126f68782880161263c565b91505092959194509250565b60008060006040848603121561271757600080fd5b60006127238686612547565b93505060208401356001600160401b0381111561273f57600080fd5b61274b8682870161255d565b92509250509250925092565b6000806040838503121561276a57600080fd5b60006127768585612547565b9250506020612787858286016125df565b9150509250929050565b600080604083850312156127a457600080fd5b60006127b08585612547565b92505060206127878582860161263c565b600080600080606085870312156127d757600080fd5b60006127e38787612547565b94505060206127f48782880161263c565b93505060408501356001600160401b0381111561281057600080fd5b61281c8782880161259e565b95989497509550505050565b60008060006060848603121561283d57600080fd5b60006128498686612547565b935050602061285a8682870161263c565b925050604061286b8682870161263c565b9150509250925092565b6000806000806000806060878903121561288e57600080fd5b86356001600160401b038111156128a457600080fd5b6128b089828a0161255d565b965096505060208701356001600160401b038111156128ce57600080fd5b6128da89828a0161255d565b945094505060408701356001600160401b038111156128f857600080fd5b61290489828a0161255d565b92509250509295509295509295565b6000806020838503121561292657600080fd5b82356001600160401b0381111561293c57600080fd5b6129488582860161255d565b92509250509250929050565b60006020828403121561296657600080fd5b600061267b84846125ea565b60006040828403121561298457600080fd5b600061267b84846125f5565b6000602082840312156129a257600080fd5b600061267b848461263c565b6000602082840312156129c057600080fd5b600061267b8484612647565b6000806000606084860312156129e157600080fd5b60006129ed8686612647565b93505060206129fe86828701612647565b925050604061286b86828701612647565b6000612a1b8383612be8565b505060200190565b6000612a2f83836132eb565b505060600190565b6000612a438383613322565b505060400190565b612a54816137d1565b82525050565b612a54816137a9565b6000612a6e82613797565b612a78818561379b565b9350612a8383613791565b8060005b83811015612ab1578151612a9b8882612a0f565b9750612aa683613791565b925050600101612a87565b509495945050505050565b6000612ac782613797565b612ad1818561379b565b9350612adc83613791565b8060005b83811015612ab1578151612af48882612a23565b9750612aff83613791565b925050600101612ae0565b6000612b1582613797565b612b1f818561379b565b9350612b2a83613791565b8060005b83811015612ab1578151612b428882612a37565b9750612b4d83613791565b925050600101612b2e565b6000612b64838561379b565b93506001600160fb1b03831115612b7a57600080fd5b602083029250612b8b8385846137e3565b50500190565b6000612b9c82613797565b612ba6818561379b565b9350612bb183613791565b8060005b83811015612ab1578151612bc98882612a0f565b9750612bd483613791565b925050600101612bb5565b612a54816137b4565b612a5481610611565b612a54612bfd82610611565b610611565b612a54816137d8565b6000612c1682613797565b612c20818561379b565b9350612c308185602086016137ef565b612c398161381b565b9093019392505050565b6000612c50601c8361379b565b7f656e74726965732073756d206c657373207468616e2074617267657400000000815260200192915050565b6000612c8960358361379b565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612ce0601b8361379b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612d1960338361379b565b7f43616e6e6f7420657363726f7720776974682030206475726174696f6e204f528152721030b137bb329036b0bc2fb23ab930ba34b7b760691b602082015260400192915050565b6000612d6e60248361379b565b7f43616e6e6f742063726561746520657363726f772077697468206164647265738152637328302960e01b602082015260400192915050565b6000612db4601e8361379b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000612ded600e8361379b565b6d09edcd8f240a6f2dce8d0cae8d2f60931b815260200192915050565b6000612e1760388361379b565b7f4f6e6c79207065726d697474656420657363726f772063726561746f7273206381527f616e2063726561746520657363726f7720656e74726965730000000000000000602082015260400192915050565b6000612e76601b8361379b565b7f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000815260200192915050565b6000612eaf6011836137a4565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000612edc60178361379b565b7f5175616e746974792063616e6e6f74206265207a65726f000000000000000000815260200192915050565b6000612f1560478361379b565b7f4d75737420626520656e6f7567682062616c616e636520696e2074686520636f81527f6e747261637420746f2070726f7669646520666f72207468652076657374696e6020820152666720656e74727960c81b604082015260600192915050565b6000612f8460198361379b565b7f4163636f756e74206d657267696e672068617320656e64656400000000000000815260200192915050565b6000612fbd60158361379b565b741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b815260200192915050565b6000612fee60398361379b565b7f43616e206f6e6c7920626520696e766f6b65642062792053796e74686574697881527f427269646765546f4f7074696d69736d20636f6e747261637400000000000000602082015260400192915050565b600061304d60248361379b565b7f43616e6e6f74206e6f6d696e617465206f776e206163636f756e7420746f206d8152636572676560e01b602082015260400192915050565b600061309360128361379b565b71115b9d1c9e4812511cc81c995c5d5a5c995960721b815260200192915050565b60006130c1602f8361379b565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b600061311e60218361379b565b7f41646472657373206973206e6f74206e6f6d696e6174656420746f206d6572678152606560f81b602082015260400192915050565b600061316160118361379b565b701c9958da5c1a595b9d081b9bdd081cd95d607a1b815260200192915050565b600061318e601c8361379b565b7f65786365656473206d6178206d657267696e67206475726174696f6e00000000815260200192915050565b60006131c76019836137a4565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061320060288361379b565b7f4f6e6c792074686520466565506f6f6c2063616e20706572666f726d20746869815267399030b1ba34b7b760c11b602082015260400192915050565b600061324a600f8361379b565b6e1858d8dbdd5b9d081b9bdd081cd95d608a1b815260200192915050565b600061327560288361379b565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b60006132bf601f8361379b565b7f43616e6e6f74206d65726765206163636f756e74732077697468206465627400815260200192915050565b805160608301906132fc8482613346565b50602082015161330f6020850182612be8565b5060408201516116f06040850182612be8565b805160408301906133338482613346565b5060208201516116f06020850182612be8565b612a54816137c5565b600061335a82612ea2565b91506133668284612bf1565b50602001919050565b600061335a826131ba565b602081016107b58284612a5a565b606081016133968286612a4b565b6133a36020830185612a5a565b61267b6040830184612be8565b604081016133be8284612a4b565b6107b560208301613105565b604081016133d88285612a5a565b61091b6020830184612a5a565b604081016133f38285612a5a565b61091b6020830184612be8565b604081016133be8284612a5a565b6060810161341c8285612a5a565b61091b6020830184613322565b608081016134378288612a5a565b6134446020830187612be8565b8181036040830152613457818587612b58565b90506134666060830184612be8565b9695505050505050565b6060810161347e8286612a5a565b6133a36020830185612be8565b6020808252810161091b8184612a63565b6020808252810161091b8184612abc565b606080825281016134bf818688612b58565b90506134ce6020830185612be8565b6134db6040830184612be8565b95945050505050565b6020808252810161091b8184612b91565b602081016107b58284612bdf565b602081016107b58284612be8565b604081016133d88285612be8565b6040810161352d8285612be8565b818103602083015261267b8184612c0b565b602081016107b58284612c02565b6020808252810161091b8184612c0b565b602080825281016107b581612c43565b602080825281016107b581612c7c565b602080825281016107b581612cd3565b602080825281016107b581612d0c565b602080825281016107b581612d61565b602080825281016107b581612da7565b602080825281016107b581612de0565b602080825281016107b581612e0a565b602080825281016107b581612e69565b602080825281016107b581612ecf565b602080825281016107b581612f08565b602080825281016107b581612f77565b602080825281016107b581612fb0565b602080825281016107b581612fe1565b602080825281016107b581613040565b602080825281016107b581613086565b602080825281016107b5816130b4565b602080825281016107b581613111565b602080825281016107b581613154565b602080825281016107b581613181565b602080825281016107b5816131f3565b602080825281016107b58161323d565b602080825281016107b581613268565b602080825281016107b5816132b2565b604081016107b58284613322565b604081016136fa8285612be8565b818103602083015261267b8184612b0a565b604081016133f38285612be8565b6060810161347e8286612be8565b608081016137368287612be8565b6137436020830186612be8565b6137506040830185612be8565b6134db6060830184612be8565b604081016133f38285613346565b6040518181016001600160401b038111828210171561378957600080fd5b604052919050565b60200190565b5190565b90815260200190565b919050565b60006107b5826137b9565b151590565b6001600160a01b031690565b6001600160401b031690565b60006107b5825b60006107b5826137a9565b82818337506000910152565b60005b8381101561380a5781810151838201526020016137f2565b838111156116f05750506000910152565b601f01601f191690565b61382e816137a9565b8114610fb357600080fd5b61382e816137b4565b61382e81610611565b61382e816137c556fea365627a7a723158203e6a9a289c47c403a7429c389a92e72ff5e82518e3c9ad26a680b32dc4e43cec6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": 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": 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": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "recipient",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "targetAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "startIndex",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "endIndex",
							"type": "uint256"
						}
					],
					"name": "Revoked",
					"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": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"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": 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": "from",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "mergeAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"name": "migrateAccountEscrowBalances",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"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": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "permittedEscrowCreators",
					"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",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "recipient",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "targetAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startIndex",
							"type": "uint256"
						}
					],
					"name": "revokeFrom",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"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": "address",
							"name": "creator",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "permitted",
							"type": "bool"
						}
					],
					"name": "setPermittedEscrowCreator",
					"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": "account",
							"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": "account",
							"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": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryId",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xa22aaba9eeb27e9180b7590c1fb535ec5802a1d86fa9799d126ac176a11ecfc9",
				"urls": [
					"bzz-raw://169a7520d9d41ce6d8189c82518b9b19629768ba6a1924946e5d14e5dd613906",
					"dweb:/ipfs/QmXuyKsj1RYyzcKT8aTv8YNRFeRmYv1Xg5mfFdLk4Qw11H"
				]
			},
			"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": "0xa22aaba9eeb27e9180b7590c1fb535ec5802a1d86fa9799d126ac176a11ecfc9",
						"urls": [
							"bzz-raw://169a7520d9d41ce6d8189c82518b9b19629768ba6a1924946e5d14e5dd613906",
							"dweb:/ipfs/QmXuyKsj1RYyzcKT8aTv8YNRFeRmYv1Xg5mfFdLk4Qw11H"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516113bf3803806113bf8339818101604052604081101561003357600080fd5b5080516020909101516249d400826001600160a01b03811661009c576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1504201600255600380546001600160a01b0319166001600160a01b0392909216919091179055506112958061012a6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e3146104fe578063da7bd3e914610506578063ee1d036c14610532578063fec9f9da1461055e5761018e565b80639b217f90146103f8578063a15d59ce14610424578063bb2a7d0c1461042c5761018e565b806370a082311461038c578063759b5225146103b257806379ba5097146103ba5780638ad58777146103c25780638da5cb5b146103ca57806397f46527146103d25761018e565b80632f5bb6611161014b57806346ba2d901161012557806346ba2d901461033257806353a47bb71461033a57806363667eb71461035e5780636b3905c4146103665761018e565b80632f5bb66114610297578063458efde3146102f857806345e5441f146103005761018e565b8063135c0701146101935780631627540c146101bb57806319e740c0146101e15780631bb47b4414610219578063204b676a1461024b578063227d517a14610271575b600080fd5b6101b9600480360360208110156101a957600080fd5b50356001600160a01b0316610584565b005b6101b9600480360360208110156101d157600080fd5b50356001600160a01b0316610635565b610207600480360360208110156101f757600080fd5b50356001600160a01b0316610691565b60408051918252519081900360200190f35b6101b96004803603606081101561022f57600080fd5b506001600160a01b0381351690602081013590604001356106d3565b6102076004803603602081101561026157600080fd5b50356001600160a01b0316610a0e565b6102076004803603602081101561028757600080fd5b50356001600160a01b0316610a29565b6102bd600480360360208110156102ad57600080fd5b50356001600160a01b0316610a3b565b6040518082600260200280838360005b838110156102e55781810151838201526020016102cd565b5050505090500191505060405180910390f35b6101b9610a8c565b6102076004803603606081101561031657600080fd5b506001600160a01b038135169060208101359060400135610c49565b610207610c85565b610342610c8b565b604080516001600160a01b039092168252519081900360200190f35b610207610c9a565b6102076004803603602081101561037c57600080fd5b50356001600160a01b0316610c9f565b610207600480360360208110156103a257600080fd5b50356001600160a01b0316610cb8565b610342610cd3565b6101b9610ce2565b610207610d9e565b610342610da3565b610207600480360360208110156103e857600080fd5b50356001600160a01b0316610db2565b6102076004803603604081101561040e57600080fd5b506001600160a01b038135169060200135610dc4565b610207610ddf565b6101b96004803603606081101561044257600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561046d57600080fd5b82018360208201111561047f57600080fd5b803590602001918460208302840111640100000000831117156104a157600080fd5b9193909290916020810190356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460208302840111640100000000831117156104f357600080fd5b509092509050610de5565b610207610e6f565b6102bd6004803603604081101561051c57600080fd5b506001600160a01b038135169060200135610e74565b6102076004803603604081101561054857600080fd5b506001600160a01b038135169060200135610ee3565b6101b96004803603602081101561057457600080fd5b50356001600160a01b0316610ef6565b61058c610f52565b60025442106105cc5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604081206105ed91611054565b6001600160a01b0381166000908152600560205260409020546006546106189163ffffffff610f9d16565b6006556001600160a01b0316600090815260056020526040812055565b61063d610f52565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60008061069d83610a0e565b905060005b818110156106ca576106b48482610dc4565b156106c25791506106ce9050565b6001016106a2565b5090505b919050565b6106db610f52565b600254421061071b5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b81421061076f576040805162461bcd60e51b815260206004820152601a60248201527f54696d65206d75737420626520696e2074686520667574757265000000000000604482015290519081900360640190fd5b806107c1576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b6006546107d4908263ffffffff610ffa16565b600655600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561082257600080fd5b505afa158015610836573d6000803e3d6000fd5b505050506040513d602081101561084c57600080fd5b5051600654111561088e5760405162461bcd60e51b81526004018080602001828103825260478152602001806111c26047913960600191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460148111156108fd576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b80610922576001600160a01b03841660009081526005602052604090208290556109b7565b8261093885600161093288610a0e565b03610dc4565b106109745760405162461bcd60e51b815260040180806020018281038252603781526020018061118b6037913960400191505060405180910390fd5b6001600160a01b03841660009081526005602052604090205461099d908363ffffffff610ffa16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925286825281830186905280546001810180835591855292909320610a069260029081029091019190611078565b505050505050565b6001600160a01b031660009081526004602052604090205490565b60056020526000908152604090205481565b610a436110b6565b6000610a4e83610691565b9050610a5983610a0e565b811415610a7b57505060408051808201909152600080825260208201526106ce565b610a858382610e74565b9392505050565b6000610a9733610a0e565b90506000805b82811015610b3c576000610ab13383610dc4565b905042811115610ac15750610b3c565b6000610acd3384610ee3565b90508015610b3257604080518082018252600080825260208083018290523382526004905291909120805485908110610b0257fe5b9060005260206000209060020201906002610b1e9291906110d4565b50610b2f848263ffffffff610ffa16565b93505b5050600101610a9d565b508015610c4557600654610b56908263ffffffff610f9d16565b60065533600090815260056020526040902054610b79908263ffffffff610f9d16565b33600081815260056020908152604080832094909455600354845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b158015610bde57600080fd5b505af1158015610bf2573d6000803e3d6000fd5b505050506040513d6020811015610c0857600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b60046020528260005260406000208281548110610c6257fe5b90600052602060002090600202018160028110610c7b57fe5b0154925083915050565b60025481565b6001546001600160a01b031681565b600081565b6000610caa82610a3b565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b6003546001600160a01b031681565b6001546001600160a01b03163314610d2b5760405162461bcd60e51b81526004018080602001828103825260358152602001806111566035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600181565b6000546001600160a01b031681565b6000610dbd82610a3b565b6001610cad565b6000610dd08383610e74565b60005b60200201519392505050565b60065481565b610ded610f52565b6002544210610e2d5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b60005b83811015610a0657610e6786868684818110610e4857fe5b90506020020135858585818110610e5b57fe5b905060200201356106d3565b600101610e30565b601481565b610e7c6110b6565b6001600160a01b0383166000908152600460205260409020805483908110610ea057fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610ec3575050505050905092915050565b6000610eef8383610e74565b6001610dd3565b610efe610f52565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f46e9c68bd7831071bdd478f1ae4c4a52463961a9d620383a0a121dbfc0e0f06d9181900360200190a150565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611209602f913960400191505060405180910390fd5b565b600082821115610ff4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610a85576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460008255600202906000526020600020908101906110759190611107565b50565b82600281019282156110a6579160200282015b828111156110a657825182559160200191906001019061108b565b506110b292915061112d565b5090565b60405180604001604052806002906020820280388339509192915050565b82600281019282156110a6579160200282015b828111156110a6578251829060ff169055916020019190600101906110e7565b61112a91905b808211156110b25760006111218282611147565b5060020161110d565b90565b61112a91905b808211156110b25760008155600101611133565b50600081556001016000905556fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820f19bb5842e466642d3f0921e9e4a3fcbe6815bb5068e1a1ba08e0047b1f2528164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ISynthetix",
							"name": "_synthetix",
							"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": "newSynthetix",
							"type": "address"
						}
					],
					"name": "SynthetixUpdated",
					"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": "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 ISynthetix",
							"name": "_synthetix",
							"type": "address"
						}
					],
					"name": "setSynthetix",
					"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": "synthetix",
					"outputs": [
						{
							"internalType": "contract ISynthetix",
							"name": "",
							"type": "address"
						}
					],
					"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": "0xd5f888b7ff23c43e8afcc60025a8fcbe44d05cbae71e404e80e8393cf037d1ed",
				"urls": [
					"bzz-raw://9267a8c2a41724324036221ea35cb5ebfcb29b50148044da2dd4df75576fe86b",
					"dweb:/ipfs/QmU1onJsxuBUEnfgr1xL41Jtw9M9UPb8dKTAftwrnMsxTf"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixEscrow.sol": "SynthetixEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixEscrow.sol": {
						"keccak256": "0xd5f888b7ff23c43e8afcc60025a8fcbe44d05cbae71e404e80e8393cf037d1ed",
						"urls": [
							"bzz-raw://9267a8c2a41724324036221ea35cb5ebfcb29b50148044da2dd4df75576fe86b",
							"dweb:/ipfs/QmU1onJsxuBUEnfgr1xL41Jtw9M9UPb8dKTAftwrnMsxTf"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixState": {
			"bytecode": "608060405234801561001057600080fd5b50604051610a92380380610a928339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050506108ec806101a66000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638b3f8088116100a2578063aefc4ccb11610071578063aefc4ccb14610261578063b16c09f014610269578063b992812e1461028f578063ba08f299146102c9578063cd92eba9146102d15761010b565b80638b3f8088146101e65780638da5cb5b146102255780639371bede1461022d578063a764eb45146102355761010b565b806346317712116100de578063463177121461018c57806352f445ca1461019457806353a47bb7146101ba57806379ba5097146101de5761010b565b806308d95cd5146101105780631627540c1461013f5780631bfba595146101675780633d31e97b1461016f575b600080fd5b61012d6004803603602081101561012657600080fd5b50356102d9565b60408051918252519081900360200190f35b6101656004803603602081101561015557600080fd5b50356001600160a01b03166102f7565b005b610165610353565b6101656004803603602081101561018557600080fd5b50356103b5565b61012d610433565b610165600480360360208110156101aa57600080fd5b50356001600160a01b0316610459565b6101c26104b5565b604080516001600160a01b039092168252519081900360200190f35b6101656104c4565b61020c600480360360208110156101fc57600080fd5b50356001600160a01b0316610580565b6040805192835260208301919091528051918290030190f35b6101c2610599565b61012d6105a8565b6101656004803603604081101561024b57600080fd5b506001600160a01b0381351690602001356105ae565b6101c261061e565b6101656004803603602081101561027f57600080fd5b50356001600160a01b031661062d565b6102b5600480360360208110156102a557600080fd5b50356001600160a01b0316610696565b604080519115158252519081900360200190f35b6101656106b3565b61012d610710565b600581815481106102e657fe5b600091825260209091200154905081565b6102ff610716565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b0316331461039c5760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6004546103b090600163ffffffff61076116565b600455565b6002546001600160a01b031633146103fe5760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00155565b6005805460009190600019810190811061044957fe5b9060005260206000200154905090565b610461610716565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b0316331461050d5760405162461bcd60e51b81526004018080602001828103825260358152602001806108206035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6003602052600090815260409020805460019091015482565b6000546001600160a01b031681565b60045481565b6002546001600160a01b031633146105f75760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6001600160a01b039091166000908152600360205260409020908155600554600190910155565b6002546001600160a01b031681565b6002546001600160a01b031633146106765760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6001600160a01b0316600090815260036020526040812081815560010155565b6001600160a01b0316600090815260036020526040902054151590565b6002546001600160a01b031633146106fc5760405162461bcd60e51b81526004018080602001828103825260348152602001806108846034913960400191505060405180910390fd5b6004546103b090600163ffffffff6107c216565b60055490565b6000546001600160a01b0316331461075f5760405162461bcd60e51b815260040180806020018281038252602f815260200180610855602f913960400191505060405180910390fd5b565b6000828201838110156107bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115610819576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a723158200fea51587c85e52aef180fed2951918bba6c502ff83de52f8b522d706ef8b54a64736f6c63430005100032",
			"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": "0x61b3f9c965181de7b722551400feaccefe626908f20643b10fe320d6b4154038",
				"urls": [
					"bzz-raw://1394bba8674084f2b08d25527e42c0e78db18ed8dc7c1acfbb080e3ee953acf3",
					"dweb:/ipfs/Qma6pHPAT63bAzEnwvZG2UgkUwbU4YX8ez567iR1LtmLcY"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"legacy/SynthetixState.sol": "SynthetixState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"legacy/SynthetixState.sol": {
						"keccak256": "0x61b3f9c965181de7b722551400feaccefe626908f20643b10fe320d6b4154038",
						"urls": [
							"bzz-raw://1394bba8674084f2b08d25527e42c0e78db18ed8dc7c1acfbb080e3ee953acf3",
							"dweb:/ipfs/Qma6pHPAT63bAzEnwvZG2UgkUwbU4YX8ez567iR1LtmLcY"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixDebtShare": {
			"bytecode": "6080604052600a805460ff60881b191690553480156200001e57600080fd5b506040516200247238038062002472833981810160405260408110156200004457600080fd5b50805160209091015180826001600160a01b038116620000ab576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260158082527f53796e746865746978204465627420536861726573000000000000000000000060209092019182526200016a91600891620001be565b506040805180820190915260038082526253445360e81b60209092019182526200019791600991620001be565b5050600a8054610100600160881b031960ff19909116601217166101001790555062000263565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020157805160ff191683800117855562000231565b8280016001018555821562000231579182015b828111156200023157825182559160200191906001019062000214565b506200023f92915062000243565b5090565b6200026091905b808211156200023f57600081556001016200024a565b90565b6121ff80620002736000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806379ba509711610125578063a3e0a7d7116100ad578063cbf1304d1161007c578063cbf1304d146106cf578063d186820614610721578063dd62ed3e14610747578063e6d24bbd14610775578063f9cb1da31461079b5761021c565b8063a3e0a7d714610660578063a9059cbb146102c2578063abb6de951461067d578063c2f04b0a146106a35761021c565b80638ced14df116100f45780638ced14df1461053e5780638da5cb5b1461056a5780638f8495181461057257806395d89b4114610634578063988e65951461063c5761021c565b806379ba5097146104aa57806386f25e4d146104b2578063899ffef4146104ba5780638a25acf4146105125761021c565b806325428394116101a8578063392e53cd11610177578063392e53cd1461046457806353a47bb71461046c578063614d08f81461047457806370a082311461047c57806374185360146104a25761021c565b806325428394146103f25780632af64bd314610418578063313ce567146104205780633913d24b1461043e5761021c565b80631627540c116101ef5780631627540c1461032a578063174495dd1461035057806318160ddd146103765780631a378f0d1461039057806323b872dd146103bc5761021c565b806304f3bcec1461022157806306fdde0314610245578063095ea7b3146102c25780631495552814610302575b600080fd5b6102296107c1565b604080516001600160a01b039092168252519081900360200190f35b61024d6107d0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028757818101518382015260200161026f565b50505050905090810190601f1680156102b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ee600480360360408110156102d857600080fd5b506001600160a01b03813516906020013561085e565b604080519115158252519081900360200190f35b6103286004803603602081101561031857600080fd5b50356001600160a01b0316610897565b005b6103286004803603602081101561034057600080fd5b50356001600160a01b03166108fd565b6103286004803603602081101561036657600080fd5b50356001600160a01b0316610959565b61037e6109b7565b60408051918252519081900360200190f35b610328600480360360408110156103a657600080fd5b506001600160a01b0381351690602001356109db565b6102ee600480360360608110156103d257600080fd5b506001600160a01b03813581169160208101359091169060400135610b61565b6103286004803603602081101561040857600080fd5b50356001600160a01b0316610c61565b6102ee610cbf565b610428610dc9565b6040805160ff9092168252519081900360200190f35b6103286004803603602081101561045457600080fd5b50356001600160a01b0316610dd2565b6102ee610e38565b610229610e48565b61037e610e57565b61037e6004803603602081101561049257600080fd5b50356001600160a01b0316610e70565b610328610ede565b6103286110a6565b610328611162565b6104c261117f565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104fe5781810151838201526020016104e6565b505050509050019250505060405180910390f35b61037e6004803603604081101561052857600080fd5b506001600160a01b0381351690602001356111c7565b61037e6004803603604081101561055457600080fd5b506001600160a01b0381351690602001356112e6565b61022961132c565b6103286004803603604081101561058857600080fd5b8101906020810181356401000000008111156105a357600080fd5b8201836020820111156105b557600080fd5b803590602001918460208302840111640100000000831117156105d757600080fd5b9193909290916020810190356401000000008111156105f557600080fd5b82018360208201111561060757600080fd5b8035906020019184602083028401116401000000008311171561062957600080fd5b50909250905061133b565b61024d611643565b61064461169e565b604080516001600160801b039092168252519081900360200190f35b61037e6004803603602081101561067657600080fd5b50356116b2565b6103286004803603602081101561069357600080fd5b50356001600160801b03166116c4565b610328600480360360408110156106b957600080fd5b506001600160a01b0381351690602001356117fb565b6106fb600480360360408110156106e557600080fd5b506001600160a01b03813516906020013561197d565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b6102ee6004803603602081101561073757600080fd5b50356001600160a01b03166119bd565b61037e6004803603604081101561075d57600080fd5b506001600160a01b03813581169160200135166119d2565b61037e6004803603602081101561078b57600080fd5b50356001600160a01b0316611a04565b6102ee600480360360208110156107b157600080fd5b50356001600160a01b0316611a23565b6002546001600160a01b031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108565780601f1061082b57610100808354040283529160200191610856565b820191906000526020600020905b81548152906001019060200180831161083957829003601f168201915b505050505081565b600060405162461bcd60e51b815260040180806020018281038252602181526020018061215c6021913960400191505060405180910390fd5b61089f611a38565b6001600160a01b038116600081815260046020908152604091829020805460ff19166001908117909155825190815291517f6e713465f03f44982be319e75ac01e2170374630e7bde28a104881e236fb07e39281900390910190a250565b610905611a38565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610961611a38565b6001600160a01b0381166000818152600560209081526040808320805460ff191690558051928352517f6c26d4e15c21227ab0fca84cab71715b23c6c4137b24cbcaedc517b673a1781f9281900390910190a250565b600a5461010090046001600160801b03166000908152600760205260409020545b90565b6109ed6524b9b9bab2b960d11b611a83565b6001600160a01b0316336001600160a01b031614610a3c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061212f602d913960400191505060405180910390fd5b6001600160a01b038216610a97576040805162461bcd60e51b815260206004820152601d60248201527f45524332303a206275726e2066726f6d207a65726f2061646472657373000000604482015290519081900360640190fd5b610aa18282611b67565b600a5461010090046001600160801b0316600090815260076020526040902054610acb9082611d45565b600a5461010090046001600160801b03166000908152600760209081526040808320939093558251848152925191926001600160a01b0386169260008051602061217d833981519152929181900390910190a36040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b3360009081526004602052604081205460ff16610baf5760405162461bcd60e51b81526004018080602001828103825260318152602001806120a86031913960400191505060405180910390fd5b6001600160a01b038316610c0a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a2073656e6420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610c148483611b67565b610c1e8383611da2565b826001600160a01b0316846001600160a01b031660008051602061217d833981519152846040518082815260200191505060405180910390a35060019392505050565b610c69611a38565b6001600160a01b0381166000818152600460209081526040808320805460ff191690558051928352517f6e713465f03f44982be319e75ac01e2170374630e7bde28a104881e236fb07e39281900390910190a250565b60006060610ccb61117f565b905060005b8151811015610dc0576000828281518110610ce757fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610d4f57600080fd5b505afa158015610d63573d6000803e3d6000fd5b505050506040513d6020811015610d7957600080fd5b50516001600160a01b0316141580610da657506000818152600360205260409020546001600160a01b0316155b15610db757600093505050506109d8565b50600101610cd0565b50600191505090565b600a5460ff1681565b610dda611a38565b6001600160a01b038116600081815260056020908152604091829020805460ff19166001908117909155825190815291517f6c26d4e15c21227ab0fca84cab71715b23c6c4137b24cbcaedc517b673a1781f9281900390910190a250565b600a54600160881b900460ff1681565b6001546001600160a01b031681565b7153796e74686574697844656274536861726560701b81565b6001600160a01b03811660009081526006602052604081205480610e98576000915050610ed9565b6001600160a01b038316600090815260066020526040902080546000198301908110610ec057fe5b6000918252602090912001546001600160801b03169150505b919050565b6060610ee861117f565b905060005b81518110156110a2576000828281518110610f0457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561100557600080fd5b505afa158015611019573d6000803e3d6000fd5b505050506040513d602081101561102f57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610eed565b5050565b6001546001600160a01b031633146110ef5760405162461bcd60e51b8152600401808060200182810382526035815260200180611fe36035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b61116a611a38565b600a805460ff60881b1916600160881b179055565b604080516001808252818301909252606091602080830190803883390190505090506524b9b9bab2b960d11b816000815181106111b857fe5b60200260200101818152505090565b6001600160a01b03821660009081526006602052604081205481601e82116111f05760006111f5565b601e82035b905060001982015b818112611299576001600160a01b038616600090815260066020526040902080548691908390811061122b57fe5b600091825260209091200154600160801b90046001600160801b031611611290576001600160a01b038616600090815260066020526040902080548290811061127057fe5b6000918252602090912001546001600160801b031693506112e092505050565b600019016111fd565b600081126112d85760405162461bcd60e51b815260040180806020018281038252602f815260200180612018602f913960400191505060405180910390fd5b600093505050505b92915050565b6000806112f384846111c7565b9050806113045760009150506112e0565b60008381526007602052604090205461132490829063ffffffff611e9416565b949350505050565b6000546001600160a01b031681565b611343611a38565b600a54600160881b900460ff161561138c5760405162461bcd60e51b81526004018080602001828103825260358152602001806120fa6035913960400191505060405180910390fd5b600a5461010090046001600160801b0316600090815260076020526040812054905b8481101561161c5760006113dc8787848181106113c757fe5b905060200201356001600160a01b0316610e70565b90508484838181106113ea57fe5b905060200201358110156114ff5760008186868581811061140757fe5b9050602002013503905061143688888581811061142057fe5b905060200201356001600160a01b031682611da2565b611446848263ffffffff611ec516565b935087878481811061145457fe5b905060200201356001600160a01b03166001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28787848181106114b057fe5b905060200201356001600160a01b03166001600160a01b031660006001600160a01b031660008051602061217d833981519152836040518082815260200191505060405180910390a350611613565b84848381811061150b57fe5b9050602002013581111561161357600085858481811061152757fe5b905060200201358203905061155788888581811061154157fe5b905060200201356001600160a01b031682611b67565b611567848263ffffffff611d4516565b935087878481811061157557fe5b905060200201356001600160a01b03166001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a260008888858181106115d357fe5b905060200201356001600160a01b03166001600160a01b031660008051602061217d833981519152836040518082815260200191505060405180910390a3505b506001016113ae565b50600a5461010090046001600160801b031660009081526007602052604090205550505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108565780601f1061082b57610100808354040283529160200191610856565b600a5461010090046001600160801b031681565b60076020526000908152604090205481565b3360009081526005602052604090205460ff168061170457506116ef6524b9b9bab2b960d11b611a83565b6001600160a01b0316336001600160a01b0316145b61173f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061219d602e913960400191505060405180910390fd5b600a546001600160801b036101009091048116908216116117a7576040805162461bcd60e51b815260206004820152601e60248201527f706572696f64206964206d75737420616c7761797320696e6372656173650000604482015290519081900360640190fd5b600a8054610100908190046001600160801b03908116600090815260076020526040808220549590921680825291902093909355815470ffffffffffffffffffffffffffffffff0019169202919091179055565b61180d6524b9b9bab2b960d11b611a83565b6001600160a01b0316336001600160a01b03161461185c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061212f602d913960400191505060405180910390fd5b6001600160a01b0382166118b7576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6118c18282611da2565b600a5461010090046001600160801b03166000908152600760205260409020546118eb9082611ec5565b600a5461010090046001600160801b0316600090815260076020908152604080832093909355825184815292516001600160a01b0386169360008051602061217d83398151915292908290030190a36040805182815290516001600160a01b038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b6006602052816000526040600020818154811061199657fe5b6000918252602090912001546001600160801b038082169350600160801b90910416905082565b60046020526000908152604090205460ff1681565b6001600160a01b03811660009081526004602052604081205460ff16156119fc57506000196112e0565b5060006112e0565b600a546000906112e090839061010090046001600160801b03166112e6565b60056020526000908152604090205460ff1681565b6000546001600160a01b03163314611a815760405162461bcd60e51b815260040180806020018281038252602f815260200180612079602f913960400191505060405180910390fd5b565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611b605760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b25578181015183820152602001611b0d565b50505050905090810190601f168015611b525780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b6001600160a01b03821660009081526006602052604090205480611bbc5760405162461bcd60e51b81526004018080602001828103825260328152602001806120476032913960400191505060405180910390fd5b6001600160a01b03831660009081526006602052604081208054611c0b9185916000198601908110611bea57fe5b6000918252602090912001546001600160801b03169063ffffffff611d4516565b600a546001600160a01b038616600090815260066020526040902080549293506101009091046001600160801b0316916000198501908110611c4957fe5b600091825260209091200154600160801b90046001600160801b031614611cea576001600160a01b038416600090815260066020908152604080832081518083019092526001600160801b038086168352600a546101009004811683850190815282546001810184559286529390942091519101805492518416600160801b029184166001600160801b031990931692909217909216919091179055611d3f565b6001600160a01b038416600090815260066020526040902080548291906000198501908110611d1557fe5b600091825260209091200180546001600160801b0319166001600160801b03929092169190911790555b50505050565b600082821115611d9c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03821660009081526006602052604090205480611e40576001600160a01b038316600090815260066020908152604080832081518083019092526001600160801b038087168352600a546101009004811683850190815282546001810184559286529390942091519101805492518416600160801b029184166001600160801b031990931692909217909216919091179055611e8f565b6001600160a01b03831660009081526006602052604081208054611c0b9185916000198601908110611e6e57fe5b6000918252602090912001546001600160801b03169063ffffffff611ec516565b505050565b6000611ebe82611eb285670de0b6b3a764000063ffffffff611f1f16565b9063ffffffff611f7816565b9392505050565b600082820183811015611ebe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082611f2e575060006112e0565b82820282848281611f3b57fe5b0414611ebe5760405162461bcd60e51b81526004018080602001828103825260218152602001806120d96021913960400191505060405180910390fd5b6000808211611fce576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611fd957fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697053796e7468657469784465627453686172653a206e6f7420666f756e6420696e20726563656e7420686973746f727953796e7468657469784465627453686172653a206163636f756e7420686173206e6f20736861726520746f206465647563744f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e53796e7468657469784465627453686172653a206f6e6c792062726f6b6572732063616e207472616e7366657246726f6d536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753796e746865746978446562743a206f6e6c792063616c6c61626c65207768696c65207374696c6c20696e697469616c697a696e6753796e7468657469784465627453686172653a206f6e6c79206973737565722063616e206d696e742f6275726e646562742073686172657320617265206e6f74207472616e736665727261626c65ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef53796e7468657469784465627453686172653a206e6f7420617574686f72697a656420746f20736e617073686f74a265627a7a723158201081ebb069728c77fd347cd93b083b7a30fe74be14b41d1076aaab2b8d1b7f2d64736f6c63430005100032",
			"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": "0x7bfd77e37b3eccf688b37d4e99c037735356fc394c8bd7dc6588fca1d5dfa87b",
				"urls": [
					"bzz-raw://11b8bc1cd9698edce27b0174b6ebcebdbc60c1651655fe4ab02f8e6b3ca98180",
					"dweb:/ipfs/Qmb22Z4cHaia3aYT37WHbUjtXew9BBd7ouxDPF4zhnxJG7"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixDebtShare.sol": "SynthetixDebtShare"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixDebtShare.sol": {
						"keccak256": "0x7bfd77e37b3eccf688b37d4e99c037735356fc394c8bd7dc6588fca1d5dfa87b",
						"urls": [
							"bzz-raw://11b8bc1cd9698edce27b0174b6ebcebdbc60c1651655fe4ab02f8e6b3ca98180",
							"dweb:/ipfs/Qmb22Z4cHaia3aYT37WHbUjtXew9BBd7ouxDPF4zhnxJG7"
						]
					}
				},
				"version": 1
			}
		},
		"Proxy": {
			"bytecode": "608060405234801561001057600080fd5b506040516106ee3803806106ee8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506105f4806100fa6000396000f3fe6080604052600436106100705760003560e01c806379ba50971161004e57806379ba5097146101925780638da5cb5b146101a7578063907dff97146101bc578063d4b839921461025157610070565b80631627540c146100f957806353a47bb71461012e578063776d1a011461015f575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b1580156100bc57600080fd5b505af11580156100d0573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e806100f5573d82fd5b3d82f35b34801561010557600080fd5b5061012c6004803603602081101561011c57600080fd5b50356001600160a01b0316610266565b005b34801561013a57600080fd5b506101436102c2565b604080516001600160a01b039092168252519081900360200190f35b34801561016b57600080fd5b5061012c6004803603602081101561018257600080fd5b50356001600160a01b03166102d1565b34801561019e57600080fd5b5061012c61032d565b3480156101b357600080fd5b506101436103e9565b3480156101c857600080fd5b5061012c600480360360c08110156101df57600080fd5b8101906020810181356401000000008111156101fa57600080fd5b82018360208201111561020c57600080fd5b8035906020019184600183028401116401000000008311171561022e57600080fd5b9193509150803590602081013590604081013590606081013590608001356103f8565b34801561025d57600080fd5b50610143610501565b61026e610510565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6001546001600160a01b031681565b6102d9610510565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b031633146103765760405162461bcd60e51b815260040180806020018281038252603581526020018061055c6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b0316331461044e576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a9084908190840183828082843760009201919091525092935089925050811590506104b857600181146104c357600281146104cf57600381146104dc57600481146104ea576104f5565b8260208301a06104f5565b868360208401a16104f5565b85878460208501a26104f5565b8486888560208601a36104f5565b838587898660208701a45b50505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146105595760405162461bcd60e51b815260040180806020018281038252602f815260200180610591602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820b0d001e9525ea4f2f7842efe5ededd72396bc2f123977d2e863c909751f76f8664736f6c63430005100032",
			"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": "0x418423b32d3efe75ea4d6dae77567f47db34117536c2bcb36513800af7ecd14f",
				"urls": [
					"bzz-raw://a3a1ea8c06dd507fd8b7585c5601cadb4383bce9a0ed2139be20a8fed9f6ea7c",
					"dweb:/ipfs/QmTdT3qcRZB3JYQ43srLNewubwHb8eQtCDh6X5sVtrqqeY"
				]
			},
			"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": "0x418423b32d3efe75ea4d6dae77567f47db34117536c2bcb36513800af7ecd14f",
						"urls": [
							"bzz-raw://a3a1ea8c06dd507fd8b7585c5601cadb4383bce9a0ed2139be20a8fed9f6ea7c",
							"dweb:/ipfs/QmTdT3qcRZB3JYQ43srLNewubwHb8eQtCDh6X5sVtrqqeY"
						]
					}
				},
				"version": 1
			}
		},
		"EternalStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516112143803806112148339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150505061106e806101a66000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806353a47bb7116100f9578063a209a29c11610097578063ba69fcaa11610071578063ba69fcaa146104e9578063bdc963d814610506578063c9a52d2c14610523578063f58660661461059a576101a9565b8063a209a29c146104a1578063a77aa49e146104be578063aefc4ccb146104e1576101a9565b80638267a9ee116100d35780638267a9ee146104425780638da5cb5b1461045f5780639007127b1461046757806393fe424814610484576101a9565b806353a47bb7146104065780635a2bf25a1461040e57806379ba50971461043a576101a9565b806325cf512d116101665780633eba9ed2116101405780633eba9ed2146102f057806344bfa56e146103155780634c77e5ba146103a757806352f445ca146103e0576101a9565b806325cf512d1461028d5780633562fd20146102b05780633cc1635c146102d3576101a9565b8063025ec81a146101ae578063043106c0146101dd5780630c55d925146101fc578063124f2418146102195780631627540c1461023657806317e7dd221461025c575b600080fd5b6101cb600480360360208110156101c457600080fd5b5035610611565b60408051918252519081900360200190f35b6101fa600480360360208110156101f357600080fd5b5035610623565b005b6101fa6004803603602081101561021257600080fd5b503561068a565b6101fa6004803603602081101561022f57600080fd5b50356106ed565b6101fa6004803603602081101561024c57600080fd5b50356001600160a01b0316610747565b6102796004803603602081101561027257600080fd5b50356107a3565b604080519115158252519081900360200190f35b6101fa600480360360408110156102a357600080fd5b50803590602001356107b8565b6101fa600480360360408110156102c657600080fd5b5080359060200135610813565b6101fa600480360360208110156102e957600080fd5b503561086e565b6101fa6004803603604081101561030657600080fd5b508035906020013515156108cf565b6103326004803603602081101561032b57600080fd5b5035610938565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036c578181015183820152602001610354565b50505050905090810190601f1680156103995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c4600480360360208110156103bd57600080fd5b50356109d9565b604080516001600160a01b039092168252519081900360200190f35b6101fa600480360360208110156103f657600080fd5b50356001600160a01b03166109f4565b6103c4610a50565b6101fa6004803603604081101561042457600080fd5b50803590602001356001600160a01b0316610a5f565b6101fa610ad6565b6101fa6004803603602081101561045857600080fd5b5035610b92565b6103c4610bec565b6101cb6004803603602081101561047d57600080fd5b5035610bfb565b6101fa6004803603602081101561049a57600080fd5b5035610c0d565b610332600480360360208110156104b757600080fd5b5035610c67565b6101fa600480360360408110156104d457600080fd5b5080359060200135610cd1565b6103c4610d2c565b6101fa600480360360208110156104ff57600080fd5b5035610d3b565b6101cb6004803603602081101561051c57600080fd5b5035610d9b565b6101fa6004803603604081101561053957600080fd5b8135919081019060408101602082013564010000000081111561055b57600080fd5b82018360208201111561056d57600080fd5b8035906020019184600183028401116401000000008311171561058f57600080fd5b509092509050610dad565b6101fa600480360360408110156105b057600080fd5b813591908101906040810160208201356401000000008111156105d257600080fd5b8201836020820111156105e457600080fd5b8035906020019184600183028401116401000000008311171561060657600080fd5b509092509050610e15565b60009081526007602052604090205490565b6002546001600160a01b0316331461066c5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260056020526040902080546001600160a01b0319169055565b6002546001600160a01b031633146106d35760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60008181526006602052604081206106ea91610ec2565b50565b6002546001600160a01b031633146107365760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260076020526040812055565b61074f610e77565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60009081526008602052604090205460ff1690565b6002546001600160a01b031633146108015760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526007602052604090912055565b6002546001600160a01b0316331461085c5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526003602052604090912055565b6002546001600160a01b031633146108b75760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000908152600860205260409020805460ff19169055565b6002546001600160a01b031633146109185760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600091825260086020526040909120805460ff1916911515919091179055565b60008181526006602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156109cd5780601f106109a2576101008083540402835291602001916109cd565b820191906000526020600020905b8154815290600101906020018083116109b057829003601f168201915b50505050509050919050565b6000908152600560205260409020546001600160a01b031690565b6109fc610e77565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b03163314610aa85760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526005602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610b1f5760405162461bcd60e51b8152600401808060200182810382526035815260200180610fa26035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b03163314610bdb5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260096020526040812055565b6000546001600160a01b031681565b60009081526009602052604090205490565b6002546001600160a01b03163314610c565760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260036020526040812055565b60008181526004602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156109cd5780601f106109a2576101008083540402835291602001916109cd565b6002546001600160a01b03163314610d1a5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b031681565b6002546001600160a01b03163314610d845760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60008181526004602052604081206106ea91610ec2565b60009081526003602052604090205490565b6002546001600160a01b03163314610df65760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000838152600660205260409020610e0f908383610f06565b50505050565b6002546001600160a01b03163314610e5e5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000838152600460205260409020610e0f908383610f06565b6000546001600160a01b03163314610ec05760405162461bcd60e51b815260040180806020018281038252602f815260200180610fd7602f913960400191505060405180910390fd5b565b50805460018160011615610100020316600290046000825580601f10610ee857506106ea565b601f0160209004906000526020600020908101906106ea9190610f84565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610f475782800160ff19823516178555610f74565b82800160010185558215610f74579182015b82811115610f74578235825591602001919060010190610f59565b50610f80929150610f84565b5090565b610f9e91905b80821115610f805760008155600101610f8a565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a72315820e7b1178f99c31b0fcc25293a4edd777f8c7adb06dc39c5105be73a6763e3a55a64736f6c63430005100032",
			"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": "0x39f56ba1a86f60d11c77a53f00b5e257fd8d466fcd5d3f507587e369cac78d84",
				"urls": [
					"bzz-raw://9983bd44e8f08876def4b40a9ad3091032482e4113488f8b09bc3eb40bcd5692",
					"dweb:/ipfs/QmSYtV8h2VKr34asiD1dxWQgZsAKQnpYjY7pysUizSXHPv"
				]
			},
			"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": "0x39f56ba1a86f60d11c77a53f00b5e257fd8d466fcd5d3f507587e369cac78d84",
						"urls": [
							"bzz-raw://9983bd44e8f08876def4b40a9ad3091032482e4113488f8b09bc3eb40bcd5692",
							"dweb:/ipfs/QmSYtV8h2VKr34asiD1dxWQgZsAKQnpYjY7pysUizSXHPv"
						]
					}
				},
				"version": 1
			}
		},
		"DelegateApprovals": {
			"bytecode": "61012060405269105c1c1c9bdd99505b1b60b21b60809081526d4275726e466f724164647265737360901b60a0526e4973737565466f724164647265737360881b60c0526e436c61696d466f724164647265737360881b60e0527145786368616e6765466f724164647265737360701b61010052610081906002906005610195565b5034801561008e57600080fd5b50604051610fbc380380610fbc833981810160405260408110156100b157600080fd5b508051602090910151816001600160a01b038116610116576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600780546001600160a01b0319166001600160a01b0392909216919091179055506101f0565b82600581019282156101c3579160200282015b828111156101c35782518255916020019190600101906101a8565b506101cf9291506101d3565b5090565b6101ed91905b808211156101cf57600081556001016101d9565b90565b610dbd806101ff6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063b5bb561911610097578063c5e17ab011610071578063c5e17ab014610487578063d8eeb7c11461048f578063e32b3f5214610497578063faf431bb1461049f5761018e565b8063b5bb561914610415578063b9156efa1461043b578063bc87acbf146104615761018e565b80638da5cb5b1461038357806398ff9c541461038b5780639c79ce35146103935780639cbc2ebe146103b95780639f61d336146103c1578063b42e0f15146103e75761018e565b8063447fbc631161014b5780636c8bc9fe116101255780636c8bc9fe146103015780636f95200b1461032757806379ba50971461034d5780637d3f0ba2146103555761018e565b8063447fbc631461029157806353a47bb7146102b757806359cec3d6146102db5761018e565b806304872617146101935780631627540c146101d557806321f4ae57146101fd5780632c70aecf1461022b5780634180e5b514610245578063431ce5401461026b575b600080fd5b6101c1600480360360408110156101a957600080fd5b506001600160a01b03813581169160200135166104cd565b604080519115158252519081900360200190f35b6101fb600480360360208110156101eb57600080fd5b50356001600160a01b03166104f3565b005b6101c16004803603604081101561021357600080fd5b506001600160a01b038135811691602001351661054f565b61023361056e565b60408051918252519081900360200190f35b6101fb6004803603602081101561025b57600080fd5b50356001600160a01b0316610584565b6101fb6004803603602081101561028157600080fd5b50356001600160a01b03166105a4565b6101fb600480360360208110156102a757600080fd5b50356001600160a01b03166105c1565b6102bf6105e1565b604080516001600160a01b039092168252519081900360200190f35b6101fb600480360360208110156102f157600080fd5b50356001600160a01b03166105f0565b6101fb6004803603602081101561031757600080fd5b50356001600160a01b031661060c565b6101fb6004803603602081101561033d57600080fd5b50356001600160a01b0316610629565b6101fb61065a565b6101c16004803603604081101561036b57600080fd5b506001600160a01b0381358116916020013516610716565b6102bf610734565b6102bf610743565b6101fb600480360360208110156103a957600080fd5b50356001600160a01b0316610752565b61023361076e565b6101fb600480360360208110156103d757600080fd5b50356001600160a01b031661077f565b6101c1600480360360408110156103fd57600080fd5b506001600160a01b038135811691602001351661079c565b6101fb6004803603602081101561042b57600080fd5b50356001600160a01b031661082f565b6101fb6004803603602081101561045157600080fd5b50356001600160a01b03166108d6565b6101fb6004803603602081101561047757600080fd5b50356001600160a01b03166108f6565b61023361090e565b610233610924565b61023361093d565b6101c1600480360360408110156104b557600080fd5b506001600160a01b0381358116916020013516610952565b60006104ec6e4973737565466f724164647265737360881b8484610970565b9392505050565b6104fb610a0d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006104ec6e436c61696d466f724164647265737360881b8484610970565b6e4973737565466f724164647265737360881b81565b6105a16e436c61696d466f724164647265737360881b3383610a58565b50565b6105a16e4973737565466f724164647265737360881b3383610b78565b6105a17145786368616e6765466f724164647265737360701b3383610a58565b6001546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610b78565b6105a16e436c61696d466f724164647265737360881b3383610b78565b60005b60058110156106565761064e6002826005811061064557fe5b01543384610b78565b60010161062c565b5050565b6001546001600160a01b031633146106a35760405162461bcd60e51b8152600401808060200182810382526035815260200180610d256035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104ec6d4275726e466f724164647265737360901b8484610970565b6000546001600160a01b031681565b6007546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610a58565b69105c1c1c9bdd99505b1b60b21b81565b6105a16e4973737565466f724164647265737360881b3383610a58565b6007546000906001600160a01b03166317e7dd226107c869105c1c1c9bdd99505b1b60b21b8686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156107fc57600080fd5b505afa158015610810573d6000803e3d6000fd5b505050506040513d602081101561082657600080fd5b50519392505050565b610837610a0d565b6001600160a01b03811661087c5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cff6026913960400191505060405180910390fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fe3ebe3d58e84fbd094152babb730cf99a14b47f65ed04f35a3bd6356f8161a17916020908290030190a150565b6105a17145786368616e6765466f724164647265737360701b3383610b78565b6105a169105c1c1c9bdd99505b1b60b21b3383610a58565b6e436c61696d466f724164647265737360881b81565b7145786368616e6765466f724164647265737360701b81565b6d4275726e466f724164647265737360901b81565b60006104ec7145786368616e6765466f724164647265737360701b84845b600061097c838361079c565b15610989575060016104ec565b6007546001600160a01b03166317e7dd226109a5868686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109d957600080fd5b505afa1580156109ed573d6000803e3d6000fd5b505050506040513d6020811015610a0357600080fd5b5051949350505050565b6000546001600160a01b03163314610a565760405162461bcd60e51b815260040180806020018281038252602f815260200180610d5a602f913960400191505060405180910390fd5b565b6001600160a01b038116610ab3576040805162461bcd60e51b815260206004820152601c60248201527f43616e27742064656c656761746520746f206164647265737328302900000000604482015290519081900360640190fd5b6007546001600160a01b0316633eba9ed2610acf858585610cb2565b60016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610b1257600080fd5b505af1158015610b26573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f36a9e0c1da9cdc6d8f4bd4cb261f9ad6a45eb1641a557ead7530fbeff9a2633693509081900390910190a2505050565b6007546001600160a01b03166317e7dd22610b94858585610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610bc857600080fd5b505afa158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b505115610cad576007546001600160a01b0316633cc1635c610c15858585610cb2565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c4b57600080fd5b505af1158015610c5f573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f7e8dc09322ac82342d9dbfd49eb6497fa7ab69ac444f3763a9b8e16530342f4193509081900390910190a25b505050565b6040805160208082018690526bffffffffffffffffffffffff19606086811b82168486015285901b1660548301528251604881840301815260689092019092528051910120939250505056fe43616e27742073657420657465726e616c53746f7261676520746f2061646472657373283029596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820fdd5e60a951ecea1baac54ec34c25e819582abc3ea3dc787687b885d0c27cb4a64736f6c63430005100032",
			"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": "0x6910d36c4001b506762ff070b282e98a4bbca2d0ed7b87edcccbe8a762c19ff7",
				"urls": [
					"bzz-raw://a65984c90a2ecf306409ed6df83bcf9f4320284dd8a038fc1b8f06f2d67acbfd",
					"dweb:/ipfs/QmbFdDpfyYEhpv5GqJ89tWCVTNDTDmQGwikUt5ZqSAAieM"
				]
			},
			"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": "0x6910d36c4001b506762ff070b282e98a4bbca2d0ed7b87edcccbe8a762c19ff7",
						"urls": [
							"bzz-raw://a65984c90a2ecf306409ed6df83bcf9f4320284dd8a038fc1b8f06f2d67acbfd",
							"dweb:/ipfs/QmbFdDpfyYEhpv5GqJ89tWCVTNDTDmQGwikUt5ZqSAAieM"
						]
					}
				},
				"version": 1
			}
		},
		"Liquidator": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162002bb138038062002bb18339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b61298e80620002236000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806374e889c911610104578063952225f3116100a2578063b410a03411610071578063b410a03414610350578063c855a8e114610358578063d45c0d7e14610360578063f557f73c14610373576101cf565b8063952225f31461030f578063974e9e7f14610322578063a0cf745114610335578063ad2bc2d51461033d576101cf565b8063828afc4b116100de578063828afc4b146102d7578063899ffef4146102ea5780638d1bd1be146102ff5780638da5cb5b14610307576101cf565b806374e889c9146102bf57806379ba5097146102c75780638074b372146102cf576101cf565b806339a9df1b116101715780635e887fe91161014b5780635e887fe914610284578063614d08f8146102a75780636a058966146102af57806374185360146102b7576101cf565b806339a9df1b1461024957806353a47bb71461025c5780635616c95714610271576101cf565b80631775765f116101ad5780631775765f1461021c57806323f5589a146102245780632af64bd31461022c57806331e4e03014610241576101cf565b806304f3bcec146101d45780631627540c146101f25780631710940c14610207575b600080fd5b6101dc610386565b6040516101e99190612749565b60405180910390f35b610205610200366004611f1e565b610395565b005b61020f6103f3565b6040516101e991906126a2565b61020f610403565b61020f61040d565b610234610417565b6040516101e99190612694565b61020f61052e565b610234610257366004611f1e565b610538565b610264610561565b6040516101e99190612625565b61026461027f366004611f1e565b610570565b610297610292366004611f62565b61058e565b6040516101e99493929190612858565b61020f610744565b61020f610755565b61020561076d565b61020f6108c3565b6102056108dd565b61020f610982565b61020f6102e5366004611f1e565b61098c565b6102f26109a7565b6040516101e99190612683565b61020f610a86565b610264610b1b565b61023461031d366004611f62565b610b2a565b610205610330366004611f1e565b610ce1565b61020f610d3d565b61020561034b366004611f1e565b610d47565b61020f610f1c565b61020f610f26565b61020561036e366004611f1e565b610f30565b61020f610381366004611fd8565b6112aa565b6002546001600160a01b031681565b61039d6113ab565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906103e8908390612625565b60405180910390a150565b60006103fd6113d7565b90505b90565b60006103fd611488565b60006103fd6114e3565b600060606104236109a7565b905060005b815181101561052557600082828151811061043f57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906104909085906004016126a2565b60206040518083038186803b1580156104a857600080fd5b505afa1580156104bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104e09190810190611f44565b6001600160a01b031614158061050b57506000818152600360205260409020546001600160a01b0316155b1561051c5760009350505050610400565b50600101610428565b50600191505090565b60006103fd611543565b6000610542611ec5565b61054b8361159d565b905061055a816000015161171a565b9392505050565b6001546001600160a01b031681565b600061057a611ec5565b6105838361159d565b602001519392505050565b600080600080306001600160a01b031663952225f387876040518363ffffffff1660e01b81526004016105c292919061264e565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106129190810190611f9c565b6106ad57600080600061062361172c565b6001600160a01b031663d37c4d8b8a6040518263ffffffff1660e01b815260040161064e9190612669565b60206040518083038186803b15801561066657600080fd5b505afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061069e9190810190611fba565b9296509094509250905061073b565b6106b561172c565b6001600160a01b0316635e887fe987876040518363ffffffff1660e01b81526004016106e292919061264e565b60806040518083038186803b1580156106fa57600080fd5b505afa15801561070e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107329190810190612025565b93509350935093505b92959194509250565b692634b8bab4b230ba37b960b11b81565b702634b8bab4b230ba34b7b721b0b63632b960791b81565b60606107776109a7565b905060005b81518110156108bf57600082828151811061079357fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016107d5919061261a565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610801929190612729565b60206040518083038186803b15801561081957600080fd5b505afa15801561082d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108519190810190611f44565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906108ad90849084906126b0565b60405180910390a1505060010161077c565b5050565b724c69717569646174696f6e446561646c696e6560681b81565b6001546001600160a01b031633146109105760405162461bcd60e51b815260040161090790612778565b60405180910390fd5b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610953926001600160a01b0391821692911690612633565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006103fd611740565b6000610996611ec5565b61099f8361159d565b519392505050565b6060806109b2611795565b60408051600480825260a0820190925291925060609190602082016080803883390190505090506b53797374656d53746174757360a01b816000815181106109f657fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b81600181518110610a1c57fe5b6020026020010181815250506524b9b9bab2b960d11b81600281518110610a3f57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600381518110610a6957fe5b602002602001018181525050610a7f82826117e6565b9250505090565b60006103fd610a93611488565b73__$abda1d5d2dee01544eb6c8a96c021081fd$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610ad757600080fd5b505af4158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b0f9190810190611fba565b9063ffffffff6118a216565b6000546001600160a01b031681565b600080610b356118b7565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b8152600401610b609190612625565b60206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bb09190810190611fba565b9050610bba6118ce565b8111610bca576000915050610cdb565b82610c1a57610bd7611ec5565b610be08561159d565b9050610bef816000015161171a565b8015610bff5750610bff85611926565b15610c0f57600192505050610cdb565b600092505050610cdb565b600073__$abda1d5d2dee01544eb6c8a96c021081fd$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c6057600080fd5b505af4158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c989190810190611fba565b9050610cc2610cb5610ca86114e3565b839063ffffffff6119d516565b829063ffffffff6119fa16565b821115610cd457600092505050610cdb565b5060019150505b92915050565b610ce961172c565b6001600160a01b0316336001600160a01b031614610d195760405162461bcd60e51b815260040161090790612798565b610d21611ec5565b610d2a8261159d565b8051909150156108bf576108bf82611a24565b60006103fd611afb565b620a69cb60eb1b610d56611b56565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b8152600401610d8191906126a2565b60206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dd19190810190611f9c565b15610dee5760405162461bcd60e51b815260040161090790612808565b610df6611b71565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610e2e57600080fd5b505afa158015610e42573d6000803e3d6000fd5b50505050610e4e611ec5565b610e578361159d565b8051909150610e785760405162461bcd60e51b815260040161090790612848565b6000610e826118b7565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b8152600401610ead9190612625565b60206040518083038186803b158015610ec557600080fd5b505afa158015610ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610efd9190810190611fba565b9050610f076118ce565b8111610f1657610f1684611a24565b50505050565b60006103fd6118ce565b60006103fd611b8b565b620a69cb60eb1b610f3f611b56565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b8152600401610f6a91906126a2565b60206040518083038186803b158015610f8257600080fd5b505afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fba9190810190611f9c565b15610fd75760405162461bcd60e51b815260040161090790612808565b610fdf611b71565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561101757600080fd5b505afa15801561102b573d6000803e3d6000fd5b50506002546040516321f8a72160e01b8152600093506001600160a01b0390911691506321f8a72190611071906b131959d858de53585c9ad95d60a21b906004016126a2565b60206040518083038186803b15801561108957600080fd5b505afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110c19190810190611f44565b6001600160a01b0316146110e75760405162461bcd60e51b815260040161090790612818565b60006110f1611488565b1161110e5760405162461bcd60e51b8152600401610907906127d8565b6000611118611afb565b116111355760405162461bcd60e51b8152600401610907906127e8565b61113d611ec5565b6111468361159d565b8051909150156111685760405162461bcd60e51b815260040161090790612838565b60006111726118b7565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040161119d9190612625565b60206040518083038186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111ed9190810190611fba565b90506111f7611488565b8110156112165760405162461bcd60e51b8152600401610907906127b8565b61121f84611926565b61123b5760405162461bcd60e51b815260040161090790612768565b6000611255611248611afb565b429063ffffffff6119d516565b9050611262858233611bf3565b846001600160a01b03167fc77e4625de0c70adaf3bd1aabb5f22f9eae8f565367c706fc209030c138579968260405161129b91906126a2565b60405180910390a25050505050565b6000806112b56118ce565b9050600073__$abda1d5d2dee01544eb6c8a96c021081fd$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156112fd57600080fd5b505af4158015611311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113359190810190611fba565b9050600061135961134c878563ffffffff611d2016565b889063ffffffff611d4a16565b9050600061138d61138085611374868a63ffffffff6119d516565b9063ffffffff611d2016565b849063ffffffff611d4a16565b905061139f828263ffffffff6119fa16565b98975050505050505050565b6000546001600160a01b031633146113d55760405162461bcd60e51b8152600401610907906127f8565b565b60006113e1611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b81526004016114389291906126be565b60206040518083038186803b15801561145057600080fd5b505afa158015611464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103fd9190810190611fba565b6000611492611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b81526004016114389291906126be565b60006114ed611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b74736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b81526004016114389291906126be565b600061154d611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b81526004016114389291906126be565b6115a5611ec5565b6115ad611d72565b6001600160a01b03166323257c2b692634b8bab4b230ba37b960b11b6115e9724c69717569646174696f6e446561646c696e6560681b86611d8f565b6040518363ffffffff1660e01b81526004016116069291906126be565b60206040518083038186803b15801561161e57600080fd5b505afa158015611632573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116569190810190611fba565b8152611660611d72565b6001600160a01b0316639ee5955a692634b8bab4b230ba37b960b11b61169a702634b8bab4b230ba34b7b721b0b63632b960791b86611d8f565b6040518363ffffffff1660e01b81526004016116b79291906126be565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117079190810190611f44565b6001600160a01b03166020820152919050565b60008082118015610cdb575050421190565b60006103fd6524b9b9bab2b960d11b611dc2565b600061174a611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b69199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b81526004016114389291906126be565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106117d757fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611816578160200160208202803883390190505b50905060005b83518110156118585783818151811061183157fe5b602002602001015182828151811061184557fe5b602090810291909101015260010161181c565b5060005b825181101561189b5782818151811061187157fe5b602002602001015182828651018151811061188857fe5b602090810291909101015260010161185c565b5092915050565b600061055a8383670de0b6b3a7640000611e1f565b60006103fd680a6f2dce8d0cae8d2f60bb1b611dc2565b60006118d8611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b81526004016114389291906126be565b60008061193161172c565b6001600160a01b031663a5fdc5de846040518263ffffffff1660e01b815260040161195c9190612625565b60206040518083038186803b15801561197457600080fd5b505afa158015611988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119ac9190810190611fba565b90506119cd6119b9611740565b6119c1611543565b9063ffffffff6119d516565b111592915050565b60008282018381101561055a5760405162461bcd60e51b815260040161090790612788565b600061055a82611a1885670de0b6b3a764000063ffffffff611e5616565b9063ffffffff611e9016565b611a2c611d72565b6001600160a01b03166318f662ed692634b8bab4b230ba37b960b11b611a68724c69717569646174696f6e446561646c696e6560681b85611d8f565b6040518363ffffffff1660e01b8152600401611a859291906126be565b600060405180830381600087803b158015611a9f57600080fd5b505af1158015611ab3573d6000803e3d6000fd5b50505050806001600160a01b03167f9b6ac8997b4f2edd0a27c1beb32f7c14d522e9c16f46e79daa5a144016bd6c8742604051611af091906126a2565b60405180910390a250565b6000611b05611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b81526004016114389291906126be565b60006103fd6c45786368616e6765526174657360981b611dc2565b60006103fd6b53797374656d53746174757360a01b611dc2565b6000611b95611d72565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6c69717569646174696f6e457363726f774475726174696f6e000000000000006040518363ffffffff1660e01b81526004016114389291906126be565b611bfb611d72565b6001600160a01b0316631d5b277f692634b8bab4b230ba37b960b11b611c37724c69717569646174696f6e446561646c696e6560681b87611d8f565b856040518463ffffffff1660e01b8152600401611c5693929190612701565b600060405180830381600087803b158015611c7057600080fd5b505af1158015611c84573d6000803e3d6000fd5b50505050611c90611d72565b6001600160a01b0316634dca0978692634b8bab4b230ba37b960b11b611cca702634b8bab4b230ba34b7b721b0b63632b960791b87611d8f565b846040518463ffffffff1660e01b8152600401611ce9939291906126d9565b600060405180830381600087803b158015611d0357600080fd5b505af1158015611d17573d6000803e3d6000fd5b50505050505050565b6000670de0b6b3a7640000611d3b848463ffffffff611e5616565b81611d4257fe5b049392505050565b600082821115611d6c5760405162461bcd60e51b8152600401610907906127a8565b50900390565b60006103fd6e466c657869626c6553746f7261676560881b611dc2565b60008282604051602001611da49291906125d4565b60405160208183030381529060405280519060200120905092915050565b60008181526003602090815260408083205490516001600160a01b039091169182151591611df2918691016125fa565b6040516020818303038152906040529061189b5760405162461bcd60e51b81526004016109079190612757565b600080611e3984611a1887600a870263ffffffff611e5616565b90506005600a820610611e4a57600a015b600a9004949350505050565b600082611e6557506000610cdb565b82820282848281611e7257fe5b041461055a5760405162461bcd60e51b815260040161090790612828565b6000808211611eb15760405162461bcd60e51b8152600401610907906127c8565b6000828481611ebc57fe5b04949350505050565b604080518082019091526000808252602082015290565b8035610cdb81612922565b8051610cdb81612922565b8035610cdb81612939565b8051610cdb81612939565b8035610cdb81612942565b8051610cdb81612942565b600060208284031215611f3057600080fd5b6000611f3c8484611edc565b949350505050565b600060208284031215611f5657600080fd5b6000611f3c8484611ee7565b60008060408385031215611f7557600080fd5b6000611f818585611edc565b9250506020611f9285828601611ef2565b9150509250929050565b600060208284031215611fae57600080fd5b6000611f3c8484611efd565b600060208284031215611fcc57600080fd5b6000611f3c8484611f13565b600080600060608486031215611fed57600080fd5b6000611ff98686611f08565b935050602061200a86828701611f08565b925050604061201b86828701611f08565b9150509250925092565b6000806000806080858703121561203b57600080fd5b60006120478787611f13565b945050602061205887828801611f13565b935050604061206987828801611f13565b925050606061207a87828801611f13565b91505092959194509250565b6000612092838361211c565b505060200190565b6120a3816128ae565b82525050565b6120a36120b5826128ae565b612901565b60006120c58261289c565b6120cf81856128a0565b93506120da83612896565b8060005b838110156121085781516120f28882612086565b97506120fd83612896565b9250506001016120de565b509495945050505050565b6120a3816128b9565b6120a381610400565b6120a361213182610400565b610400565b6120a3816128ca565b600061214a8261289c565b61215481856128a0565b93506121648185602086016128d5565b61216d81612912565b9093019392505050565b6000612184601a836128a0565b7f6e6f7420656e6f75676820534e5820666f722072657761726473000000000000815260200192915050565b60006121bd6035836128a0565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612214601b836128a0565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061224d603c836128a0565b7f4c697175696461746f723a204f6e6c79207468652049737375657220636f6e7481527f726163742063616e20706572666f726d207468697320616374696f6e00000000602082015260400192915050565b60006122ac601e836128a0565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006122e56035836128a0565b7f4163636f756e742069737375616e636520726174696f206973206c657373207481527468616e206c69717569646174696f6e20726174696f60581b602082015260400192915050565b600061233c601a836128a0565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006123756011836128a9565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006123a26019836128a0565b7f4c69717569646174696f6e20726174696f206e6f742073657400000000000000815260200192915050565b60006123db6019836128a0565b7f4c69717569646174696f6e2064656c6179206e6f742073657400000000000000815260200192915050565b6000612414602f836128a0565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000612471601b836128a0565b7f5261746520696e76616c6964206f72206e6f7420612073796e74680000000000815260200192915050565b60006124aa6017836128a0565b7f4d757374206c6971756964617465207573696e67205633000000000000000000815260200192915050565b60006124e36021836128a0565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006125266027836128a0565b7f4163636f756e7420616c726561647920666c616767656420666f72206c69717581526634b230ba34b7b760c91b602082015260400192915050565b600061256f601e836128a0565b7f4163636f756e7420686173206e6f206c69717569646174696f6e207365740000815260200192915050565b60006125a86019836128a9565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006125e08285612125565b6020820191506125f082846120a9565b5060140192915050565b600061260582612368565b91506126118284612125565b50602001919050565b60006126058261259b565b60208101610cdb828461209a565b60408101612641828561209a565b61055a602083018461209a565b6040810161265c828561209a565b61055a6020830184612113565b60408101612677828461209a565b610cdb60208301612458565b6020808252810161055a81846120ba565b60208101610cdb8284612113565b60208101610cdb828461211c565b60408101612641828561211c565b604081016126cc828561211c565b61055a602083018461211c565b606081016126e7828661211c565b6126f4602083018561211c565b611f3c604083018461209a565b6060810161270f828661211c565b61271c602083018561211c565b611f3c604083018461211c565b60408101612737828561211c565b8181036020830152611f3c818461213f565b60208101610cdb8284612136565b6020808252810161055a818461213f565b60208082528101610cdb81612177565b60208082528101610cdb816121b0565b60208082528101610cdb81612207565b60208082528101610cdb81612240565b60208082528101610cdb8161229f565b60208082528101610cdb816122d8565b60208082528101610cdb8161232f565b60208082528101610cdb81612395565b60208082528101610cdb816123ce565b60208082528101610cdb81612407565b60208082528101610cdb81612464565b60208082528101610cdb8161249d565b60208082528101610cdb816124d6565b60208082528101610cdb81612519565b60208082528101610cdb81612562565b60808101612866828761211c565b612873602083018661211c565b612880604083018561211c565b61288d606083018461211c565b95945050505050565b60200190565b5190565b90815260200190565b919050565b6000610cdb826128be565b151590565b6001600160a01b031690565b6000610cdb826128ae565b60005b838110156128f05781810151838201526020016128d8565b83811115610f165750506000910152565b6000610cdb826000610cdb8261291c565b601f01601f191690565b60601b90565b61292b816128ae565b811461293657600080fd5b50565b61292b816128b9565b61292b8161040056fea365627a7a723158202011e849b49919369b94ba214c911aba54a7fdc473aeedfff28b205ce80e72896c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"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"
						},
						{
							"internalType": "uint256",
							"name": "penalty",
							"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": [],
					"name": "flagReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getLiquidationCallerForAccount",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"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"
						},
						{
							"internalType": "bool",
							"name": "isSelfLiquidation",
							"type": "bool"
						}
					],
					"name": "isLiquidationOpen",
					"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": "liquidateReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "isSelfLiquidation",
							"type": "bool"
						}
					],
					"name": "liquidationAmounts",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRedeemed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtToRemove",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "escrowToLiquidate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "initialDebtBalance",
							"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": "liquidationEscrowDuration",
					"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"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "selfLiquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x3daa9a0620c056ecd22d768d37e24560f68bfda909bf3afbf0ac14be71285c58",
				"urls": [
					"bzz-raw://99b42983b72ca1fdf04748abad3dcba065c399b3e1c147e00638f843405b4874",
					"dweb:/ipfs/QmZ2wPeDcSmP36RCujmB1ujqjkZmwTQHuh8khdjYecJ3bM"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Liquidator.sol": "Liquidator"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Liquidator.sol": {
						"keccak256": "0x3daa9a0620c056ecd22d768d37e24560f68bfda909bf3afbf0ac14be71285c58",
						"urls": [
							"bzz-raw://99b42983b72ca1fdf04748abad3dcba065c399b3e1c147e00638f843405b4874",
							"dweb:/ipfs/QmZ2wPeDcSmP36RCujmB1ujqjkZmwTQHuh8khdjYecJ3bM"
						]
					}
				},
				"version": 1
			}
		},
		"LiquidatorRewards": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200187938038062001879833981016040819052620000349162000100565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001bc565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000196565b60405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055505060016004555062000217565b8051620000fa81620001fd565b92915050565b600080604083850312156200011457600080fd5b6000620001228585620000ed565b92505060206200013585828601620000ed565b9150509250929050565b6200014a81620001e9565b82525050565b6200014a81620001d7565b60006200016a601983620001ce565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a682856200013f565b620001b5602083018462000150565b9392505050565b60208082528101620000fa816200015b565b90815260200190565b60006001600160a01b038216620000fa565b6000620000fa826000620000fa82620001d7565b6200020881620001d7565b81146200021457600080fd5b50565b61165280620002276000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c806353a47bb711610097578063899ffef411610066578063899ffef4146101da5780638da5cb5b146101ef578063c00007b0146101f7578063f29ee1251461020a576100ff565b806353a47bb7146101ad578063614d08f8146101c257806374185360146101ca57806379ba5097146101d2576100ff565b80631627540c116100d35780631627540c1461016a578063270fb3381461017f5780632af64bd3146101925780633c6b16ab1461019a576100ff565b80628cc26214610104578063049939f31461012d57806304f3bcec1461014d578063061960aa14610162575b600080fd5b610117610112366004610fc4565b61022b565b6040516101249190611460565b60405180910390f35b61014061013b366004610fc4565b610334565b6040516101249190611452565b610155610349565b60405161012491906114aa565b610117610358565b61017d610178366004610fc4565b61035e565b005b61017d61018d366004610fc4565b6103bc565b61014061049a565b61017d6101a8366004611026565b6105b2565b6101b56106a5565b60405161012491906113d5565b6101176106b4565b61017d6106cc565b61017d610822565b6101e26108be565b6040516101249190611441565b6101b56109a4565b61017d610205366004610fc4565b6109b3565b61021d610218366004610fc4565b610b78565b604051610124929190611549565b6000610235610f76565b506001600160a01b0382166000908152600660209081526040918290208251808401909352546001600160801b03808216808552600160801b9092041691830182905260055461032d92610321916102929163ffffffff610b9e16565b61029a610bcb565b6001600160a01b03166370a08231886040518263ffffffff1660e01b81526004016102c591906113d5565b60206040518083038186803b1580156102dd57600080fd5b505afa1580156102f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103159190810190611044565b9063ffffffff610bf016565b9063ffffffff610c1a16565b9392505050565b60076020526000908152604090205460ff1681565b6002546001600160a01b031681565b60055481565b610366610c3f565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906103b19083906113d5565b60405180910390a150565b6001600160a01b03811660009081526007602052604090205460ff1661042b576005546001600160a01b038216600090815260066020908152604080832080546001600160801b03958616600160801b029516949094179093556007905220805460ff19166001179055610497565b604051806040016040528061043f8361022b565b6001600160801b03908116825260055481166020928301526001600160a01b038416600090815260068352604090208351815494909301518216600160801b029282166001600160801b031990941693909317161790555b50565b600060606104a66108be565b905060005b81518110156105a85760008282815181106104c257fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610513908590600401611460565b60206040518083038186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105639190810190610fea565b6001600160a01b031614158061058e57506000818152600360205260409020546001600160a01b0316155b1561059f57600093505050506105af565b506001016104ab565b5060019150505b90565b60006105bc610c6b565b6001600160a01b0316336001600160a01b0316149050806105f85760405162461bcd60e51b81526004016105ef906114c9565b60405180910390fd5b6000610602610bcb565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561063a57600080fd5b505afa15801561064e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106729190810190611044565b905080156106a05761069c61068d848363ffffffff610c8216565b6005549063ffffffff610c1a16565b6005555b505050565b6001546001600160a01b031681565b704c697175696461746f725265776172647360781b81565b60606106d66108be565b905060005b815181101561081e5760008282815181106106f257fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161073491906113ca565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161076092919061148a565b60206040518083038186803b15801561077857600080fd5b505afa15801561078c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107b09190810190610fea565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061080c908490849061146e565b60405180910390a150506001016106db565b5050565b6001546001600160a01b0316331461084c5760405162461bcd60e51b81526004016105ef906114d9565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261088f926001600160a01b03918216929116906113e3565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6060806108c9610cac565b60408051600480825260a0820190925291925060609190602082016080803883390190505090507153796e74686574697844656274536861726560701b8160008151811061091357fe5b6020026020010181815250506524b9b9bab2b960d11b8160018151811061093657fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160028151811061096157fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b8160038151811061098757fe5b60200260200101818152505061099d8282610cfd565b9250505090565b6000546001600160a01b031681565b60048054600101908190556109c7826103bc565b6001600160a01b0382166000908152600660205260409020546001600160801b03168015610b56576001600160a01b038316600090815260066020526040902080546001600160801b0319169055610a1d610c6b565b6001600160a01b031663095ea7b3610a33610db9565b836040518363ffffffff1660e01b8152600401610a519291906113fe565b602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa39190810190611008565b50610aac610db9565b6001600160a01b031663a0416ed38483610ac4610dd5565b6040518463ffffffff1660e01b8152600401610ae293929190611419565b600060405180830381600087803b158015610afc57600080fd5b505af1158015610b10573d6000803e3d6000fd5b50505050826001600160a01b03167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e048682604051610b4d9190611460565b60405180910390a25b50600454811461081e5760405162461bcd60e51b81526004016105ef90611539565b6006602052600090815260409020546001600160801b0380821691600160801b90041682565b600082821115610bc05760405162461bcd60e51b81526004016105ef906114f9565b508082035b92915050565b6000610beb7153796e74686574697844656274536861726560701b610e8d565b905090565b6000670de0b6b3a7640000610c0b848463ffffffff610eea16565b81610c1257fe5b049392505050565b60008282018381101561032d5760405162461bcd60e51b81526004016105ef906114e9565b6000546001600160a01b03163314610c695760405162461bcd60e51b81526004016105ef90611519565b565b6000610beb680a6f2dce8d0cae8d2f60bb1b610e8d565b600061032d82610ca085670de0b6b3a764000063ffffffff610eea16565b9063ffffffff610f2416565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110610cee57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610d2d578160200160208202803883390190505b50905060005b8351811015610d6f57838181518110610d4857fe5b6020026020010151828281518110610d5c57fe5b6020908102919091010152600101610d33565b5060005b8251811015610db257828181518110610d8857fe5b6020026020010151828286510181518110610d9f57fe5b6020908102919091010152600101610d73565b5092915050565b6000610beb6d2932bbb0b93222b9b1b937bbab1960911b610e8d565b6000610ddf610f59565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6c69717569646174696f6e457363726f774475726174696f6e000000000000006040518363ffffffff1660e01b8152600401610e3d92919061147c565b60206040518083038186803b158015610e5557600080fd5b505afa158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610beb9190810190611044565b60008181526003602090815260408083205490516001600160a01b039091169182151591610ebd918691016113aa565b60405160208183030381529060405290610db25760405162461bcd60e51b81526004016105ef91906114b8565b600082610ef957506000610bc5565b82820282848281610f0657fe5b041461032d5760405162461bcd60e51b81526004016105ef90611529565b6000808211610f455760405162461bcd60e51b81526004016105ef90611509565b6000828481610f5057fe5b04949350505050565b6000610beb6e466c657869626c6553746f7261676560881b610e8d565b604080518082019091526000808252602082015290565b8035610bc5816115e9565b8051610bc5816115e9565b8051610bc5816115fd565b8035610bc581611606565b8051610bc581611606565b600060208284031215610fd657600080fd5b6000610fe28484610f8d565b949350505050565b600060208284031215610ffc57600080fd5b6000610fe28484610f98565b60006020828403121561101a57600080fd5b6000610fe28484610fa3565b60006020828403121561103857600080fd5b6000610fe28484610fae565b60006020828403121561105657600080fd5b6000610fe28484610fb9565b600061106e83836110e7565b505060200190565b61107f8161157c565b82525050565b60006110908261156a565b61109a818561156e565b93506110a583611564565b8060005b838110156110d35781516110bd8882611062565b97506110c883611564565b9250506001016110a9565b509495945050505050565b61107f81611587565b61107f816105af565b61107f6110fc826105af565b6105af565b61107f816115a4565b60006111158261156a565b61111f818561156e565b935061112f8185602086016115af565b611138816115df565b9093019392505050565b600061114f600e8361156e565b6d53796e746865746978206f6e6c7960901b815260200192915050565b600061117960358361156e565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006111d0601b8361156e565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611209601e8361156e565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611242601a8361156e565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061127b601183611577565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006112a8602f8361156e565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006112f960218361156e565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061133c601983611577565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000611375601f8361156e565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b61107f8161158c565b60006113b58261126e565b91506113c182846110f0565b50602001919050565b60006113b58261132f565b60208101610bc58284611076565b604081016113f18285611076565b61032d6020830184611076565b6040810161140c8285611076565b61032d60208301846110e7565b606081016114278286611076565b61143460208301856110e7565b610fe260408301846110e7565b6020808252810161032d8184611085565b60208101610bc582846110de565b60208101610bc582846110e7565b604081016113f182856110e7565b6040810161140c82856110e7565b6040810161149882856110e7565b8181036020830152610fe2818461110a565b60208101610bc58284611101565b6020808252810161032d818461110a565b60208082528101610bc581611142565b60208082528101610bc58161116c565b60208082528101610bc5816111c3565b60208082528101610bc5816111fc565b60208082528101610bc581611235565b60208082528101610bc58161129b565b60208082528101610bc5816112ec565b60208082528101610bc581611368565b6040810161155782856113a1565b61032d60208301846113a1565b60200190565b5190565b90815260200190565b919050565b6000610bc582611598565b151590565b6001600160801b031690565b6001600160a01b031690565b6000610bc58261157c565b60005b838110156115ca5781810151838201526020016115b2565b838111156115d9576000848401525b50505050565b601f01601f191690565b6115f28161157c565b811461049757600080fd5b6115f281611587565b6115f2816105af56fea365627a7a72315820d671e3bd54462718ddb1f8104e41d0f798a7c0ec1136e27fc7294aab6283441d6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "RewardPaid",
					"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": "accumulatedRewardsPerShare",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "earned",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "entries",
					"outputs": [
						{
							"internalType": "uint128",
							"name": "claimable",
							"type": "uint128"
						},
						{
							"internalType": "uint128",
							"name": "entryAccumulatedRewards",
							"type": "uint128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "initiated",
					"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": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reward",
							"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": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "updateEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x002d38a8ae85b28beeff011c6dafd4a6d233c3e42a281c86fd4ad152bde7101f",
				"urls": [
					"bzz-raw://80a505245a9b4c2003775bc57456494528672d1f97449ddcab7fa26c8b5fff75",
					"dweb:/ipfs/QmcEmtj5YHs3HtXutrGSXaHYsXN2DRQWkt49xLpCE2TdtL"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"LiquidatorRewards.sol": "LiquidatorRewards"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"LiquidatorRewards.sol": {
						"keccak256": "0x002d38a8ae85b28beeff011c6dafd4a6d233c3e42a281c86fd4ad152bde7101f",
						"urls": [
							"bzz-raw://80a505245a9b4c2003775bc57456494528672d1f97449ddcab7fa26c8b5fff75",
							"dweb:/ipfs/QmcEmtj5YHs3HtXutrGSXaHYsXN2DRQWkt49xLpCE2TdtL"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolEternalStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516114d03803806114d08339818101604052604081101561003357600080fd5b50805160209091015162375f00828280826001600160a01b03811661009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610149576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050504201600a55505061131d806101b36000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806353a47bb711610104578063a209a29c116100a2578063ba69fcaa11610071578063ba69fcaa146105d5578063bdc963d8146105f2578063c9a52d2c1461060f578063f586606614610684576101cf565b8063a209a29c146104cf578063a77aa49e146104ec578063aefc4ccb1461050f578063b3ffbd9e14610517576101cf565b80638267a9ee116100de5780638267a9ee146104705780638da5cb5b1461048d5780639007127b1461049557806393fe4248146104b2576101cf565b806353a47bb7146104345780635a2bf25a1461043c57806379ba509714610468576101cf565b80633562fd201161017157806344bfa56e1161014b57806344bfa56e1461033b57806346ba2d90146103cd5780634c77e5ba146103d557806352f445ca1461040e576101cf565b80633562fd20146102d65780633cc1635c146102f95780633eba9ed214610316576101cf565b8063124f2418116101ad578063124f24181461023f5780631627540c1461025c57806317e7dd221461028257806325cf512d146102b3576101cf565b8063025ec81a146101d4578063043106c0146102035780630c55d92514610222575b600080fd5b6101f1600480360360208110156101ea57600080fd5b50356106f9565b60408051918252519081900360200190f35b6102206004803603602081101561021957600080fd5b503561070b565b005b6102206004803603602081101561023857600080fd5b5035610772565b6102206004803603602081101561025557600080fd5b50356107d5565b6102206004803603602081101561027257600080fd5b50356001600160a01b031661082f565b61029f6004803603602081101561029857600080fd5b503561088b565b604080519115158252519081900360200190f35b610220600480360360408110156102c957600080fd5b50803590602001356108a0565b610220600480360360408110156102ec57600080fd5b50803590602001356108fb565b6102206004803603602081101561030f57600080fd5b5035610956565b6102206004803603604081101561032c57600080fd5b508035906020013515156109b7565b6103586004803603602081101561035157600080fd5b5035610a20565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039257818101518382015260200161037a565b50505050905090810190601f1680156103bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f1610ac1565b6103f2600480360360208110156103eb57600080fd5b5035610ac7565b604080516001600160a01b039092168252519081900360200190f35b6102206004803603602081101561042457600080fd5b50356001600160a01b0316610ae2565b6103f2610b3e565b6102206004803603604081101561045257600080fd5b50803590602001356001600160a01b0316610b4d565b610220610bc4565b6102206004803603602081101561048657600080fd5b5035610c80565b6103f2610cda565b6101f1600480360360208110156104ab57600080fd5b5035610ce9565b610220600480360360208110156104c857600080fd5b5035610cfb565b610358600480360360208110156104e557600080fd5b5035610d55565b6102206004803603604081101561050257600080fd5b5080359060200135610dbf565b6103f2610e1a565b6102206004803603604081101561052d57600080fd5b810190602081018135600160201b81111561054757600080fd5b82018360208201111561055957600080fd5b803590602001918460208302840111600160201b8311171561057a57600080fd5b919390929091602081019035600160201b81111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111600160201b831117156105ca57600080fd5b509092509050610e29565b610220600480360360208110156105eb57600080fd5b5035610fc1565b6101f16004803603602081101561060857600080fd5b5035611021565b6102206004803603604081101561062557600080fd5b81359190810190604081016020820135600160201b81111561064657600080fd5b82018360208201111561065857600080fd5b803590602001918460018302840111600160201b8311171561067957600080fd5b509092509050611033565b6102206004803603604081101561069a57600080fd5b81359190810190604081016020820135600160201b8111156106bb57600080fd5b8201836020820111156106cd57600080fd5b803590602001918460018302840111600160201b831117156106ee57600080fd5b50909250905061109b565b60009081526007602052604090205490565b6002546001600160a01b031633146107545760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260056020526040902080546001600160a01b0319169055565b6002546001600160a01b031633146107bb5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526006602052604081206107d291611148565b50565b6002546001600160a01b0316331461081e5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260076020526040812055565b6108376110fd565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60009081526008602052604090205460ff1690565b6002546001600160a01b031633146108e95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526007602052604090912055565b6002546001600160a01b031633146109445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526003602052604090912055565b6002546001600160a01b0316331461099f5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b6000908152600860205260409020805460ff19169055565b6002546001600160a01b03163314610a005760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600091825260086020526040909120805460ff1916911515919091179055565b60008181526006602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050509050919050565b600a5481565b6000908152600560205260409020546001600160a01b031690565b610aea6110fd565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b03163314610b965760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526005602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610c0d5760405162461bcd60e51b81526004018080602001828103825260358152602001806112286035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b03163314610cc95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260096020526040812055565b6000546001600160a01b031681565b60009081526009602052604090205490565b6002546001600160a01b03163314610d445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260036020526040812055565b60008181526004602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b6002546001600160a01b03163314610e085760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b031681565b610e316110fd565b600a544210610e715760405162461bcd60e51b81526004018080602001828103825260298152602001806112c06029913960400191505060405180910390fd5b828114610eb7576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b60ff8116841115610fba5730633562fd20721b185cdd17d9995957ddda5d1a191c985dd85b606a1b878760ff8616818110610ef157fe5b905060200201356001600160a01b031660405160200180838152602001826001600160a01b03166001600160a01b031660601b8152601401925050506040516020818303038152906040528051906020012085858560ff16818110610f5257fe5b905060200201356040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015610f9657600080fd5b505af1158015610faa573d6000803e3d6000fd5b505060019092019150610eba9050565b5050505050565b6002546001600160a01b0316331461100a5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526004602052604081206107d291611148565b60009081526003602052604090205490565b6002546001600160a01b0316331461107c5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260066020526040902061109590838361118c565b50505050565b6002546001600160a01b031633146110e45760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260046020526040902061109590838361118c565b6000546001600160a01b031633146111465760405162461bcd60e51b815260040180806020018281038252602f81526020018061125d602f913960400191505060405180910390fd5b565b50805460018160011615610100020316600290046000825580601f1061116e57506107d2565b601f0160209004906000526020600020908101906107d2919061120a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111cd5782800160ff198235161785556111fa565b828001600101855582156111fa579182015b828111156111fa5782358255916020019190600101906111df565b5061120692915061120a565b5090565b61122491905b808211156112065760008155600101611210565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820f2123d732dd616b828d2806b1adb8c6b33bc54b2da2cfaa5d7bc9d6b1e65023064736f6c63430005100032",
			"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": "0xb985389faa5b860fe68d57c5fd4a3f26ccb0e7658bc8439b20e222e8b584489f",
				"urls": [
					"bzz-raw://006c2047acfc12b5a6073a30dfe0ab300f41c09bbe6945b53f41182f7872d656",
					"dweb:/ipfs/QmU5oTo9UGVNu9coujP5nvmHDjAM5JXHJpNeXX4P6KRBX3"
				]
			},
			"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": "0xb985389faa5b860fe68d57c5fd4a3f26ccb0e7658bc8439b20e222e8b584489f",
						"urls": [
							"bzz-raw://006c2047acfc12b5a6073a30dfe0ab300f41c09bbe6945b53f41182f7872d656",
							"dweb:/ipfs/QmU5oTo9UGVNu9coujP5nvmHDjAM5JXHJpNeXX4P6KRBX3"
						]
					}
				},
				"version": 1
			}
		},
		"FeePool": {
			"bytecode": "6080604052631cd554d160e21b6007553480156200001c57600080fd5b506040516200456d3803806200456d8339810160408190526200003f9162000226565b8080621baf8085856001600160a01b038116620000795760405162461bcd60e51b8152600401620000709062000348565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c691849062000310565b60405180910390a1506000546001600160a01b0316620000fa5760405162461bcd60e51b8152600401620000709062000336565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e906200014790839062000300565b60405180910390a1504201600455600580546001600160a01b0319166001600160a01b0392909216919091179055506001620001846000620001e7565b80546001600160401b0319166001600160401b039290921691909117905542620001af6000620001e7565b80546001600160401b03929092166801000000000000000002600160401b600160801b031990921691909117905550620003a3915050565b60006008600260ff16836016540181620001fd57fe5b06600281106200020957fe5b6007020192915050565b8051620002208162000389565b92915050565b6000806000606084860312156200023c57600080fd5b60006200024a868662000213565b93505060206200025d8682870162000213565b9250506040620002708682870162000213565b9150509250925092565b620002858162000375565b82525050565b620002858162000363565b6000620002a56011836200035a565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620002d46019836200035a565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200022082846200027a565b604081016200032082856200027a565b6200032f60208301846200028b565b9392505050565b60208082528101620002208162000296565b602080825281016200022081620002c5565b90815260200190565b60006001600160a01b03821662000220565b600062000220826000620002208262000363565b620003948162000363565b8114620003a057600080fd5b50565b6141ba80620003b36000396000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c80636de813f11161017b578063b410a034116100d8578063e0e6393d1161008c578063ec55688911610071578063ec55688914610516578063f43d41611461051e578063fd1f498d14610531576102c8565b8063e0e6393d14610506578063eb1edd611461050e576102c8565b8063cff2ddad116100bd578063cff2ddad146104e1578063d294f093146104f6578063d67bdd25146104fe576102c8565b8063b410a034146104c6578063bc67f832146104ce576102c8565b8063899ffef41161012f57806397107d6d1161011457806397107d6d14610498578063a419b69a146104ab578063ac834193146104be576102c8565b8063899ffef41461047b5780638da5cb5b14610490576102c8565b806373941b961161016057806373941b9614610458578063741853601461046b57806379ba509714610473576102c8565b80636de813f11461044857806372ccd69e14610450576102c8565b80633ebc457a11610229578063569249d0116101dd578063614d08f8116101c2578063614d08f81461041a578063642fbd8b146104225780636466f45e14610435576102c8565b8063569249d0146103ff57806359a2f19f14610407576102c8565b806341c178c31161020e57806341c178c3146103da57806346ba2d90146103e257806353a47bb7146103ea576102c8565b80633ebc457a146103ac5780633fcd2240146103b4576102c8565b806322425fa4116102805780632af64bd3116102655780632af64bd31461036f5780632e227eeb14610384578063331400161461038c576102c8565b806322425fa41461035457806322bf55ef1461035c576102c8565b80630813071c116102b15780630813071c1461030b5780630de586151461031e5780631627540c1461033f576102c8565b806304f3bcec146102cd57806307ea50cd146102eb575b600080fd5b6102d5610544565b6040516102e29190613e6a565b60405180910390f35b6102fe6102f936600461319a565b610553565b6040516102e29190613d87565b6102fe6103193660046131de565b610628565b61033161032c36600461319a565b61073a565b6040516102e2929190613dbe565b61035261034d36600461319a565b6107bc565b005b6102fe61081a565b61035261036a366004613254565b61082a565b610377610887565b6040516102e29190613d79565b61033161099e565b61039f61039a36600461319a565b610b25565b6040516102e29190613d5a565b610352610d1c565b6103c76103c2366004613254565b610f24565b6040516102e29796959493929190613fe7565b610331610fd2565b6102fe611080565b6103f2611086565b6040516102e29190613ce0565b6102fe611095565b61037761041536600461319a565b6110f0565b6102fe611102565b6102fe61043036600461319a565b611126565b61037761044336600461319a565b6111c7565b6102fe6112f3565b6102fe611348565b6103526104663660046132a2565b61135d565b610352611445565b610352611597565b610483611633565b6040516102e29190613d68565b6103f261198d565b6103526104a636600461319a565b61199c565b6102fe6104b936600461319a565b6119ef565b6102fe611a0e565b6102fe611aba565b6103526104dc36600461319a565b611ac4565b6104e9611aee565b6040516102e2919061404f565b610377611af3565b6103f2611b6a565b6102fe611b79565b6103f2611b83565b6102d5611b9b565b61035261052c3660046132c1565b611baa565b61035261053f366004613254565b611d5a565b6005546001600160a01b031681565b600061055d611dc6565b6001600160a01b031663bdc963d87f6c6173745f6665655f7769746864726177616c000000000000000000000000008460405160200161059e929190613c79565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016105d09190613d87565b60206040518083038186803b1580156105e857600080fd5b505afa1580156105fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106209190810190613236565b90505b919050565b6000811580610638575060028210155b1561064557506000610734565b61065160018303611df1565b5468010000000000000000900467ffffffffffffffff1661067457506000610734565b61067c611e1b565b6001600160a01b0316638ced14df846008856002811061069857fe5b60070201546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106e1929167ffffffffffffffff1690600401613d17565b60206040518083038186803b1580156106f957600080fd5b505afa15801561070d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107319190810190613236565b90505b92915050565b6000806107456130b4565b61074e84610b25565b905060008060015b60028110156107af5761077b84826002811061076e57fe5b6020020151518490611e46565b92506107a584826002811061078c57fe5b602002015160016020020151839063ffffffff611e4616565b9150600101610756565b509093509150505b915091565b6107c4611e6b565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061080f908390613ce0565b60405180910390a150565b6000610824611e97565b90505b90565b61083333611f5e565b6108585760405162461bcd60e51b815260040161084f90613e89565b60405180910390fd5b610876816108666000611df1565b600301549063ffffffff611e4616565b6108806000611df1565b6003015550565b60006060610893611633565b905060005b81518110156109955760008282815181106108af57fe5b602090810291909101810151600081815260069092526040918290205460055492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610900908590600401613d87565b60206040518083038186803b15801561091857600080fd5b505afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061095091908101906131c0565b6001600160a01b031614158061097b57506000818152600660205260409020546001600160a01b0316155b1561098c5760009350505050610827565b50600101610898565b50600191505090565b6000806000806109cd7f6578743a41676772656761746f7249737375656453796e746873000000000000612102565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610a0557600080fd5b505afa158015610a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a3d919081019061335d565b50935050925050600080610a707f6578743a41676772656761746f7244656274526174696f000000000000000000612102565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ae0919081019061335d565b50919450909250859150508215610b0657610b01818463ffffffff61215f16565b610b09565b60005b9650818410610b185781610b1a565b835b955050505050509091565b610b2d6130b4565b600080610b38611e1b565b6040517fe6d24bbd0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063e6d24bbd90610b80908790600401613ce0565b60206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bd09190810190613236565b9150600080610be0600085612178565b8651829052865160200181905290925090506000610bfd87610553565b905060015b8015610d11576000610c1382611df1565b5467ffffffffffffffff16905080831015610d07576040517f8ced14df0000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638ced14df90610c79908c9067ffffffffffffffff861690600401613d17565b60206040518083038186803b158015610c9157600080fd5b505afa158015610ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cc99190810190613236565b9650610cd58288612178565b909550935084888360028110610ce757fe5b60200201515283888360028110610cfa57fe5b6020020151600160200201525b5060001901610c02565b505050505050919050565b610d246121dc565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015610d5c57600080fd5b505afa158015610d70573d6000803e3d6000fd5b505050506000610d7e611e97565b11610d9b5760405162461bcd60e51b815260040161084f90613fc9565b610da3611e97565b4203610daf6000611df1565b5468010000000000000000900467ffffffffffffffff161115610de45760405162461bcd60e51b815260040161084f90613ea9565b6000610dee610fd2565b5090506000610dfb61099e565b509050610e088282612207565b6005546040517fdacb2d010000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063dacb2d0190610e71907f53796e746865746978427269646765546f4f7074696d69736d0000000000000090600401613dec565b60206040518083038186803b158015610e8957600080fd5b505afa158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ec191908101906131c0565b6001600160a01b031663b9958ab883836040518363ffffffff1660e01b8152600401610eee929190613dbe565b600060405180830381600087803b158015610f0857600080fd5b505af1158015610f1c573d6000803e3d6000fd5b505050505050565b6000806000806000806000610f376130e1565b610f4089611df1565b6040805161010081018252825467ffffffffffffffff80821680845268010000000000000000909204166020830181905260018501549383019390935260028401546060830152600384015460808301819052600485015460a08401819052600586015460c0850181905260069096015460e0909401849052919e60009e50939c509a50985091965090945092505050565b6000806000806110017f6578743a41676772656761746f7249737375656453796e746873000000000000612102565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561103957600080fd5b505afa15801561104d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611071919081019061335d565b50919791965090945050505050565b60045481565b6001546001600160a01b031681565b60008060015b60028110156110ea576110c16110b082611df1565b60030154839063ffffffff611e4616565b91506110e06110cf82611df1565b60040154839063ffffffff6125cd16565b915060010161109b565b50905090565b60006110fb826125f5565b5092915050565b7f466565506f6f6c0000000000000000000000000000000000000000000000000081565b600080611131611e1b565b90506000816001600160a01b031663e6d24bbd856040518263ffffffff1660e01b81526004016111619190613ce0565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111b19190810190613236565b90506111be600082612178565b50949350505050565b60006111d16121dc565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561120957600080fd5b505afa15801561121d573d6000803e3d6000fd5b505050506112296126e9565b611231612728565b6003546040517f21f4ae570000000000000000000000000000000000000000000000000000000081526001600160a01b03928316926321f4ae579261127e92879290911690600401613cfc565b60206040518083038186803b15801561129657600080fd5b505afa1580156112aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112ce9190810190613218565b6112ea5760405162461bcd60e51b815260040161084f90613f39565b61062082612753565b60008060015b60028110156110ea5761131f61130e82611df1565b60050154839063ffffffff611e4616565b915061133e61132d82611df1565b60060154839063ffffffff6125cd16565b91506001016112f9565b60006113546001611df1565b60040154905090565b3330148061141b57506005546040516321f8a72160e01b81526001600160a01b03909116906321f8a721906113b6907f53796e746865746978427269646765546f42617365000000000000000000000090600401613d87565b60206040518083038186803b1580156113ce57600080fd5b505afa1580156113e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061140691908101906131c0565b6001600160a01b0316336001600160a01b0316145b6114375760405162461bcd60e51b815260040161084f90613f79565b6114418282612207565b5050565b606061144f611633565b905060005b815181101561144157600082828151811061146b57fe5b602002602001015190506000600560009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016114ad9190613cca565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016114d9929190613dcc565b60206040518083038186803b1580156114f157600080fd5b505afa158015611505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061152991908101906131c0565b6000838152600660205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906115859084908490613d95565b60405180910390a15050600101611454565b6001546001600160a01b031633146115c15760405162461bcd60e51b815260040161084f90613e99565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611604926001600160a01b0391821692911690613cfc565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60608061163e612833565b60408051600e8082526101e0820190925291925060609190602082016101c0803883390190505090507f53797374656d53746174757300000000000000000000000000000000000000008160008151811061169557fe5b6020026020010181815250507f53796e7468657469784465627453686172650000000000000000000000000000816001815181106116cf57fe5b6020026020010181815250507f466565506f6f6c457465726e616c53746f7261676500000000000000000000008160028151811061170957fe5b6020026020010181815250507f45786368616e67657200000000000000000000000000000000000000000000008160038151811061174357fe5b6020026020010181815250506524b9b9bab2b960d11b8160048151811061176657fe5b6020026020010181815250507f526577617264457363726f775632000000000000000000000000000000000000816005815181106117a057fe5b6020026020010181815250507f44656c6567617465417070726f76616c73000000000000000000000000000000816006815181106117da57fe5b6020026020010181815250507f52657761726473446973747269627574696f6e000000000000000000000000008160078151811061181457fe5b6020026020010181815250507f436f6c6c61746572616c4d616e616765720000000000000000000000000000008160088151811061184e57fe5b6020026020010181815250507f57726170706572466163746f72790000000000000000000000000000000000008160098151811061188857fe5b6020026020010181815250507f457468657257726170706572000000000000000000000000000000000000000081600a815181106118c257fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600b815181106118fc57fe5b6020026020010181815250507f6578743a41676772656761746f7244656274526174696f00000000000000000081600c8151811061193657fe5b6020026020010181815250507f467574757265734d61726b65744d616e6167657200000000000000000000000081600d8151811061197057fe5b6020026020010181815250506119868282612892565b9250505090565b6000546001600160a01b031681565b6119a4611e6b565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9061080f908390613cee565b60006119f96130b4565b611a0283610b25565b60200151519392505050565b6000610824611aa6611a1e612947565b73__$f9217daff40bcb29719cec84f7ab900933$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6257600080fd5b505af4158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a9a9190810190613236565b9063ffffffff611e4616565b611aae6129be565b9063ffffffff612a3516565b60006108246129be565b611acc612a5f565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600281565b6000611afd6121dc565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015611b3557600080fd5b505afa158015611b49573d6000803e3d6000fd5b50505050611b556126e9565b600354610824906001600160a01b0316612753565b6003546001600160a01b031681565b6000610824612947565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b611bb2612a89565b6004544210611bd35760405162461bcd60e51b815260040161084f90613f89565b60028710611bf35760405162461bcd60e51b815260040161084f90613fa9565b6040518061010001604052808767ffffffffffffffff1681526020018667ffffffffffffffff16815260200160008152602001600081526020018581526020018481526020018381526020018281525060088860028110611c5057fe5b8251600791909102919091018054602084015167ffffffffffffffff90811668010000000000000000026fffffffffffffffff0000000000000000199190941667ffffffffffffffff19909216919091171691909117815560408201516001820155606082015160028201556080820151600382015560a0820151600482015560c0820151600582015560e09091015160069091015586611d5157611cf3612af7565b6001600160a01b03166331e6da5a876040518263ffffffff1660e01b8152600401611d1e9190613fd9565b600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b505050505b50505050505050565b611d626126e9565b611d6a612b0b565b6003546001600160a01b03908116911614611d975760405162461bcd60e51b815260040161084f90613f09565b611db581611da56000611df1565b600501549063ffffffff611e4616565b611dbf6000611df1565b6005015550565b60006108247f466565506f6f6c457465726e616c53746f726167650000000000000000000000612102565b60006008600260ff16836016540181611e0657fe5b0660028110611e1157fe5b6007020192915050565b60006108247f53796e7468657469784465627453686172650000000000000000000000000000612102565b6000828201838110156107315760405162461bcd60e51b815260040161084f90613ec9565b6000546001600160a01b03163314611e955760405162461bcd60e51b815260040161084f90613f49565b565b6000611ea1612b36565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f666565506572696f644475726174696f6e0000000000000000000000000000006040518363ffffffff1660e01b8152600401611f0e929190613dbe565b60206040518083038186803b158015611f2657600080fd5b505afa158015611f3a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108249190810190613236565b6000611f68612b61565b6001600160a01b0316826001600160a01b0316148061200a57506000611f8c612af7565b6001600160a01b03166316b2213f846040518263ffffffff1660e01b8152600401611fb79190613ce0565b60206040518083038186803b158015611fcf57600080fd5b505afa158015611fe3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120079190810190613236565b14155b806120935750612018612b8c565b6001600160a01b031663b38988f7836040518263ffffffff1660e01b81526004016120439190613ce0565b60206040518083038186803b15801561205b57600080fd5b505afa15801561206f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120939190810190613218565b806120b657506120a1612bb7565b6001600160a01b0316826001600160a01b0316145b806120d957506120c4612be2565b6001600160a01b0316826001600160a01b0316145b8061062057506120e7612c0d565b6001600160a01b0316826001600160a01b0316149050919050565b60008181526006602090815260408083205490516001600160a01b03909116918215159161213291869101613caa565b604051602081830303815290604052906110fb5760405162461bcd60e51b815260040161084f9190613e78565b600061073183836b033b2e3c9fd0803ce8000000612c38565b6000808261218b575060009050806121d5565b600061219685611df1565b905060006121b1858360030154612a3590919063ffffffff16565b905060006121cc868460050154612a3590919063ffffffff16565b91945090925050505b9250929050565b60006108247f53797374656d5374617475730000000000000000000000000000000000000000612102565b61220f612c0d565b6001600160a01b031663bb57ad206040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561224957600080fd5b505af115801561225d573d6000803e3d6000fd5b50505050612269612be2565b6001600160a01b031663bb57ad206040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156122a357600080fd5b505af11580156122b7573d6000803e3d6000fd5b50505050806122c66000611df1565b60020155816122d56000611df1565b6001015560006122e481611df1565b905060006122f26001611df1565b90506123178260030154611a9a836004015484600301546125cd90919063ffffffff16565b6123216000611df1565b6003015560058083015460068301549183015461234892611a9a919063ffffffff6125cd16565b6123526000611df1565b60050155600061236181611df1565b60030154111561243557612373612af7565b6001600160a01b031663c81ff8fa60075473feefeefeefeefeefeefeefeefeefeefeefeefeef6123a36000611df1565b600301546040518463ffffffff1660e01b81526004016123c593929190613da3565b602060405180830381600087803b1580156123df57600080fd5b505af11580156123f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124179190810190613218565b506124226000611df1565b600301546124306000611df1565b600401555b60165461246e9060029061246290600190612456908463ffffffff611e4616565b9063ffffffff6125cd16565b9063ffffffff612c7d16565b60168190556008906002811061248057fe5b6007020180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168155600060018201819055600282018190556003820181905560048201819055600582018190556006909101819055429081906124e490611df1565b805467ffffffffffffffff191667ffffffffffffffff929092169190911790554261250f6000611df1565b805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff00000000000000001990921691909117905561254c612af7565b6001600160a01b03166331e6da5a826040518263ffffffff1660e01b81526004016125779190613fd9565b600060405180830381600087803b15801561259157600080fd5b505af11580156125a5573d6000803e3d6000fd5b505050506125c66125b66001611df1565b5467ffffffffffffffff16612cad565b5050505050565b6000828211156125ef5760405162461bcd60e51b815260040161084f90613ed9565b50900390565b600080600080612603612af7565b6001600160a01b031663ae3bbbbb866040518263ffffffff1660e01b815260040161262e9190613ce0565b604080518083038186803b15801561264557600080fd5b505afa158015612659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061267d9190810190613272565b91509150600061268b6129be565b9050808310156126a357506001935091506107b79050565b60006126c06126b3611a1e612947565b839063ffffffff612a3516565b9050808411156126da5760008395509550505050506107b7565b50600194509092505050915091565b6002546001600160a01b0316331480159061270f57506003546001600160a01b03163314155b15611e9557600380546001600160a01b03191633179055565b60006108247f44656c6567617465417070726f76616c73000000000000000000000000000000612102565b6000808080808080612764886125f5565b91509150816127855760405162461bcd60e51b815260040161084f90613f59565b80156127a35760405162461bcd60e51b815260040161084f90613f19565b6127ac8861073a565b9094509250831515806127bf5750600083115b6127db5760405162461bcd60e51b815260040161084f90613ef9565b6127f9886127e96001611df1565b5467ffffffffffffffff16612d65565b839450600083111561281a5761280e83612de2565b955061281a8887612eac565b612825888688612f5e565b506001979650505050505050565b604080516001808252818301909252606091602080830190803883390190505090507f466c657869626c6553746f7261676500000000000000000000000000000000008160008151811061288357fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156128c2578160200160208202803883390190505b50905060005b8351811015612904578381815181106128dd57fe5b60200260200101518282815181106128f157fe5b60209081029190910101526001016128c8565b5060005b82518110156110fb5782818151811061291d57fe5b602002602001015182828651018151811061293457fe5b6020908102919091010152600101612908565b6000612951612b36565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f7461726765745468726573686f6c6400000000000000000000000000000000006040518363ffffffff1660e01b8152600401611f0e929190613dbe565b60006129c8612b36565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f69737375616e6365526174696f000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611f0e929190613dbe565b6000670de0b6b3a7640000612a50848463ffffffff61301a16565b81612a5757fe5b049392505050565b6002546001600160a01b03163314611e955760405162461bcd60e51b815260040161084f90613fb9565b6002546001600160a01b03163314801590612aaf57506003546001600160a01b03163314155b15612ac757600380546001600160a01b031916331790555b6000546003546001600160a01b03908116911614611e955760405162461bcd60e51b815260040161084f90613eb9565b60006108246524b9b9bab2b960d11b612102565b60006108247f52657761726473446973747269627574696f6e00000000000000000000000000612102565b60006108247f466c657869626c6553746f726167650000000000000000000000000000000000612102565b60006108247f45786368616e6765720000000000000000000000000000000000000000000000612102565b60006108247f436f6c6c61746572616c4d616e61676572000000000000000000000000000000612102565b60006108247f467574757265734d61726b65744d616e61676572000000000000000000000000612102565b60006108247f57726170706572466163746f7279000000000000000000000000000000000000612102565b60006108247f4574686572577261707065720000000000000000000000000000000000000000612102565b600080612c5e84612c5287600a870263ffffffff61301a16565b9063ffffffff61305416565b90506005600a820610612c6f57600a015b600a900490505b9392505050565b600081612c9c5760405162461bcd60e51b815260040161084f90613f29565b818381612ca557fe5b069392505050565b6002546040516001600160a01b039091169063907dff9790612cd3908490602001613d87565b6040516020818303038152906040526001604051612cf090613cd5565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168252612d3793929160009081908190600401613e0b565b600060405180830381600087803b158015612d5157600080fd5b505af11580156125c6573d6000803e3d6000fd5b612d6d611dc6565b6001600160a01b0316633562fd207f6c6173745f6665655f7769746864726177616c0000000000000000000000000084604051602001612dae929190613c79565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b8152600401610eee929190613dbe565b6000818160015b6002811015612ea4576000612e1d612e0083611df1565b60060154612e0d84611df1565b600501549063ffffffff6125cd16565b90508015612e9a576000848210612e345784612e36565b815b9050612e5581612e4585611df1565b600601549063ffffffff611e4616565b612e5e84611df1565b60060155612e72858263ffffffff6125cd16565b9450612e84848263ffffffff611e4616565b935084612e98578395505050505050610623565b505b5060001901612de9565b509392505050565b816001600160a01b03811673feefeefeefeefeefeefeefeefeefeefeefeefeef1415612eea5760405162461bcd60e51b815260040161084f90613f99565b6301dfe200612ef7613089565b6001600160a01b0316631bb47b448585846040518463ffffffff1660e01b8152600401612f2693929190613d32565b600060405180830381600087803b158015612f4057600080fd5b505af1158015612f54573d6000803e3d6000fd5b5050505050505050565b6002546040516001600160a01b039091169063907dff9790612f8890869086908690602001613d32565b6040516020818303038152906040526001604051612fa590613c9f565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168252612fec93929160009081908190600401613e0b565b600060405180830381600087803b15801561300657600080fd5b505af1158015611d51573d6000803e3d6000fd5b60008261302957506000610734565b8282028284828161303657fe5b04146107315760405162461bcd60e51b815260040161084f90613f69565b60008082116130755760405162461bcd60e51b815260040161084f90613ee9565b600082848161308057fe5b04949350505050565b60006108247f526577617264457363726f775632000000000000000000000000000000000000612102565b60405180604001604052806002905b6130cb61313a565b8152602001906001900390816130c35790505090565b604051806101000160405280600067ffffffffffffffff168152602001600067ffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180604001604052806002906020820280388339509192915050565b803561073481614145565b805161073481614145565b80516107348161415c565b805161073481614165565b803561073481614165565b80516107348161416e565b6000602082840312156131ac57600080fd5b60006131b88484613158565b949350505050565b6000602082840312156131d257600080fd5b60006131b88484613163565b600080604083850312156131f157600080fd5b60006131fd8585613158565b925050602061320e85828601613184565b9150509250929050565b60006020828403121561322a57600080fd5b60006131b8848461316e565b60006020828403121561324857600080fd5b60006131b88484613179565b60006020828403121561326657600080fd5b60006131b88484613184565b6000806040838503121561328557600080fd5b60006132918585613179565b925050602061320e8582860161316e565b600080604083850312156132b557600080fd5b60006131fd8585613184565b600080600080600080600060e0888a0312156132dc57600080fd5b60006132e88a8a613184565b97505060206132f98a828b01613184565b965050604061330a8a828b01613184565b955050606061331b8a828b01613184565b945050608061332c8a828b01613184565b93505060a061333d8a828b01613184565b92505060c061334e8a828b01613184565b91505092959891949750929550565b600080600080600060a0868803121561337557600080fd5b6000613381888861318f565b955050602061339288828901613179565b94505060406133a388828901613179565b93505060606133b488828901613179565b92505060806133c58882890161318f565b9150509295509295909350565b60006133de83836134c8565b505060400190565b60006133f2838361351d565b505060200190565b613403816140c9565b82525050565b61340381614076565b61340361341e82614076565b614124565b61342c81614063565b6134368184610623565b925061344182610827565b8060005b83811015610f1c57815161345987826133d2565b96506134648361405d565b925050600101613445565b600061347a82614069565b613484818561406d565b935061348f8361405d565b8060005b838110156134bd5781516134a788826133e6565b97506134b28361405d565b925050600101613493565b509495945050505050565b6134d181614063565b6134db8184610623565b92506134e682610827565b8060005b83811015610f1c5781516134fe87826133e6565b96506135098361405d565b9250506001016134ea565b61340381614081565b61340381610827565b61340361353282610827565b610827565b600061354282614069565b61354c818561406d565b935061355c8185602086016140f4565b61356581614135565b9093019392505050565b613403816140d0565b613403816140db565b613403816140e9565b600061359760178361406d565b7f4f6e6c7920496e7465726e616c20436f6e747261637473000000000000000000815260200192915050565b60006135d060358361406d565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527f2063616e20616363657074206f776e6572736869700000000000000000000000602082015260400192915050565b600061362f601d8361406d565b7f546f6f206561726c7920746f20636c6f73652066656520706572696f64000000815260200192915050565b600061366860138361406d565b7f4f776e6572206f6e6c792066756e6374696f6e00000000000000000000000000815260200192915050565b60006136a1602483610623565b7f46656573436c61696d656428616464726573732c75696e743235362c75696e7481527f3235362900000000000000000000000000000000000000000000000000000000602082015260240192915050565b6000613700601b8361406d565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613739601e8361406d565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613772601a8361406d565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006137ab60408361406d565b7f4e6f2066656573206f72207265776172647320617661696c61626c6520666f7281527f20706572696f642c206f72206665657320616c726561647920636c61696d6564602082015260400192915050565b600061380a602b8361406d565b7f4d697373696e6720636f6e74726163743a2053796e746865746978427269646781527f65546f4f7074696d69736d000000000000000000000000000000000000000000602082015260400192915050565b6000613869601183610623565b7f4d697373696e6720616464726573733a20000000000000000000000000000000815260110192915050565b60006138a260188361406d565b7f52657761726473446973747269627574696f6e206f6e6c790000000000000000815260200192915050565b60006138db601e8361406d565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b600061391460188361406d565b7f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815260200192915050565b600061394d601f8361406d565b7f4e6f7420617070726f76656420746f20636c61696d206f6e20626568616c6600815260200192915050565b6000613986602f8361406d565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681527f6f726d207468697320616374696f6e0000000000000000000000000000000000602082015260400192915050565b60006139e5601f8361406d565b7f432d526174696f2062656c6f772070656e616c7479207468726573686f6c6400815260200192915050565b6000613a1e60218361406d565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000613a7d601b8361406d565b7f4f6e6c792076616c69642072656c617965722063616e2063616c6c0000000000815260200192915050565b6000613ab660298361406d565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e2064757281527f696e672073657475700000000000000000000000000000000000000000000000602082015260400192915050565b6000613b15601983610623565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613b4e60178361406d565b7f4665652061646472657373206e6f7420616c6c6f776564000000000000000000815260200192915050565b6000613b8760188361406d565b7f696e76616c69642066656520706572696f6420696e6465780000000000000000815260200192915050565b6000613bc0601883610623565b7f466565506572696f64436c6f7365642875696e74323536290000000000000000815260180192915050565b6000613bf960178361406d565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b6000613c32601b8361406d565b7f46656520506572696f64204475726174696f6e206e6f74207365740000000000815260200192915050565b61340381614086565b613403816140a7565b613403816140b4565b6000613c858285613526565b602082019150613c958284613412565b5060140192915050565b600061073482613694565b6000613cb58261385c565b9150613cc18284613526565b50602001919050565b6000613cb582613b08565b600061073482613bb3565b602081016107348284613409565b6020810161073482846133fa565b60408101613d0a8285613409565b612c766020830184613409565b60408101613d258285613409565b612c76602083018461351d565b60608101613d408286613409565b613d4d602083018561351d565b6131b8604083018461351d565b608081016107348284613423565b60208082528101610731818461346f565b602081016107348284613514565b60208101610734828461351d565b60408101613d0a828561351d565b60608101613db1828661351d565b613d4d6020830185613409565b60408101613d25828561351d565b60408101613dda828561351d565b81810360208301526131b88184613537565b60408101613dfa828461351d565b8181036020830152610731816137fd565b60c08082528101613e1c8189613537565b9050613e2b6020830188613581565b613e38604083018761351d565b613e456060830186613578565b613e526080830185613578565b613e5f60a0830184613578565b979650505050505050565b60208101610734828461356f565b602080825281016107318184613537565b602080825281016106208161358a565b60208082528101610620816135c3565b6020808252810161062081613622565b602080825281016106208161365b565b60208082528101610620816136f3565b602080825281016106208161372c565b6020808252810161062081613765565b602080825281016106208161379e565b6020808252810161062081613895565b60208082528101610620816138ce565b6020808252810161062081613907565b6020808252810161062081613940565b6020808252810161062081613979565b60208082528101610620816139d8565b6020808252810161062081613a11565b6020808252810161062081613a70565b6020808252810161062081613aa9565b6020808252810161062081613b41565b6020808252810161062081613b7a565b6020808252810161062081613bec565b6020808252810161062081613c25565b602081016107348284613c5e565b60e08101613ff5828a613c67565b6140026020830189613c67565b61400f6040830188613c67565b61401c606083018761351d565b614029608083018661351d565b61403660a083018561351d565b61404360c083018461351d565b98975050505050505050565b602081016107348284613c70565b60200190565b50600290565b5190565b90815260200190565b60006106208261409b565b151590565b6fffffffffffffffffffffffffffffffff1690565b6001600160a01b031690565b67ffffffffffffffff1690565b60ff1690565b69ffffffffffffffffffff1690565b6000610620825b600061062082614076565b600061062061353283610827565b600061062082610827565b60005b8381101561410f5781810151838201526020016140f7565b8381111561411e576000848401525b50505050565b60006106208260006106208261413f565b601f01601f191690565b60601b90565b61414e81614076565b811461415957600080fd5b50565b61414e81614081565b61414e81610827565b61414e816140ba56fea365627a7a72315820c3856e9f5ba2ad2ad83f714daa0cb8f2bd038a835237380560bb1c48d323f0d56c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "sUSDAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "snxRewards",
							"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": "allNetworksSnxBackedDebt",
					"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": "allNetworksSnxBackedDebt",
							"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": "feesBurned",
					"outputs": [
						{
							"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": "account",
							"type": "address"
						}
					],
					"name": "feesToBurn",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "feesFromPeriod",
							"type": "uint256"
						}
					],
					"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": "totalFeesBurned",
					"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": "0xd6ecdfa44b5092bdc8885631887338953e34dbdfcdbe34b331ff0e48f800159d",
				"urls": [
					"bzz-raw://523fb755fd6edcef2a93145daa0b281256c07e926b1999c2ccf845efbdb66f0c",
					"dweb:/ipfs/QmQHFkV1r2F9Rrbn2KV8dXmFhn6DcefKoXs7eQMbjmY88W"
				]
			},
			"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": "0xd6ecdfa44b5092bdc8885631887338953e34dbdfcdbe34b331ff0e48f800159d",
						"urls": [
							"bzz-raw://523fb755fd6edcef2a93145daa0b281256c07e926b1999c2ccf845efbdb66f0c",
							"dweb:/ipfs/QmQHFkV1r2F9Rrbn2KV8dXmFhn6DcefKoXs7eQMbjmY88W"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolState": {
			"bytecode": "608060405234801561001057600080fd5b50604051610c75380380610c758339818101604052604081101561003357600080fd5b50805160209091015162375f00826001600160a01b03811661009c576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1504201600255600380546001600160a01b0319166001600160a01b039290921691909117905550610b4b8061012a6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80637de655451161008c578063ae2e933b11610066578063ae2e933b146102b5578063b326f84e146102bd578063cff2ddad146102e9578063d29c000a14610307576100cf565b80637de65545146102305780638da5cb5b1461027557806394e1a4481461027d576100cf565b80631627540c146100d457806319db2228146100fc57806339a3f63f1461012257806346ba2d90146101ea57806353a47bb71461020457806379ba509714610228575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b0316610333565b005b6100fa6004803603602081101561011257600080fd5b50356001600160a01b031661038f565b6100fa6004803603608081101561013857600080fd5b81019060208101813564010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184602083028401116401000000008311171561018757600080fd5b9193909290916020810190356401000000008111156101a557600080fd5b8201836020820111156101b757600080fd5b803590602001918460208302840111640100000000831117156101d957600080fd5b9193509150803590602001356103b9565b6101f2610593565b60408051918252519081900360200190f35b61020c610599565b604080516001600160a01b039092168252519081900360200190f35b6100fa6105a8565b61025c6004803603604081101561024657600080fd5b506001600160a01b038135169060200135610664565b6040805192835260208301919091528051918290030190f35b61020c610691565b6100fa6004803603608081101561029357600080fd5b506001600160a01b0381351690602081013590604081013590606001356106a0565b61020c610739565b61025c600480360360408110156102d357600080fd5b506001600160a01b038135169060200135610748565b6102f16107e9565b6040805160ff9092168252519081900360200190f35b61025c6004803603604081101561031d57600080fd5b506001600160a01b0381351690602001356107ee565b61033b6108d1565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6103976108d1565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6103c16108d1565b60025442106104015760405162461bcd60e51b8152600401808060200182810382526029815260200180610aee6029913960400191505060405180910390fd5b848314610447576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b8581101561058a5784848281811061045e57fe5b905060200201356004600089898581811061047557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002084600681106104b057fe5b600202015581600460008989858181106104c657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020846006811061050157fe5b600202016001018190555086868281811061051857fe5b905060200201356001600160a01b03166001600160a01b03167f3846bc3c5dca9c6ef89995aa7b28d43a5a99aa2e3ea230494da474b8d4b29aea86868481811061055e57fe5b9050602002013584604051808381526020018281526020019250505060405180910390a260010161044a565b50505050505050565b60025481565b6001546001600160a01b031681565b6001546001600160a01b031633146105f15760405162461bcd60e51b8152600401808060200182810382526035815260200180610a366035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6004602052816000526040600020816006811061067d57fe5b600202018054600190910154909250905082565b6000546001600160a01b031681565b6003546001600160a01b031633146106e95760405162461bcd60e51b8152600401808060200182810382526031815260200180610a8e6031913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902060010154811115610715576107158461091c565b506001600160a01b0392909216600090815260046020526040902090815560010155565b6003546001600160a01b031681565b6000806006831061078a5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a6b6023913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902083600681106107ad57fe5b60020201546001600160a01b038516600090815260046020526040902090925083600681106107d857fe5b600202016001015490509250929050565b600681565b6000806107f96109ee565b6001600160a01b038516600090815260046020526040808220815160c081019092529091600690835b8282101561085e578382600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610822565b509293506000925050505b60068110156108c75781816006811061087e57fe5b60200201516020015185106108bf5781816006811061089957fe5b6020020151518282600681106108ab57fe5b6020020151602001519350935050506108ca565b600101610869565b50505b9250929050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610abf602f913960400191505060405180910390fd5b565b60045b60068110156109ea576001600160a01b03821660009081526004602052604090206001820190826006811061095057fe5b60020201546001600160a01b0384166000908152600460205260409020826006811061097857fe5b60020201556001600160a01b038316600090815260046020526040902082600681106109a057fe5b600202016001015460046000856001600160a01b03166001600160a01b0316815260200190815260200160002082600681106109d857fe5b6002020160010155506000190161091f565b5050565b6040518060c001604052806006905b610a05610a1b565b8152602001906001900390816109fd5790505090565b60405180604001604052806000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970696e646578206578636565647320746865204645455f504552494f445f4c454e4754484f6e6c792074686520466565506f6f6c20636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a7231582024481c15717ff9b65c8baffa92c3d77d7dd08e7c6ac96afb4bdd9fd03f6a4d7764736f6c63430005100032",
			"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": "0xfdc4f5c60c4ecd5e95aef54f44d6e130740fbbac7455fa8314f31cb67dc219a6",
				"urls": [
					"bzz-raw://8d3aa5f483d986c680f34155f7a1276c6da69571d417e2bceaf4f2feaf359ff3",
					"dweb:/ipfs/QmUHnzC2GJiLKYdE8sFjuz1Vw4TekkH4A5AqsJNN2RKPvR"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"legacy/FeePoolState.sol": "FeePoolState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"legacy/FeePoolState.sol": {
						"keccak256": "0xfdc4f5c60c4ecd5e95aef54f44d6e130740fbbac7455fa8314f31cb67dc219a6",
						"urls": [
							"bzz-raw://8d3aa5f483d986c680f34155f7a1276c6da69571d417e2bceaf4f2feaf359ff3",
							"dweb:/ipfs/QmUHnzC2GJiLKYdE8sFjuz1Vw4TekkH4A5AqsJNN2RKPvR"
						]
					}
				},
				"version": 1
			}
		},
		"RewardsDistribution": {
			"bytecode": "608060405234801561001057600080fd5b506040516112af3803806112af833981810160405260a081101561003357600080fd5b50805160208201516040830151606084015160809094015192939192909190846001600160a01b0381166100ae576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039586166001600160a01b03199182161790915560038054948616948216949094179093556004805492851692841692909217909155600580549190931691161790555061114a806101656000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063817a6951116100a2578063bdd1248211610071578063bdd12482146102c5578063bf7e214f146102cd578063c9e9cc4d146102d5578063d8297e44146102dd578063e54c16711461030357610116565b8063817a6951146102725780638da5cb5b1461028f57806395896b7614610297578063a430be6c146102bd57610116565b806359974e38116100e957806359974e38146101c15780635de39934146101f257806360eb3ff21461021857806379ba5097146102445780637a9e5e4b1461024c57610116565b8063060ca2501461011b5780631627540c146101355780634487d3df1461015d57806353a47bb71461019d575b600080fd5b610123610335565b60408051918252519081900360200190f35b61015b6004803603602081101561014b57600080fd5b50356001600160a01b031661033c565b005b61017a6004803603602081101561017357600080fd5b5035610398565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6101a56103cd565b604080516001600160a01b039092168252519081900360200190f35b6101de600480360360208110156101d757600080fd5b50356103dc565b604080519115158252519081900360200190f35b61015b6004803603602081101561020857600080fd5b50356001600160a01b0316610a43565b6101de6004803603604081101561022e57600080fd5b506001600160a01b038135169060200135610a6d565b61015b610c10565b61015b6004803603602081101561026257600080fd5b50356001600160a01b0316610ccc565b61015b6004803603602081101561028857600080fd5b5035610cf6565b6101a5610de1565b61015b600480360360208110156102ad57600080fd5b50356001600160a01b0316610df0565b6101a5610e1a565b6101a5610e29565b6101a5610e38565b6101a5610e47565b61015b600480360360208110156102f357600080fd5b50356001600160a01b0316610e56565b6101de6004803603606081101561031957600080fd5b508035906001600160a01b036020820135169060400135610e80565b6006545b90565b610344610f4c565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600681815481106103a557fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6001546001600160a01b031681565b600080821161042a576040805162461bcd60e51b81526020600482015260156024820152744e6f7468696e6720746f206469737472696275746560581b604482015290519081900360640190fd5b6002546001600160a01b03163314610489576040805162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420617574686f72697365640000000000000000604482015290519081900360640190fd5b6004546001600160a01b03166104e6576040805162461bcd60e51b815260206004820152601760248201527f526577617264457363726f77206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0316610543576040805162461bcd60e51b815260206004820152601960248201527f53796e74686574697850726f7879206973206e6f742073657400000000000000604482015290519081900360640190fd5b6005546001600160a01b03166105a0576040805162461bcd60e51b815260206004820152601760248201527f466565506f6f6c50726f7879206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b600354604080516370a0823160e01b8152306004820152905184926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156105ea57600080fd5b505afa1580156105fe573d6000803e3d6000fd5b505050506040513d602081101561061457600080fd5b505110156106535760405162461bcd60e51b81526004018080602001828103825260468152602001806110a16046913960600191505060405180910390fd5b8160005b60065481101561091a5760006001600160a01b03166006828154811061067957fe5b60009182526020909120600290910201546001600160a01b0316148015906106c05750600681815481106106a957fe5b906000526020600020906002020160010154600014155b15610912576106f6600682815481106106d557fe5b90600052602060002090600202016001015483610f9790919063ffffffff16565b600354600680549294506001600160a01b039091169163a9059cbb91908490811061071d57fe5b6000918252602090912060029091020154600680546001600160a01b03909216918590811061074857fe5b9060005260206000209060020201600101546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107a957600080fd5b505af11580156107bd573d6000803e3d6000fd5b505050506040513d60208110156107d357600080fd5b50506006805460609190839081106107e757fe5b60009182526020808320600160029093020191909101546040805160248082019390935281518082039093018352604401905290810180516001600160e01b0316633c6b16ab60e01b179052600680549193506060918590811061084757fe5b60009182526020918290206002909102015460405185516001600160a01b0390921692869282918401908083835b602083106108945780518252601f199092019160209182019101610875565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146108f6576040519150601f19603f3d011682016040523d82523d6000602084013e6108fb565b606091505b50915091508161090e5780518060208301fd5b5050505b600101610657565b50600354600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018590525192169163a9059cbb916044808201926020929091908290030181600087803b15801561097557600080fd5b505af1158015610989573d6000803e3d6000fd5b505050506040513d602081101561099f57600080fd5b50506005546040805163fd1f498d60e01b81526004810184905290516001600160a01b039092169163fd1f498d9160248082019260009290919082900301818387803b1580156109ee57600080fd5b505af1158015610a02573d6000803e3d6000fd5b50506040805186815290517f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be4429350908190036020019150a150600192915050565b610a4b610f4c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a77610f4c565b6001600160a01b038316610ad2576040805162461bcd60e51b815260206004820152601760248201527f43616e74206164642061207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b81610b1d576040805162461bcd60e51b815260206004820152601660248201527510d85b9d081859190818481e995c9bc8185b5bdd5b9d60521b604482015290519081900360640190fd5b610b25610ff4565b506040805180820182526001600160a01b03858116808352602080840187815260068054600181018255600082905286517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290920291820180546001600160a01b031916919097161790955590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909401939093559154845160001991909101815291820152808301859052915190917f08fff3cb767a84a8039ea0f84053799c5cdca0e8efb031eeb6b05b9c174aa208916060918190039190910190a15060019392505050565b6001546001600160a01b03163314610c595760405162461bcd60e51b815260040180806020018281038252603581526020018061106c6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610cd4610f4c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610cfe610f4c565b60065460001901811115610d4f576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b805b60065460001901811015610dc95760068160010181548110610d6f57fe5b906000526020600020906002020160068281548110610d8a57fe5b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b039092169190911781556001918201549082015501610d51565b506006805490610ddd90600019830161100b565b5050565b6000546001600160a01b031681565b610df8610f4c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031681565b6003546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031681565b610e5e610f4c565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e8a610f4c565b60065460001901841115610edb576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b8260068581548110610ee957fe5b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160068581548110610f2c57fe5b906000526020600020906002020160010181905550600190509392505050565b6000546001600160a01b03163314610f955760405162461bcd60e51b815260040180806020018281038252602f8152602001806110e7602f913960400191505060405180910390fd5b565b600082821115610fee576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080518082019091526000808252602082015290565b81548183558181111561103757600202816002028360005260206000209182019101611037919061103c565b505050565b61033991905b808211156110675780546001600160a01b031916815560006001820155600201611042565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697052657761726473446973747269627574696f6e20636f6e747261637420646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f20646973747269627574654f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820a21293dcd394eb534a309d5e1fee8f6f1f3197893b3b26a58cabe29344ed80e264736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_authority",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_synthetixProxy",
							"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": "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": "_rewardEscrow",
							"type": "address"
						}
					],
					"name": "setRewardEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_synthetixProxy",
							"type": "address"
						}
					],
					"name": "setSynthetixProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthetixProxy",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x454fef7aa7a9af77d245d3465d3a5ac86d222c39b3843ba6f6f2c0c1feccabd5",
				"urls": [
					"bzz-raw://cb8f383824388ce9d39a84fb641e97ad0e8b2f243f0c56f43b14f03282072e38",
					"dweb:/ipfs/QmdtTY98wMb6kwENJL3rVKXuB52fFTnYzMrDfiiR4QXBpA"
				]
			},
			"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": "0x454fef7aa7a9af77d245d3465d3a5ac86d222c39b3843ba6f6f2c0c1feccabd5",
						"urls": [
							"bzz-raw://cb8f383824388ce9d39a84fb641e97ad0e8b2f243f0c56f43b14f03282072e38",
							"dweb:/ipfs/QmdtTY98wMb6kwENJL3rVKXuB52fFTnYzMrDfiiR4QXBpA"
						]
					}
				},
				"version": 1
			}
		},
		"DebtCache": {
			"bytecode": "60806040526008805461ff001960ff199091166001171690553480156200002557600080fd5b50604051620036f0380380620036f0833981016040819052620000489162000114565b81818080836001600160a01b0381166200007f5760405162461bcd60e51b81526004016200007690620001d0565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000cc918490620001aa565b60405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055506200022b9350505050565b80516200010e8162000211565b92915050565b600080604083850312156200012857600080fd5b600062000136858562000101565b9250506020620001498582860162000101565b9150509250929050565b6200015e81620001fd565b82525050565b6200015e81620001eb565b60006200017e601983620001e2565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001ba828562000153565b620001c9602083018462000164565b9392505050565b602080825281016200010e816200016f565b90815260200190565b60006001600160a01b0382166200010e565b60006200010e8260006200010e82620001eb565b6200021c81620001eb565b81146200022857600080fd5b50565b6134b5806200023b6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063741853601161010f578063af5355d8116100a2578063d0fffafd11610071578063d0fffafd146103cd578063d685743a146103d5578063e3476cd4146103e8578063fc524773146103f0576101e5565b8063af5355d81461038c578063b13cd78514610394578063b7224ec7146103a7578063cda218c7146103ba576101e5565b80638da5cb5b116100de5780638da5cb5b146103565780638dd5bfbc1461035e5780639e3b92ca14610371578063a5f27edb14610384576101e5565b80637418536014610329578063759076e51461033157806379ba509714610339578063899ffef414610341576101e5565b80632992dba21161018757806342c7b8191161015657806342c7b819146102d657806353a47bb7146102e9578063614d08f8146102fe5780636bf7c43514610306576101e5565b80632992dba21461028b5780632af64bd3146102a1578063392e53cd146102b65780633a900a2e146102be576101e5565b806307619a5f116101c357806307619a5f146102325780630fb38465146102525780631627540c1461026557806317b38db414610278576101e5565b806304bd11e5146101ea57806304f3bcec146101ff578063053932621461021d575b600080fd5b6101fd6101f8366004612a9c565b6103f8565b005b61020761040c565b604051610214919061320d565b60405180910390f35b61022561041b565b60405161021491906131b6565b6102456102403660046128fa565b610422565b6040516102149190613154565b610225610260366004612ad8565b610469565b6101fd6102733660046128b6565b61047b565b6101fd61028636600461293c565b6104d9565b610293610554565b60405161021492919061330c565b6102a961067c565b60405161021491906131a8565b6102a9610793565b6102c66107a1565b6040516102149493929190613327565b6101fd6102e4366004612ad8565b6107d2565b6102f16108ff565b60405161021491906130fa565b61022561090e565b6103196103143660046128fa565b61091e565b6040516102149493929190613165565b6101fd610971565b610293610ac7565b6101fd610ada565b610349610b7f565b6040516102149190613143565b6102f1610d44565b6101fd61036c366004612ad8565b610d53565b6101fd61037f366004612b14565b610e17565b6102a9610e66565b610225610e6f565b6102456103a23660046128fa565b610e7e565b6101fd6103b5366004612b44565b610ebc565b6101fd6103c83660046128fa565b6110d1565b6102256111aa565b6101fd6103e3366004612b14565b6111b0565b6101fd61123d565b6102a961146c565b610400611479565b610409816114b3565b50565b6002546001600160a01b031681565b6004545b90565b606061046083838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061150092505050565b90505b92915050565b60009081526005602052604090205490565b610483611590565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906104ce9083906130fa565b60405180910390a150565b6104e16115ba565b61054e8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201829052509250611615915050565b50505050565b600080606061056161175a565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561059957600080fd5b505afa1580156105ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105d591908101906129ac565b9050606060006105e361176e565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b815260040161060e9190613143565b60006040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106629190810190612a4b565b91509150610671838383611789565b945094505050509091565b60006060610688610b7f565b905060005b815181101561078a5760008282815181106106a457fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906106f59085906004016131b6565b60206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061074591908101906128dc565b6001600160a01b031614158061077057506000818152600360205260409020546001600160a01b0316155b15610781576000935050505061041f565b5060010161068d565b50600191505090565b600854610100900460ff1681565b6007546004546008546000928392839283929190829060ff166107c3826119b6565b94509450945094505090919293565b6107da611479565b60006107e5826119cf565b9050600082131561085b57631cd554d160e21b600052600560205260008051602061345383398151915254610820908263ffffffff6119da16565b631cd554d160e21b600052600560205260008051602061345383398151915255600454610853908263ffffffff6119da16565b6004556108c2565b631cd554d160e21b60005260056020526000805160206134538339815191525461088b908263ffffffff6119ff16565b631cd554d160e21b6000526005602052600080516020613453833981519152556004546108be908263ffffffff6119ff16565b6004555b7f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be5996004546040516108f391906131b6565b60405180910390a15050565b6001546001600160a01b031681565b6844656274436163686560b81b81565b60606000806000610961868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611a2792505050565b9299919850965090945092505050565b606061097b610b7f565b905060005b8151811015610ac357600082828151811061099757fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016109d991906130ef565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610a059291906131ed565b60206040518083038186803b158015610a1d57600080fd5b505afa158015610a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a5591908101906128dc565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610ab190849084906131c4565b60405180910390a15050600101610980565b5050565b600080610ad2611b85565b915091509091565b6001546001600160a01b03163314610b0d5760405162461bcd60e51b8152600401610b049061323c565b60405180910390fd5b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610b50926001600160a01b0391821692911690613116565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610b8a611dcd565b60408051600980825261014082019092529192506060919060208201610120803883390190505090506524b9b9bab2b960d11b81600081518110610bca57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110610bf057fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110610c1a57fe5b6020026020010181815250506b53797374656d53746174757360a01b81600381518110610c4357fe5b6020026020010181815250507021b7b63630ba32b930b626b0b730b3b2b960791b81600481518110610c7157fe5b6020026020010181815250506d57726170706572466163746f727960901b81600581518110610c9c57fe5b6020026020010181815250506b22ba3432b92bb930b83832b960a11b81600681518110610cc557fe5b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b81600781518110610cf657fe5b60200260200101818152505073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b81600881518110610d2757fe5b602002602001018181525050610d3d8282611e1e565b9250505090565b6000546001600160a01b031681565b610d5b611590565b6000610d6561175a565b6001600160a01b03166332608039836040518263ffffffff1660e01b8152600401610d9091906131b6565b60206040518083038186803b158015610da857600080fd5b505afa158015610dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610de09190810190612b74565b6001600160a01b031614610e065760405162461bcd60e51b8152600401610b04906132ec565b600090815260056020526040812055565b610e1f611eda565b600082815260066020526040812054820190811215610e505760405162461bcd60e51b8152600401610b049061322c565b6000928352600660205260409092209190915550565b60085460ff1690565b6000610e79611f95565b905090565b606061046083838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061204592505050565b610ec4611590565b600854610100900460ff1615610eec5760405162461bcd60e51b8152600401610b049061327c565b6008805461ff001916610100179055604080516372cb051f60e01b815290516060916001600160a01b038416916372cb051f91600480820192600092909190829003018186803b158015610f3f57600080fd5b505afa158015610f53573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f7b91908101906129ac565b90506000815111610f9e5760405162461bcd60e51b8152600401610b04906132fc565b6040516307619a5f60e01b81526060906001600160a01b038516906307619a5f90610fcd908590600401613143565b60006040518083038186803b158015610fe557600080fd5b505afa158015610ff9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110219190810190612a16565b905060005b82518110156110ca57600082828151811061103d57fe5b602002602001015111156110c25761109782828151811061105a57fe5b60200260200101516006600086858151811061107257fe5b60200260200101518152602001908152602001600020546119da90919063ffffffff16565b600660008584815181106110a757fe5b60200260200101518152602001908152602001600020819055505b600101611026565b5050505050565b6110d96120cd565b606060006110e561176e565b6001600160a01b031663c8e5bbd585856040518363ffffffff1660e01b8152600401611112929190613131565b60006040518083038186803b15801561112a57600080fd5b505afa15801561113e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111669190810190612a4b565b9150915061054e8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508692508591506116159050565b60075490565b6111b8611479565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106111e857fe5b6020908102919091010152604080516001808252818301909252606091816020016020820280388339019050509050828160008151811061122557fe5b60200260200101818152505061054e82826000611615565b6112456120cd565b606061124f61175a565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561128757600080fd5b505afa15801561129b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112c391908101906129ac565b9050606060008060006112d585611a27565b6b11955515549154d7d111509560a21b600090815260056020527fb03402a6fc396b42a4a74df8120873f820800f1398191168ef707a9051d6d76e849055845194985092965090945092508491905b8181101561138e57600087828151811061133a57fe5b6020026020010151905061135781856119da90919063ffffffff16565b935080600560008b858151811061136a57fe5b60209081029190910181015182528101919091526040016000205550600101611324565b506c115610d31551115117d1115095609a1b600090815260056020527fbca14b7b4212dd98a4b255832d862779dccd9aba14592c2e2c4e62d4efc07bc78590556113de838663ffffffff61213316565b6004819055426007556040519091507f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be5999061141a9083906131b6565b60405180910390a17fc481e742c89630d4b1a5ed3a0fc624c1c41ed463bd00ac26a7e93c71e932126f4260405161145191906131b6565b60405180910390a1611462846114b3565b5050505050505050565b6000610e796007546119b6565b61148161175a565b6001600160a01b0316336001600160a01b0316146114b15760405162461bcd60e51b8152600401610b04906132dc565b565b60085460ff16151581151514610409576008805460ff19168215159081179091556040517f8eebec690c34bbf0fe0d5b93e442beaf16bdaf99052569581de2dcb3e31a53a790600090a250565b6060600082519050606081604051908082528060200260200182016040528015611534578160200160208202803883390190505b50905060005b82811015611588576006600086838151811061155257fe5b602002602001015181526020019081526020016000205482828151811061157557fe5b602090810291909101015260010161153a565b509392505050565b6000546001600160a01b031633146114b15760405162461bcd60e51b8152600401610b04906132bc565b6115c261175a565b6001600160a01b0316336001600160a01b031614806115f957506115e461214e565b6001600160a01b0316336001600160a01b0316145b6114b15760405162461bcd60e51b8152600401610b049061324c565b8251825181146116375760405162461bcd60e51b8152600401610b04906132ac565b60008060606116468787612165565b905060005b848110156116d557600088828151811061166157fe5b60200260200101519050600083838151811061167957fe5b602002602001015190506116a96005600084815260200190815260200160002054876119da90919063ffffffff16565b95506116bb858263ffffffff6119da16565b60009283526005602052604090922055925060010161164b565b5081831461174257600454611700846116f4838663ffffffff6119da16565b9063ffffffff6119ff16565b9050806004819055507f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be5998160405161173891906131b6565b60405180910390a1505b841561175157611751856114b3565b50505050505050565b6000610e796524b9b9bab2b960d11b6124f0565b6000610e796c45786368616e6765526174657360981b6124f0565b60008060008061179761254d565b6001600160a01b0316631e33fc6b6040518163ffffffff1660e01b8152600401604080518083038186803b1580156117ce57600080fd5b505afa1580156117e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118069190810190612b92565b9150915060008061181561254d565b6001600160a01b031663ad79a8586040518163ffffffff1660e01b8152600401604080518083038186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118849190810190612b92565b9150915086806118915750825b806118995750805b94506118ab848363ffffffff6119da16565b95506119356118b861256c565b6001600160a01b031663ee5f3f5c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118f057600080fd5b505afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119289190810190612af6565b879063ffffffff6119da16565b955060005b89518110156119a95761199f6119928a838151811061195557fe5b6020026020010151600660008e868151811061196d57fe5b602002602001015181526020019081526020016000205461258690919063ffffffff16565b889063ffffffff6119da16565b965060010161193a565b5050505050935093915050565b60008142036119c3611f95565b10806104635750501590565b60006104638261259b565b6000828201838110156104605760405162461bcd60e51b8152600401610b049061325c565b600082821115611a215760405162461bcd60e51b8152600401610b049061326c565b50900390565b6060600080600060606000611a3a61176e565b6001600160a01b031663c8e5bbd5886040518263ffffffff1660e01b8152600401611a659190613143565b60006040518083038186803b158015611a7d57600080fd5b505afa158015611a91573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ab99190810190612a4b565b915091506060611ac98884612165565b9050600080611ad98a8686611789565b91509150600080611ae86125b1565b6001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401604080518083038186803b158015611b1f57600080fd5b505afa158015611b33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b579190810190612b92565b915091508482858880611b675750835b80611b6f5750855b9a509a509a509a50505050505050509193509193565b6000806060611b9261175a565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b158015611bca57600080fd5b505afa158015611bde573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c0691908101906129ac565b905060606000611c1461176e565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b8152600401611c3f9190613143565b60006040518083038186803b158015611c5757600080fd5b505afa158015611c6b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c939190810190612a4b565b915091506060611ca38484612165565b9050600080611cb3868686611789565b845191935091506000805b82811015611cf657611cec868281518110611cd557fe5b6020026020010151836119da90919063ffffffff16565b9150600101611cbe565b50600080611d026125b1565b6001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401604080518083038186803b158015611d3957600080fd5b505afa158015611d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d719190810190612b92565b9092509050611d86838363ffffffff6119da16565b9250858310611da457611d9f838763ffffffff6119ff16565b611da7565b60005b9250828880611db35750815b80611dbb5750855b9b509b50505050505050505050509091565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611e0f57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611e4e578160200160208202803883390190505b50905060005b8351811015611e9057838181518110611e6957fe5b6020026020010151828281518110611e7d57fe5b6020908102919091010152600101611e54565b5060005b8251811015611ed357828181518110611ea957fe5b6020026020010151828286510181518110611ec057fe5b6020908102919091010152600101611e94565b5092915050565b6000611ee46125d3565b6001600160a01b031663e0aa2797336040518263ffffffff1660e01b8152600401611f0f9190613108565b60206040518083038186803b158015611f2757600080fd5b505afa158015611f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f5f9190810190612aba565b6000549091506001600160a01b031633148080611f795750815b610ac35760405162461bcd60e51b8152600401610b049061329c565b6000611f9f6125ef565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401611ff59291906131d2565b60206040518083038186803b15801561200d57600080fd5b505afa158015612021573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e799190810190612af6565b6060600082519050606081604051908082528060200260200182016040528015612079578160200160208202803883390190505b50905060005b82811015611588576005600086838151811061209757fe5b60200260200101518152602001908152602001600020548282815181106120ba57fe5b602090810291909101015260010161207f565b6000546001600160a01b031633146114b1576120e761260c565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561211f57600080fd5b505afa15801561054e573d6000803e3d6000fd5b60008282101561214557818303610460565b50600092915050565b6000610e796822bc31b430b733b2b960b91b6124f0565b606060008351905080604051908082528060200260200182016040528015612197578160200160208202803883390190505b50915060606121a461175a565b6001600160a01b0316633b6afe40866040518263ffffffff1660e01b81526004016121cf9190613143565b60006040518083038186803b1580156121e757600080fd5b505afa1580156121fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261222391908101906129e1565b9050600061222f612626565b6001600160a01b0316634c74183c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561226757600080fd5b505afa15801561227b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061229f9190810190612af6565b905060005b838110156124e65760008382815181106122ba57fe5b6020026020010151905060006001600160a01b0316816001600160a01b031614156122f75760405162461bcd60e51b8152600401610b049061328c565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561233257600080fd5b505afa158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061236a9190810190612af6565b9050600061239489858151811061237d57fe5b60200260200101518361258690919063ffffffff16565b90506000631cd554d160e21b8786815181106123ac57fe5b60200260200101516001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156123ec57600080fd5b505afa158015612400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124249190810190612af6565b14156124ab5773__$dca23be7dad9e358f0d949d7943fe17a26$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561246e57600080fd5b505af4158015612482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124a69190810190612af6565b6124ad565b855b90506124bf828263ffffffff61258616565b8986815181106124cb57fe5b60209081029190910101525050600190920191506122a49050565b5050505092915050565b60008181526003602090815260408083205490516001600160a01b039091169182151591612520918691016130cf565b60405160208183030381529060405290611ed35760405162461bcd60e51b8152600401610b04919061321b565b6000610e797021b7b63630ba32b930b626b0b730b3b2b960791b6124f0565b6000610e796b22ba3432b92bb930b83832b960a11b6124f0565b60006104608383670de0b6b3a7640000612648565b60008082126125aa5781610463565b5060000390565b6000610e7973233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b6124f0565b6000610e796d57726170706572466163746f727960901b6124f0565b6000610e796e466c657869626c6553746f7261676560881b6124f0565b6000610e796b53797374656d53746174757360a01b6124f0565b6000610e7973223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b6124f0565b600080600a830461265f868663ffffffff61268616565b8161266657fe5b0490506005600a82061061267857600a015b600a900490505b9392505050565b60008261269557506000610463565b828202828482816126a257fe5b04146104605760405162461bcd60e51b8152600401610b04906132cc565b803561046381613423565b805161046381613423565b60008083601f8401126126e857600080fd5b50813567ffffffffffffffff81111561270057600080fd5b60208301915083602082028301111561271857600080fd5b9250929050565b600082601f83011261273057600080fd5b815161274361273e82613376565b61334f565b9150818183526020840193506020810190508385602084028201111561276857600080fd5b60005b838110156124e6578161277e8882612895565b845250602092830192919091019060010161276b565b600082601f8301126127a557600080fd5b81516127b361273e82613376565b915081818352602084019350602081019050838560208402820111156127d857600080fd5b60005b838110156124e657816127ee88826128ab565b84525060209283019291909101906001016127db565b600082601f83011261281557600080fd5b815161282361273e82613376565b9150818183526020840193506020810190508385602084028201111561284857600080fd5b60005b838110156124e6578161285e8882612895565b845250602092830192919091019060010161284b565b803561046381613437565b805161046381613437565b803561046381613440565b805161046381613440565b803561046381613449565b805161046381613449565b6000602082840312156128c857600080fd5b60006128d484846126c0565b949350505050565b6000602082840312156128ee57600080fd5b60006128d484846126cb565b6000806020838503121561290d57600080fd5b823567ffffffffffffffff81111561292457600080fd5b612930858286016126d6565b92509250509250929050565b6000806000806040858703121561295257600080fd5b843567ffffffffffffffff81111561296957600080fd5b612975878288016126d6565b9450945050602085013567ffffffffffffffff81111561299457600080fd5b6129a0878288016126d6565b95989497509550505050565b6000602082840312156129be57600080fd5b815167ffffffffffffffff8111156129d557600080fd5b6128d48482850161271f565b6000602082840312156129f357600080fd5b815167ffffffffffffffff811115612a0a57600080fd5b6128d484828501612794565b600060208284031215612a2857600080fd5b815167ffffffffffffffff811115612a3f57600080fd5b6128d484828501612804565b60008060408385031215612a5e57600080fd5b825167ffffffffffffffff811115612a7557600080fd5b612a8185828601612804565b9250506020612a928582860161287f565b9150509250929050565b600060208284031215612aae57600080fd5b60006128d48484612874565b600060208284031215612acc57600080fd5b60006128d4848461287f565b600060208284031215612aea57600080fd5b60006128d4848461288a565b600060208284031215612b0857600080fd5b60006128d48484612895565b60008060408385031215612b2757600080fd5b6000612b33858561288a565b9250506020612a928582860161288a565b60008060408385031215612b5757600080fd5b6000612b6385856128a0565b9250506020612a92858286016128a0565b600060208284031215612b8657600080fd5b60006128d484846128ab565b60008060408385031215612ba557600080fd5b6000612a818585612895565b6000612bbd8383612cc6565b505060200190565b612bce816133d6565b82525050565b612bce816133af565b6000612be983856133a1565b93506001600160fb1b03831115612bff57600080fd5b602083029250612c108385846133e1565b50500190565b6000612c218261339d565b612c2b81856133a1565b9350612c3683613397565b8060005b83811015612c64578151612c4e8882612bb1565b9750612c5983613397565b925050600101612c3a565b509495945050505050565b6000612c7a8261339d565b612c8481856133a1565b9350612c8f83613397565b8060005b83811015612c64578151612ca78882612bb1565b9750612cb283613397565b925050600101612c93565b612bce816133ba565b612bce8161041f565b612bce612cdb8261041f565b61041f565b612bce816133bf565b6000612cf48261339d565b612cfe81856133a1565b9350612d0e8185602086016133ed565b612d1781613419565b9093019392505050565b6000612d2e6024836133a1565b7f4578636c7564656420646562742063616e6e6f74206265636f6d65206e6567618152637469766560e01b602082015260400192915050565b6000612d746035836133a1565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612dcb6021836133a1565b7f53656e646572206973206e6f7420497373756572206f722045786368616e67658152603960f91b602082015260400192915050565b6000612e0e601b836133a1565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612e47601e836133a1565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000612e806011836133aa565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000612ead6013836133a1565b72185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b815260200192915050565b6000612edc6014836133a1565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b6000612f0c601f836133a1565b7f4f6e6c7920646562742069737375657273206d61792063616c6c207468697300815260200192915050565b6000612f45601a836133a1565b7f496e707574206172726179206c656e6774687320646966666572000000000000815260200192915050565b6000612f7e602f836133a1565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000612fcf6021836133a1565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006130126014836133a1565b7329b2b73232b91034b9903737ba1024b9b9bab2b960611b815260200192915050565b60006130426019836133aa565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061307b600c836133a1565b6b53796e74682065786973747360a01b815260200192915050565b60006130a3601d836133a1565b7f70726576696f75732049737375657220686173206e6f2073796e746873000000815260200192915050565b60006130da82612e73565b91506130e68284612ccf565b50602001919050565b60006130da82613035565b602081016104638284612bd4565b602081016104638284612bc5565b604081016131248285612bd4565b61267f6020830184612bd4565b602080825281016128d4818486612bdd565b602080825281016104608184612c16565b602080825281016104608184612c6f565b608080825281016131768187612c6f565b90506131856020830186612cc6565b6131926040830185612cc6565b61319f6060830184612cbd565b95945050505050565b602081016104638284612cbd565b602081016104638284612cc6565b604081016131248285612cc6565b604081016131e08285612cc6565b61267f6020830184612cc6565b604081016131fb8285612cc6565b81810360208301526128d48184612ce9565b602081016104638284612ce0565b602080825281016104608184612ce9565b6020808252810161046381612d21565b6020808252810161046381612d67565b6020808252810161046381612dbe565b6020808252810161046381612e01565b6020808252810161046381612e3a565b6020808252810161046381612ea0565b6020808252810161046381612ecf565b6020808252810161046381612eff565b6020808252810161046381612f38565b6020808252810161046381612f71565b6020808252810161046381612fc2565b6020808252810161046381613005565b602080825281016104638161306e565b6020808252810161046381613096565b6040810161331a8285612cc6565b61267f6020830184612cbd565b608081016133358287612cc6565b6133426020830186612cc6565b6131926040830185612cbd565b60405181810167ffffffffffffffff8111828210171561336e57600080fd5b604052919050565b600067ffffffffffffffff82111561338d57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000610463826133ca565b151590565b6000610463826133af565b6001600160a01b031690565b6000610463826133bf565b82818337506000910152565b60005b838110156134085781810151838201526020016133f0565b8381111561054e5750506000910152565b601f01601f191690565b61342c816133af565b811461040957600080fd5b61342c816133ba565b61342c8161041f565b61342c816133bf56fe74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa365627a7a72315820c9692a6ac6feab328e598aab96cad439088846572c40ebeb03dc2aee35e943d26c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "snxIssuedDebts",
							"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": "totalNonSnxBackedDebt",
					"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": "updateCachedsUSDDebt",
					"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": "0x42b9897bff8cc807d7aa849bf0c68ae8b06a4f8979308a09db7efc3344236a46",
				"urls": [
					"bzz-raw://02b181675bfe70c8bedaed3d0beb5ae6d96172e79d3a201f40a6097fc6280c77",
					"dweb:/ipfs/QmaGVSvSzD6FYw466DTXqHgthf6a7a9dAAMKVSaeG2YzkK"
				]
			},
			"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": "0x42b9897bff8cc807d7aa849bf0c68ae8b06a4f8979308a09db7efc3344236a46",
						"urls": [
							"bzz-raw://02b181675bfe70c8bedaed3d0beb5ae6d96172e79d3a201f40a6097fc6280c77",
							"dweb:/ipfs/QmaGVSvSzD6FYw466DTXqHgthf6a7a9dAAMKVSaeG2YzkK"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangerWithFeeRecAlternatives": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162005a5938038062005a59833981016040819052620000349162000100565b81818080836001600160a01b0381166200006b5760405162461bcd60e51b81526004016200006290620001bc565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b891849062000196565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550620002179350505050565b8051620000fa81620001fd565b92915050565b600080604083850312156200011457600080fd5b6000620001228585620000ed565b92505060206200013585828601620000ed565b9150509250929050565b6200014a81620001e9565b82525050565b6200014a81620001d7565b60006200016a601983620001ce565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a682856200013f565b620001b5602083018462000150565b9392505050565b60208082528101620000fa816200015b565b90815260200190565b60006001600160a01b038216620000fa565b6000620000fa826000620000fa82620001d7565b6200020881620001d7565b81146200021457600080fd5b50565b61583280620002276000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063614d08f8116100f95780638e52049c11610097578063c39def0b11610071578063c39def0b14610379578063d6f32e061461039a578063dc703e73146103ad578063f450aa34146103c0576101c4565b80638e52049c14610353578063a4bca13114610369578063c193f0d814610371576101c4565b80637dd1a57a116100d35780637dd1a57a1461031b578063892571171461032e578063899ffef4146103365780638da5cb5b1461034b576101c4565b8063614d08f814610303578063741853601461030b57806379ba509714610313576101c4565b80632af64bd3116101665780634c268fc8116101405780634c268fc8146102a75780634f8633d2146102ba57806353a47bb7146102db57806357af302c146102f0576101c4565b80632af64bd31461027757806333a768801461028c578063372a395a1461029f576101c4565b80631627540c116101a25780631627540c1461021a57806319d5c6651461022f5780631a5c6095146102515780631b16802c14610264576101c4565b806304f3bcec146101c9578063059c29ec146101e75780630ae81a5e14610207575b600080fd5b6101d16103d3565b6040516101de9190615368565b60405180910390f35b6101fa6101f536600461442e565b6103e2565b6040516101de919061528f565b6101fa61021536600461461e565b610482565b61022d61022836600461432e565b6104bf565b005b61024261023d36600461442e565b61051d565b6040516101de9392919061530e565b6101fa61025f36600461461e565b6105d0565b61024261027236600461442e565b61063c565b61027f61074f565b6040516101de9190615281565b6101fa61029a366004614468565b610867565b6101fa610981565b6101fa6102b5366004614504565b610990565b6102cd6102c836600461436a565b610ac1565b6040516101de92919061566b565b6102e3610ca8565b6040516101de9190615177565b61027f6102fe3660046145e2565b610cb7565b6101fa610d44565b61022d610d68565b61022d610ebe565b6101fa6103293660046145e2565b610f5a565b6101fa611061565b61033e61106b565b6040516101de919061524b565b6102e36110e0565b61035b6110ef565b6040516101de929190615686565b6101fa611111565b61027f61111b565b61038c61038736600461461e565b611125565b6040516101de929190615650565b61027f6103a836600461442e565b611168565b6102426103bb3660046146f7565b611205565b6102426103ce3660046146f7565b61126f565b6002546001600160a01b031681565b60006104796103ef6115ab565b6001600160a01b031663f1406dc885856040518363ffffffff1660e01b815260040161041c9291906151ae565b60206040518083038186803b15801561043457600080fd5b505afa158015610448573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061046c9190810190614600565b6104746115c6565b611672565b90505b92915050565b600061048c613f07565b61049633856116bd565b90506104a0613f07565b6104aa33856116bd565b90506104b6828261174b565b95945050505050565b6104c761178a565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610512908390615177565b60405180910390a150565b600080600073__$86f2d1a3963f1f43ffdf10b9905a8e53c1$__630a0ecd1b6105446117b6565b878761054e6115c6565b6040518563ffffffff1660e01b815260040161056d94939291906155ac565b60006040518083038186803b15801561058557600080fd5b505af4158015610599573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105c1919081019061477d565b50919790965090945092505050565b60006105da613f07565b6105e433856116bd565b90506105ee613f07565b6105f833856116bd565b9050600080610607848461184f565b9150915080156106325760405162461bcd60e51b81526004016106299061549f565b60405180910390fd5b5095945050505050565b600080600061064961189e565b6001600160a01b03166342a28e21856040518263ffffffff1660e01b8152600401610674919061528f565b60006040518083038186803b15801561068c57600080fd5b505afa1580156106a0573d6000803e3d6000fd5b5050505073__$86f2d1a3963f1f43ffdf10b9905a8e53c1$__6377cd29a56106c66117b6565b878760016106d26115c6565b6040518663ffffffff1660e01b81526004016106f2959493929190615567565b60606040518083038186803b15801561070a57600080fd5b505af415801561071e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610742919081019061473a565b9250925092509250925092565b6000606061075b61106b565b905060005b815181101561085d57600082828151811061077757fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906107c890859060040161528f565b60206040518083038186803b1580156107e057600080fd5b505afa1580156107f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610818919081019061434c565b6001600160a01b031614158061084357506000818152600360205260409020546001600160a01b0316155b156108545760009350505050610864565b50600101610760565b5060019150505b90565b6000806108726118b8565b9050336001600160a01b038216148061090857506040516316b2213f60e01b81526000906001600160a01b038316906316b2213f906108b5903390600401615185565b60206040518083038186803b1580156108cd57600080fd5b505afa1580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109059190810190614600565b14155b6109245760405162461bcd60e51b81526004016106299061546f565b60006109338a8a8a8a8a6118cf565b9093509050838310156109585760405162461bcd60e51b81526004016106299061545f565b6109628187611f6a565b84156109745761097485888584612001565b5050979650505050505050565b600061098b612072565b905090565b81600061099b6120da565b6001600160a01b03166332608039866040518263ffffffff1660e01b81526004016109c6919061528f565b60206040518083038186803b1580156109de57600080fd5b505afa1580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a16919081019061463d565b6001600160a01b03166370a08231876040518263ffffffff1660e01b8152600401610a419190615177565b60206040518083038186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a919190810190614600565b905080821115610a9f578091505b8215610ab857610ab5828463ffffffff6120ee16565b91505b50949350505050565b6000806000610ace6118b8565b9050336001600160a01b0382161480610b6457506040516316b2213f60e01b81526000906001600160a01b038316906316b2213f90610b11903390600401615185565b60206040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b619190810190614600565b14155b610b805760405162461bcd60e51b81526004016106299061546f565b60008c6001600160a01b03168c6001600160a01b031614610c3c57610ba3612113565b6001600160a01b031663faf431bb8e8e6040518363ffffffff1660e01b8152600401610bd0929190615193565b60206040518083038186803b158015610be857600080fd5b505afa158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c2091908101906145c4565b610c3c5760405162461bcd60e51b8152600401610629906153df565b610c44613f07565b610c4e8d8d6116bd565b9050610c58613f07565b610c628e8c6116bd565b9050610c728f838e848e8e612132565b9197509095509250610c848389611f6a565b8615610c9657610c96878c8886612001565b50505050995099975050505050505050565b6001546001600160a01b031681565b600080610cc26127b5565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401610ced919061528f565b604080518083038186803b158015610d0457600080fd5b505afa158015610d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d3c919081019061467a565b949350505050565b7f45786368616e67657257697468466565526563416c7465726e6174697665730081565b6060610d7261106b565b905060005b8151811015610eba576000828281518110610d8e57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610dd0919061516c565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610dfc9291906152ee565b60206040518083038186803b158015610e1457600080fd5b505afa158015610e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e4c919081019061434c565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610ea8908490849061529d565b60405180910390a15050600101610d77565b5050565b6001546001600160a01b03163314610ee85760405162461bcd60e51b8152600401610629906153cf565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610f2b926001600160a01b0391821692911690615193565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610f646127d0565b6001600160a01b031663ba03e93f610f7a6127b5565b6001600160a01b0316637103353e856040518263ffffffff1660e01b8152600401610fa5919061528f565b60206040518083038186803b158015610fbd57600080fd5b505afa158015610fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ff5919081019061434c565b6040518263ffffffff1660e01b81526004016110119190615177565b60206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061047c9190810190614600565b600061098b6115c6565b6060806110766127ec565b6040805160018082528183019092529192506060919060208083019080388339019050509050755669727475616c53796e74684d6173746572636f707960501b816000815181106110c357fe5b6020026020010181815250506110d982826129dd565b9250505090565b6000546001600160a01b031681565b60045467ffffffffffffffff811690600160401b90046001600160c01b031682565b600061098b612a99565b600061098b612b01565b600080611130613f07565b61113a33866116bd565b9050611144613f07565b61114e33866116bd565b905061115a8282612bb1565b9350935050505b9250929050565b600073__$86f2d1a3963f1f43ffdf10b9905a8e53c1$__638317e96b61118c6117b6565b85856111966115c6565b6040518563ffffffff1660e01b81526004016111b594939291906155ac565b60206040518083038186803b1580156111cd57600080fd5b505af41580156111e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061047991908101906145c4565b6000806000611212613f07565b61121c33876116bd565b9050611226613f07565b61123033876116bd565b905061123a613f07565b61124b33631cd554d160e21b6116bd565b905061125989848484612c26565b50939d929c50909a509098505050505050505050565b600080600061127c613f07565b61128633876116bd565b9050611290613f07565b61129a33876116bd565b9050631cd554d160e21b87148061133157506112b46127b5565b6001600160a01b0316632528f0fe886040518263ffffffff1660e01b81526004016112df919061528f565b60206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061132f91908101906145c4565b155b61134d5760405162461bcd60e51b8152600401610629906153af565b631cd554d160e21b8614806113e257506113656127b5565b6001600160a01b0316632528f0fe876040518263ffffffff1660e01b8152600401611390919061528f565b60206040518083038186803b1580156113a857600080fd5b505afa1580156113bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113e091908101906145c4565b155b6113fe5760405162461bcd60e51b8152600401610629906153ff565b61140661189e565b6001600160a01b03166342a28e21886040518263ffffffff1660e01b8152600401611431919061528f565b60006040518083038186803b15801561144957600080fd5b505afa15801561145d573d6000803e3d6000fd5b5050505061146961189e565b6001600160a01b03166342a28e21876040518263ffffffff1660e01b8152600401611494919061528f565b60006040518083038186803b1580156114ac57600080fd5b505afa1580156114c0573d6000803e3d6000fd5b5050505060006114d0838361184f565b909450905080156114f35760405162461bcd60e51b8152600401610629906154bf565b60006114fd6127b5565b6001600160a01b0316638295016a8a8c8b6040518463ffffffff1660e01b815260040161152c9392919061530e565b60606040518083038186803b15801561154457600080fd5b505afa158015611558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061157c919081019061473a565b5050905061158a8186612cfb565b965061159c818863ffffffff612d8d16565b95505050505093509350939050565b600061098b6c45786368616e6765537461746560981b612db5565b60006115d0612e12565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b81526004016116229291906152ab565b60206040518083038186803b15801561163a57600080fd5b505afa15801561164e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061098b9190810190614600565b6000821580611690575061168c838363ffffffff6120ee16565b4210155b1561169d5750600061047c565b610479426116b1858563ffffffff6120ee16565b9063ffffffff612d8d16565b6116c5613f07565b6116cd612e2f565b6001600160a01b031663697b659b84846040518363ffffffff1660e01b81526004016116fa9291906151ae565b6101a06040518083038186803b15801561171357600080fd5b505afa158015611727573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610479919081019061465b565b600080611769836060015185606001516120ee90919063ffffffff16565b905080610479576101008084015190850151610d3c9163ffffffff6120ee16565b6000546001600160a01b031633146117b45760405162461bcd60e51b81526004016106299061548f565b565b6117be613f84565b6040518060c001604052806117d16115ab565b6001600160a01b031681526020016117e76127b5565b6001600160a01b031681526020016117fd6127d0565b6001600160a01b03168152602001611813612e55565b6001600160a01b031681526020016118296120da565b6001600160a01b0316815260200161183f6118b8565b6001600160a01b03169052905090565b60008060006118718461010001518661010001516120ee90919063ffffffff16565b9050600061187f8686612bb1565b93509050611893828263ffffffff6120ee16565b935050509250929050565b600061098b6b53797374656d53746174757360a01b612db5565b600061098b680a6f2dce8d0cae8d2f60bb1b612db5565b6000806000806000806118e0613f07565b6118ea8c8c6116bd565b90506118f4613f07565b6118fe8d8b6116bd565b905061190b8c8b8d612e6c565b611922575060009650869550611f60945050505050565b61192a6127b5565b6001600160a01b031663fce132f9836040518263ffffffff1660e01b8152600401611955919061551f565b60206040518083038186803b15801561196d57600080fd5b505afa158015611981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119a591908101906145c4565b156119c25760405162461bcd60e51b8152600401610629906154ff565b6119ca6127b5565b6001600160a01b031663fce132f9826040518263ffffffff1660e01b81526004016119f5919061551f565b60206040518083038186803b158015611a0d57600080fd5b505afa158015611a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a4591908101906145c4565b15611a625760405162461bcd60e51b81526004016106299061547f565b611a6d8b8e8e61304e565b955085611a87575060009650869550611f60945050505050565b611a8f613f07565b611aa08e631cd554d160e21b6116bd565b90506000611ab088858585612c26565b949e50929c509099509097509095509050611ac96127d0565b6001600160a01b03166378cb51cb82611ae88d8d63ffffffff6120ee16565b6040518363ffffffff1660e01b8152600401611b059291906152ab565b60206040518083038186803b158015611b1d57600080fd5b505afa158015611b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b5591908101906145c4565b15611b725760405162461bcd60e51b81526004016106299061540f565b6000631cd554d160e21b8f1415611b8a575087611bcf565b631cd554d160e21b8d1415611ba0575080611bcf565b600080611baf8b888788612c26565b5050505091509150611bca81836120ee90919063ffffffff16565b925050505b611bd98582613118565b5050505050611bee8a8c868b8a8c60006131b6565b508415611e4b57611bfd6127b5565b6001600160a01b031663654a60ac8987631cd554d160e21b6040518463ffffffff1660e01b8152600401611c339392919061530e565b60206040518083038186803b158015611c4b57600080fd5b505afa158015611c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c839190810190614600565b9450611c8d6120da565b6001600160a01b03166332608039631cd554d160e21b6040518263ffffffff1660e01b8152600401611cbf919061528f565b60206040518083038186803b158015611cd757600080fd5b505afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d0f919081019061463d565b6001600160a01b031663867904b4611d2561347e565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5d57600080fd5b505afa158015611d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d95919081019061434c565b876040518363ffffffff1660e01b8152600401611db39291906151ae565b600060405180830381600087803b158015611dcd57600080fd5b505af1158015611de1573d6000803e3d6000fd5b50505050611ded61347e565b6001600160a01b03166322bf55ef866040518263ffffffff1660e01b8152600401611e18919061528f565b600060405180830381600087803b158015611e3257600080fd5b505af1158015611e46573d6000803e3d6000fd5b505050505b611e7d60405180604001604052808c81526020018a815250604051806040016040528085815260200184815250613493565b611e856118b8565b6001600160a01b0316636c00f3108c8c878c8b8d6040518763ffffffff1660e01b8152600401611eba969594939291906151f1565b600060405180830381600087803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b50505050611ef46118b8565b6001600160a01b0316632f7206ce8c8c878c8b8d6040518763ffffffff1660e01b8152600401611f29969594939291906151f1565b600060405180830381600087803b158015611f4357600080fd5b505af1158015611f57573d6000803e3d6000fd5b50505050505050505b9550959350505050565b600082118015611f8257506001600160a01b03811615155b8015611f915750611f91612b01565b15610eba57611f9e6136d9565b6001600160a01b03166321cad77483836040518363ffffffff1660e01b8152600401611fcb92919061529d565b600060405180830381600087803b158015611fe557600080fd5b505af1158015611ff9573d6000803e3d6000fd5b505050505050565b6120096118b8565b6001600160a01b0316632d3169eb858585856040518563ffffffff1660e01b815260040161203a94939291906152b9565b600060405180830381600087803b15801561205457600080fd5b505af1158015612068573d6000803e3d6000fd5b5050505050505050565b600061207c612e12565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b81526004016116229291906152ab565b600061098b6524b9b9bab2b960d11b612db5565b6000828201838110156104795760405162461bcd60e51b8152600401610629906153ef565b600061098b7044656c6567617465417070726f76616c7360781b612db5565b600080600061214a8860000151876000015189612e6c565b61215c575060009150819050806127a9565b612164613fb9565b61216c613f84565b6121746117b6565b60208101518b51604051633d00c50f60e11b81529293506001600160a01b0390911691637a018a1e916121a99160040161528f565b60206040518083038186803b1580156121c157600080fd5b505afa1580156121d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121f99190810190614600565b60a083015260208101518851604051633d00c50f60e11b81526001600160a01b0390921691637a018a1e916122309160040161528f565b60206040518083038186803b15801561224857600080fd5b505afa15801561225c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122809190810190614600565b60c08301528951612294908a908d9061304e565b60e083018190526122b15750600093508392508291506127a99050565b60208101518a5160e08401518a5160a086015160c087015160405162d9ccd960e71b81526001600160a01b0390961695636ce66c80956122fb95909490939092909160040161531c565b60606040518083038186803b15801561231357600080fd5b505afa158015612327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061234b919081019061473a565b6020850152835260408301528951885160a084015160c0850151612371939291906136f5565b60006123878b8a8560a001518660c00151613861565b6060850191909152905080156123aa5750600094508493508392506127a9915050565b6123bc83604001518460600151612cfb565b60408401519096506123d4908763ffffffff612d8d16565b94506123f18b600001518d8560e001518c600001518a8d8d6131b6565b93506001600160a01b03841615612406578397505b84156126615760208201518951604051631952982b60e21b81526001600160a01b039092169163654a60ac91612449918990631cd554d160e21b9060040161530e565b60206040518083038186803b15801561246157600080fd5b505afa158015612475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124999190810190614600565b94506124a36120da565b6001600160a01b03166332608039631cd554d160e21b6040518263ffffffff1660e01b81526004016124d5919061528f565b60206040518083038186803b1580156124ed57600080fd5b505afa158015612501573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612525919081019061463d565b6001600160a01b031663867904b461253b61347e565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561257357600080fd5b505afa158015612587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125ab919081019061434c565b876040518363ffffffff1660e01b81526004016125c99291906151ae565b600060405180830381600087803b1580156125e357600080fd5b505af11580156125f7573d6000803e3d6000fd5b5050505061260361347e565b6001600160a01b03166322bf55ef866040518263ffffffff1660e01b815260040161262e919061528f565b600060405180830381600087803b15801561264857600080fd5b505af115801561265c573d6000803e3d6000fd5b505050505b6040805180820182528c5181528a51602080830191909152825180840190935285518352858101519083015261269691613493565b61269e6118b8565b6001600160a01b0316636c00f3108d8d600001518660e001518d600001518b8e6040518763ffffffff1660e01b81526004016126df969594939291906151f1565b600060405180830381600087803b1580156126f957600080fd5b505af115801561270d573d6000803e3d6000fd5b50505050600061271b6115c6565b11156127a55773__$86f2d1a3963f1f43ffdf10b9905a8e53c1$__632f2de902838a8e600001518760e001518e600001518c8a606001516040518863ffffffff1660e01b815260040161277497969594939291906155e3565b60006040518083038186803b15801561278c57600080fd5b505af41580156127a0573d6000803e3d6000fd5b505050505b5050505b96509650969350505050565b600061098b6c45786368616e6765526174657360981b612db5565b600061098b6d21b4b931bab4ba213932b0b5b2b960911b612db5565b6060806127f76138b4565b60408051600b80825261018082019092529192506060919060208201610160803883390190505090506b53797374656d53746174757360a01b8160008151811061283d57fe5b6020026020010181815250506c45786368616e6765537461746560981b8160018151811061286757fe5b6020026020010181815250506c45786368616e6765526174657360981b8160028151811061289157fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b816003815181106128b757fe5b60200260200101818152505066119959541bdbdb60ca1b816004815181106128db57fe5b6020026020010181815250506d54726164696e675265776172647360901b8160058151811061290657fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b8160068151811061293457fe5b6020026020010181815250506524b9b9bab2b960d11b8160078151811061295757fe5b6020026020010181815250506844656274436163686560b81b8160088151811061297d57fe5b6020026020010181815250506d21b4b931bab4ba213932b0b5b2b960911b816009815181106129a857fe5b602002602001018181525050772234b932b1ba24b73a32b3b930ba34b7b726b0b730b3b2b960411b81600a815181106110c357fe5b60608151835101604051908082528060200260200182016040528015612a0d578160200160208202803883390190505b50905060005b8351811015612a4f57838181518110612a2857fe5b6020026020010151828281518110612a3c57fe5b6020908102919091010152600101612a13565b5060005b8251811015612a9257828181518110612a6857fe5b6020026020010151828286510181518110612a7f57fe5b6020908102919091010152600101612a53565b5092915050565b6000612aa3612e12565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d69634d6178566f6c756d65506572426c6f636b0000000000000000006040518363ffffffff1660e01b81526004016116229291906152ab565b6000612b0b612e12565b6001600160a01b031663d994502d6d53797374656d53657474696e677360901b741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401612b619291906152ab565b60206040518083038186803b158015612b7957600080fd5b505afa158015612b8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061098b91908101906145c4565b600080600080612bc085613905565b91509150600080612bd088613905565b9092509050612be5848363ffffffff6120ee16565b610120890151909650861180612bfb5786612c02565b8861012001515b9650868180612c0e5750845b80612c165750825b9650965050505050509250929050565b6000806000806000806000612c396127b5565b6001600160a01b03166326bd30fa8b8d8c8c6040518563ffffffff1660e01b8152600401612c6a949392919061552e565b60806040518083038186803b158015612c8257600080fd5b505afa158015612c96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612cba91908101906147ea565b919650945092509050612ccd8a8a61174b565b9450612cd98186612cfb565b9650612ceb818863ffffffff612d8d16565b9550509499939850945094509450565b6000610479612d808373__$6cb7b9807fd48ae83b08c44b530df1d1ee$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612d4857600080fd5b505af4158015612d5c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116b19190810190614600565b849063ffffffff6139d616565b600082821115612daf5760405162461bcd60e51b81526004016106299061542f565b50900390565b60008181526003602090815260408083205490516001600160a01b039091169182151591612de59186910161514c565b60405160208183030381529060405290612a925760405162461bcd60e51b8152600401610629919061539e565b600061098b6e466c657869626c6553746f7261676560881b612db5565b600061098b772234b932b1ba24b73a32b3b930ba34b7b726b0b730b3b2b960411b612db5565b600061098b6844656274436163686560b81b612db5565b600082841415612e8e5760405162461bcd60e51b8152600401610629906153bf565b60008211612eae5760405162461bcd60e51b81526004016106299061541f565b600080631cd554d160e21b861415612ec95760008080612f4e565b612ed16127b5565b6001600160a01b031663045056f8876040518263ffffffff1660e01b8152600401612efc919061528f565b606060405180830381600087803b158015612f1657600080fd5b505af1158015612f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f4e91908101906146aa565b9250925050600080631cd554d160e21b871415612f6e5760008080612ff3565b612f766127b5565b6001600160a01b031663045056f8886040518263ffffffff1660e01b8152600401612fa1919061528f565b606060405180830381600087803b158015612fbb57600080fd5b505af1158015612fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ff391908101906146aa565b925092505082156130165760405162461bcd60e51b8152600401610629906154df565b80156130345760405162461bcd60e51b81526004016106299061544f565b83158015613040575081155b9450505050505b9392505050565b600080600073__$86f2d1a3963f1f43ffdf10b9905a8e53c1$__6377cd29a56130756117b6565b878760006130816115c6565b6040518663ffffffff1660e01b81526004016130a1959493929190615567565b60606040518083038186803b1580156130b957600080fd5b505af41580156130cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130f1919081019061473a565b889550909350915050801561310f5761310c85858885610990565b92505b50509392505050565b60045460009067ffffffffffffffff1642146131345781613151565b60045461315190600160401b90046001600160c01b0316836120ee565b90508260a001518111156131775760405162461bcd60e51b81526004016106299061550f565b600480546001600160c01b03909216600160401b0267ffffffffffffffff42811667ffffffffffffffff19909416939093179092169190911790555050565b60006131c06120da565b6001600160a01b03166332608039896040518263ffffffff1660e01b81526004016131eb919061528f565b60206040518083038186803b15801561320357600080fd5b505afa158015613217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061323b919081019061463d565b6001600160a01b0316639dc29fac88886040518363ffffffff1660e01b81526004016132689291906151ae565b600060405180830381600087803b15801561328257600080fd5b505af1158015613296573d6000803e3d6000fd5b5050505060006132a46120da565b6001600160a01b03166332608039876040518263ffffffff1660e01b81526004016132cf919061528f565b60206040518083038186803b1580156132e757600080fd5b505afa1580156132fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061331f919081019061463d565b905082156134115760008190506133a8816001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b15801561336857600080fd5b505afa15801561337c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133a0919081019061463d565b86888a613a00565b60405163219e412d60e21b81529093506001600160a01b0383169063867904b4906133d99086908a906004016151ae565b600060405180830381600087803b1580156133f357600080fd5b505af1158015613407573d6000803e3d6000fd5b5050505050613472565b60405163219e412d60e21b81526001600160a01b0382169063867904b49061343f90879089906004016151ae565b600060405180830381600087803b15801561345957600080fd5b505af115801561346d573d6000803e3d6000fd5b505050505b50979650505050505050565b600061098b66119959541bdbdb60ca1b612db5565b8151600090631cd554d160e21b14806134b657506020830151631cd554d160e21b145b90506000816134c65760036134c9565b60025b60ff1690506060816040519080825280602002602001820160405280156134fa578160200160208202803883390190505b50905084600060200201518160008151811061351257fe5b602090810291909101015284600160200201518160018151811061353257fe5b60200260200101818152505060608260405190808252806020026020018201604052801561356a578160200160208202803883390190505b50905084600060200201518160008151811061358257fe5b60209081029190910101528460016020020151816001815181106135a257fe5b6020026020010181815250508361366a57631cd554d160e21b826002815181106135c857fe5b60200260200101818152505073__$6cb7b9807fd48ae83b08c44b530df1d1ee$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561361857600080fd5b505af415801561362c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136509190810190614600565b8160028151811061365d57fe5b6020026020010181815250505b613672612e55565b6001600160a01b03166317b38db483836040518363ffffffff1660e01b815260040161369f92919061525c565b600060405180830381600087803b1580156136b957600080fd5b505af11580156136cd573d6000803e3d6000fd5b50505050505050505050565b600061098b6d54726164696e675265776172647360901b612db5565b828414156137155760405162461bcd60e51b8152600401610629906153bf565b6040805160028082526060808301845292602083019080388339019050509050848160008151811061374357fe5b602002602001018181525050838160018151811061375d57fe5b60209081029190910101526040805160028082526060828101909352816020016020820280388339019050509050838160008151811061379957fe5b60200260200101818152505082816001815181106137b357fe5b6020026020010181815250506137c76127b5565b6001600160a01b031663d89ee86183836040518363ffffffff1660e01b81526004016137f492919061525c565b60206040518083038186803b15801561380c57600080fd5b505afa158015613820573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061384491908101906145c4565b15611ff95760405162461bcd60e51b8152600401610629906154ef565b60008060006138838661010001518861010001516120ee90919063ffffffff16565b9050600061389388888888613b43565b935090506138a7828263ffffffff6120ee16565b9350505094509492505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106138f657fe5b60200260200101818152505090565b600080631cd554d160e21b836000015114806139275750600183610140015111155b15613937575060009050806139d1565b60006139416127b5565b8451604051633d00c50f60e11b81526001600160a01b039290921691637a018a1e9161396f9160040161528f565b60206040518083038186803b15801561398757600080fd5b505afa15801561399b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139bf9190810190614600565b90506139cb8482613bbc565b92509250505b915091565b6000670de0b6b3a76400006139f1848463ffffffff613cc616565b816139f857fe5b049392505050565b6000606960f81b6001600160f81b031983831a60f81b161415613a355760405162461bcd60e51b8152600401610629906154cf565b6000613a7d613a42613d00565b6040518060400160405280601b81526020017f436f756c64206e6f7420637265617465206e6577207653796e74680000000000815250613d24565b600254604051638d7017d360e01b81529192506001600160a01b0380841692638d7017d392613ab9928b929116908a908a908a90600401615376565b600060405180830381600087803b158015613ad357600080fd5b505af1158015613ae7573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167fb5ec76d79549c775883022e4426db5cd36bd5307f216cdb341554c301548ef9f838688604051613b32939291906151c9565b60405180910390a395945050505050565b600080600080613b538786613bbc565b91509150600080613b648a89613bbc565b9092509050613b79848363ffffffff6120ee16565b6101208b0151909650861180613b8f5786613b96565b8a61012001515b9650868180613ba25750845b80613baa5750825b96509650505050505094509492505050565b600080631cd554d160e21b84600001511480613bde5750600184610140015111155b15613bee57506000905080611161565b6060613bf86127b5565b8551610140870151604051630ed7624560e41b81526001600160a01b03939093169263ed76245092613c30929091899060040161530e565b60006040518083038186803b158015613c4857600080fd5b505afa158015613c5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c849190810190614565565b5080915050613c9e81866101600151876101800151613d6e565b610120860151909350831180613cb45783613cbb565b8561012001515b969095509350505050565b600082613cd55750600061047c565b82820282848281613ce257fe5b04146104795760405162461bcd60e51b8152600401610629906154af565b600061098b755669727475616c53796e74684d6173746572636f707960501b612db5565b60006060613d3184613df8565b90506037602082016000f09150826001600160a01b038316613d665760405162461bcd60e51b8152600401610629919061539e565b505092915050565b6000835160001415613d8257506000613047565b8351600090600019015b8015610ab857613da2828563ffffffff6139d616565b91506000613dda876001840381518110613db857fe5b6020026020010151888481518110613dcc57fe5b602002602001015188613e54565b9050613dec838263ffffffff6120ee16565b92505060001901613d8c565b604051606090613e3e90693d602d80600a3d3981f360b01b9069363d3d373d3d3d363d7360b01b9085906e5af43d82803e903d91602b57fd5bf360881b90602001615104565b6040516020818303038152906040529050919050565b600082613e6357506000613047565b6000838511613e7457848403613e78565b8385035b90506000613e8c828663ffffffff613ea816565b9050838111613e9c57600061310c565b92909203949350505050565b600061047982613ec685670de0b6b3a764000063ffffffff613cc616565b9063ffffffff613ed216565b6000808211613ef35760405162461bcd60e51b81526004016106299061543f565b6000828481613efe57fe5b04949350505050565b604051806101a001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b803561047c816157bd565b805161047c816157bd565b600082601f83011261402557600080fd5b8151614038614033826156c8565b6156a1565b915081818352602084019350602081019050838561010084028201111561405e57600080fd5b60005b8381101561408d5781614074888261413e565b8452506020909201916101009190910190600101614061565b5050505092915050565b600082601f8301126140a857600080fd5b81516140b6614033826156c8565b915081818352602084019350602081019050838560208402820111156140db57600080fd5b60005b8381101561408d57816140f18882614128565b84525060209283019291909101906001016140de565b803561047c816157d4565b805161047c816157d4565b803561047c816157dd565b805161047c816157dd565b805161047c816157e6565b6000610100828403121561415157600080fd5b61415c6101006156a1565b9050600061416a8484614128565b825250602061417b84848301614128565b602083015250604061418f84828501614128565b60408301525060606141a384828501614128565b60608301525060806141b784828501614128565b60808301525060a06141cb84828501614128565b60a08301525060c06141df84828501614128565b60c08301525060e06141f384828501614128565b60e08301525092915050565b60006101a0828403121561421257600080fd5b61421d6101a06156a1565b9050600061422b8484614128565b825250602061423c84848301614009565b602083015250604061425084828501614009565b604083015250606061426484828501614128565b606083015250608061427884828501614128565b60808301525060a061428c84828501614128565b60a08301525060c06142a084828501614128565b60c08301525060e06142b484828501614128565b60e0830152506101006142c984828501614128565b610100830152506101206142df84828501614128565b610120830152506101406142f584828501614128565b6101408301525061016061430b84828501614128565b6101608301525061018061432184828501614128565b6101808301525092915050565b60006020828403121561434057600080fd5b6000610d3c8484613ffe565b60006020828403121561435e57600080fd5b6000610d3c8484614009565b60008060008060008060008060006101208a8c03121561438957600080fd5b60006143958c8c613ffe565b99505060206143a68c828d01613ffe565b98505060406143b78c828d0161411d565b97505060606143c88c828d0161411d565b96505060806143d98c828d0161411d565b95505060a06143ea8c828d01613ffe565b94505060c06143fb8c828d01614107565b93505060e061440c8c828d01613ffe565b92505061010061441e8c828d0161411d565b9150509295985092959850929598565b6000806040838503121561444157600080fd5b600061444d8585613ffe565b925050602061445e8582860161411d565b9150509250929050565b600080600080600080600060e0888a03121561448357600080fd5b600061448f8a8a613ffe565b97505060206144a08a828b0161411d565b96505060406144b18a828b0161411d565b95505060606144c28a828b0161411d565b94505060806144d38a828b01613ffe565b93505060a06144e48a828b0161411d565b92505060c06144f58a828b0161411d565b91505092959891949750929550565b6000806000806080858703121561451a57600080fd5b60006145268787613ffe565b94505060206145378782880161411d565b93505060406145488782880161411d565b92505060606145598782880161411d565b91505092959194509250565b6000806040838503121561457857600080fd5b825167ffffffffffffffff81111561458f57600080fd5b61459b85828601614097565b925050602083015167ffffffffffffffff8111156145b857600080fd5b61445e85828601614097565b6000602082840312156145d657600080fd5b6000610d3c8484614112565b6000602082840312156145f457600080fd5b6000610d3c848461411d565b60006020828403121561461257600080fd5b6000610d3c8484614128565b6000806040838503121561463157600080fd5b600061444d858561411d565b60006020828403121561464f57600080fd5b6000610d3c8484614133565b60006101a0828403121561466e57600080fd5b6000610d3c84846141ff565b6000806040838503121561468d57600080fd5b60006146998585614128565b925050602061445e85828601614112565b6000806000606084860312156146bf57600080fd5b60006146cb8686614128565b93505060206146dc86828701614112565b92505060406146ed86828701614112565b9150509250925092565b60008060006060848603121561470c57600080fd5b6000614718868661411d565b93505060206147298682870161411d565b92505060406146ed8682870161411d565b60008060006060848603121561474f57600080fd5b600061475b8686614128565b935050602061476c86828701614128565b92505060406146ed86828701614128565b6000806000806080858703121561479357600080fd5b600061479f8787614128565b94505060206147b087828801614128565b93505060406147c187828801614128565b925050606085015167ffffffffffffffff8111156147de57600080fd5b61455987828801614014565b6000806000806080858703121561480057600080fd5b600061480c8787614128565b945050602061481d87828801614128565b935050604061482e87828801614128565b925050606061455987828801614128565b600061484b8383614949565b505060200190565b61485c81615765565b82525050565b61485c81615701565b61485c61487782615701565b61579c565b6000614887826156ef565b61489181856156f3565b935061489c836156e9565b8060005b838110156148ca5781516148b4888261483f565b97506148bf836156e9565b9250506001016148a0565b509495945050505050565b60006148e0826156ef565b6148ea81856156f3565b93506148f5836156e9565b8060005b838110156148ca57815161490d888261483f565b9750614918836156e9565b9250506001016148f9565b61485c8161570c565b61485c61493882615711565b610864565b61485c6149388261571e565b61485c81610864565b61485c61493882610864565b61485c81615735565b6000614972826156ef565b61497c81856156f3565b935061498c818560208601615770565b614995816157ad565b9093019392505050565b60006149ac6016836156f3565b751cdc98c81cde5b9d1a081c985d19481a5b9d985b1a5960521b815260200192915050565b60006149de6013836156f3565b72086c2dc4ee840c4ca40e6c2daca40e6f2dce8d606b1b815260200192915050565b6000614a0d6035836156f3565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000614a64601d836156f3565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b6000614a9d601b836156f3565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614ad66017836156f3565b7f646573742073796e7468207261746520696e76616c6964000000000000000000815260200192915050565b6000614b0f601d836156f3565b7f41746f6d6963207261746520646576696174657320746f6f206d756368000000815260200192915050565b6000614b48600b836156f3565b6a16995c9bc8185b5bdd5b9d60aa1b815260200192915050565b6000614b6f601e836156f3565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000614ba8601a836156f3565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000614be16011836156fc565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000614c0e601a836156f3565b7f646573742072617465207374616c65206f7220666c6167676564000000000000815260200192915050565b6000614c47603a836156f3565b7f54686520616d6f756e742072656365697665642069732062656c6f772074686581527f206d696e696d756d20616d6f756e74207370656369666965642e000000000000602082015260400192915050565b6000614ca66045836156f3565b7f45786368616e6765723a204f6e6c792073796e746865746978206f722061207381527f796e746820636f6e74726163742063616e20706572666f726d2074686973206160208201526431ba34b7b760d91b604082015260600192915050565b6000614d136017836156f3565b7f446573742073796e746820746f6f20766f6c6174696c65000000000000000000815260200192915050565b6000614d4c602f836156f3565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000614d9d600c836156f3565b6b746f6f20766f6c6174696c6560a01b815260200192915050565b6000614dc56021836156f3565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000614e08601b836156f3565b7f65786368616e676520726174657320746f6f20766f6c6174696c650000000000815260200192915050565b6000614e41601c836156f3565b7f43616e6e6f74207669727475616c697a6520746869732073796e746800000000815260200192915050565b6000614e7a6019836156fc565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000614eb36019836156f3565b7f7372632072617465207374616c65206f7220666c616767656400000000000000815260200192915050565b6000614eec601e836156f3565b7f7372632f646573742072617465207374616c65206f7220666c61676765640000815260200192915050565b6000614f256016836156f3565b755372632073796e746820746f6f20766f6c6174696c6560501b815260200192915050565b6000614f576016836156f3565b7514dd5c9c185cdcd959081d9bdb1d5b59481b1a5b5a5d60521b815260200192915050565b80516101a0830190614f8e8482614949565b506020820151614fa16020850182614862565b506040820151614fb46040850182614862565b506060820151614fc76060850182614949565b506080820151614fda6080850182614949565b5060a0820151614fed60a0850182614949565b5060c082015161500060c0850182614949565b5060e082015161501360e0850182614949565b50610100820151615028610100850182614949565b5061012082015161503d610120850182614949565b50610140820151615052610140850182614949565b50610160820151615067610160850182614949565b5061018082015161507c610180850182614949565b50505050565b805160c0830190615093848261495e565b5060208201516150a6602085018261495e565b5060408201516150b9604085018261495e565b5060608201516150cc606085018261495e565b5060808201516150df608085018261495e565b5060a082015161507c60a085018261495e565b61485c8161574c565b61485c81615758565b6000615110828761492c565b600a82019150615120828661492c565b600a82019150615130828561486b565b601482019150615140828461493d565b50600f01949350505050565b600061515782614bd4565b91506151638284614952565b50602001919050565b600061515782614e6d565b6020810161047c8284614862565b6020810161047c8284614853565b604081016151a18285614862565b6130476020830184614862565b604081016151bc8285614862565b6130476020830184614949565b606081016151d78286614862565b6151e46020830185614949565b610d3c6040830184614949565b60c081016151ff8289614862565b61520c6020830188614949565b6152196040830187614949565b6152266060830186614949565b6152336080830185614949565b61524060a0830184614862565b979650505050505050565b60208082528101610479818461487c565b6040808252810161526d818561487c565b90508181036020830152610d3c81846148d5565b6020810161047c8284614923565b6020810161047c8284614949565b604081016151a18285614949565b604081016151bc8285614949565b608081016152c78287614949565b6152d46020830186614949565b6152e16040830185614949565b6104b66060830184614949565b604081016152fc8285614949565b8181036020830152610d3c8184614967565b606081016151d78286614949565b60a0810161532a8288614949565b6153376020830187614949565b6153446040830186614949565b6153516060830185614949565b61535e6080830184614949565b9695505050505050565b6020810161047c828461495e565b60a08101615384828861495e565b615391602083018761495e565b6153446040830186614862565b602080825281016104798184614967565b6020808252810161047c8161499f565b6020808252810161047c816149d1565b6020808252810161047c81614a00565b6020808252810161047c81614a57565b6020808252810161047c81614a90565b6020808252810161047c81614ac9565b6020808252810161047c81614b02565b6020808252810161047c81614b3b565b6020808252810161047c81614b62565b6020808252810161047c81614b9b565b6020808252810161047c81614c01565b6020808252810161047c81614c3a565b6020808252810161047c81614c99565b6020808252810161047c81614d06565b6020808252810161047c81614d3f565b6020808252810161047c81614d90565b6020808252810161047c81614db8565b6020808252810161047c81614dfb565b6020808252810161047c81614e34565b6020808252810161047c81614ea6565b6020808252810161047c81614edf565b6020808252810161047c81614f18565b6020808252810161047c81614f4a565b6101a0810161047c8284614f7c565b610500810161553d8287614f7c565b61554b6101a0830186614949565b6155596101c0830185614f7c565b6104b6610360830184614f7c565b61014081016155768288615082565b61558360c0830187614862565b61559060e0830186614949565b61559e610100830185614923565b61535e610120830184614949565b61012081016155bb8287615082565b6155c860c0830186614862565b6155d560e0830185614949565b6104b6610100830184614949565b61018081016155f2828a615082565b6155ff60c0830189614862565b61560c60e0830188614949565b61561a610100830187614949565b615628610120830186614949565b615636610140830185614949565b615644610160830184614949565b98975050505050505050565b6040810161565e8285614949565b6130476020830184614923565b604081016156798285614949565b613047602083018461495e565b6040810161569482856150fb565b61304760208301846150f2565b60405181810167ffffffffffffffff811182821017156156c057600080fd5b604052919050565b600067ffffffffffffffff8211156156df57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b600061047c82615740565b151590565b6001600160b01b03191690565b70ffffffffffffffffffffffffffffffffff191690565b600061047c82615701565b6001600160a01b031690565b6001600160c01b031690565b67ffffffffffffffff1690565b600061047c82615735565b60005b8381101561578b578181015183820152602001615773565b8381111561507c5750506000910152565b600061047c82600061047c826157b7565b601f01601f191690565b60601b90565b6157c681615701565b81146157d157600080fd5b50565b6157c68161570c565b6157c681610864565b6157c68161573556fea365627a7a7231582003c8cb981261055873336d907de298c4ee9168f742d8553a71fb33a6fab055986c6578706572696d656e74616cf564736f6c63430005100040",
			"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"
						},
						{
							"internalType": "uint256",
							"name": "minAmount",
							"type": "uint256"
						}
					],
					"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": 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": "0x8cac7397483711e081b12b125957ed08807d713ef166bf7dff9054a6a21f17de",
				"urls": [
					"bzz-raw://0b2083c4b31ca24bf3bdeed9ff21ef618161df3193101982739cb1334d9816ba",
					"dweb:/ipfs/QmdhZMSxK9Lj3RnuNJvj6auV3dZUTgWfbqfsMHpCfJNzw5"
				]
			},
			"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": "0x8cac7397483711e081b12b125957ed08807d713ef166bf7dff9054a6a21f17de",
						"urls": [
							"bzz-raw://0b2083c4b31ca24bf3bdeed9ff21ef618161df3193101982739cb1334d9816ba",
							"dweb:/ipfs/QmdhZMSxK9Lj3RnuNJvj6auV3dZUTgWfbqfsMHpCfJNzw5"
						]
					}
				},
				"version": 1
			}
		},
		"CircuitBreaker": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200179f3803806200179f8339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b61157c80620002236000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374185360116100975780638da5cb5b116100665780638da5cb5b146101dd578063ba03e93f146101e5578063cfefbc7f146101f8578063ec5f638e1461020b57610100565b806374185360146101a557806378cb51cb146101ad57806379ba5097146101c0578063899ffef4146101c857610100565b8063372a395a116100d3578063372a395a14610160578063413caeb51461017557806353a47bb714610188578063614d08f81461019d57610100565b806304f3bcec146101055780631627540c1461012357806318b844ad146101385780632af64bd314610158575b600080fd5b61010d61021e565b60405161011a9190611418565b60405180910390f35b610136610131366004610f15565b61022d565b005b61014b610146366004610f59565b61028b565b60405161011a91906113b3565b61014b6102c9565b6101686103e1565b60405161011a91906113c1565b61014b610183366004610f59565b6103f0565b6101906105ea565b60405161011a9190611372565b6101686105f9565b61013661060e565b61014b6101bb36600461103f565b610764565b610136610770565b6101d061080c565b60405161011a91906113a2565b6101906108c4565b6101686101f3366004610f15565b6108d3565b610136610206366004610f93565b6108ee565b61014b610219366004610f15565b610abf565b6002546001600160a01b031681565b610235610add565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610280908390611372565b60405180910390a150565b6001600160a01b03821660009081526005602052604081205460ff16806102b757506102b78383610b09565b806102c0575081155b90505b92915050565b600060606102d561080c565b905060005b81518110156103d75760008282815181106102f157fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906103429085906004016113c1565b60206040518083038186803b15801561035a57600080fd5b505afa15801561036e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103929190810190610f3b565b6001600160a01b03161415806103bd57506000818152600360205260409020546001600160a01b0316155b156103ce57600093505050506103de565b506001016102da565b5060019150505b90565b60006103eb610b44565b905090565b60006104046524b9b9bab2b960d11b610bfc565b6001600160a01b0316336001600160a01b0316148061044c57506104376c45786368616e6765526174657360981b610bfc565b6001600160a01b0316336001600160a01b0316145b6104715760405162461bcd60e51b815260040161046890611487565b60405180910390fd5b6001600160a01b0383166104975760405162461bcd60e51b815260040161046890611457565b8115806104a957506104a98383610b09565b80156104ce57506001600160a01b03831660009081526005602052604090205460ff16155b801561054f57506104dd610c60565b6001600160a01b031663c0eee4436040518163ffffffff1660e01b815260040160206040518083038186803b15801561051557600080fd5b505afa158015610529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061054d9190810190611003565b155b156105bc576001600160a01b0383166000818152600560209081526040808320805460ff191660011790556004909152908190205490517f67bad4b353dfb692ff5355991cbbb32b44e8b68fe393f9116791efc111beefe7916105b39186906113dd565b60405180910390a25b506001600160a01b039190911660009081526004602090815260408083209390935560059052205460ff1690565b6001546001600160a01b031681565b6d21b4b931bab4ba213932b0b5b2b960911b81565b606061061861080c565b905060005b815181101561076057600082828151811061063457fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016106769190611367565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016106a29291906113f8565b60206040518083038186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106f29190810190610f3b565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061074e90849084906113cf565b60405180910390a1505060010161061d565b5050565b60006102c08383610c7a565b6001546001600160a01b0316331461079a5760405162461bcd60e51b815260040161046890611437565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926107dd926001600160a01b0391821692911690611380565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610817610cd9565b60408051600380825260808201909252919250606091906020820183803883390190505090506b53797374656d53746174757360a01b8160008151811061085a57fe5b6020026020010181815250506524b9b9bab2b960d11b8160018151811061087d57fe5b6020026020010181815250506c45786368616e6765526174657360981b816002815181106108a757fe5b6020026020010181815250506108bd8282610d2a565b9250505090565b6000546001600160a01b031681565b6001600160a01b031660009081526004602052604090205490565b6108f6610add565b60005b83811015610ab857600085858381811061090f57fe5b90506020020160206109249190810190610f15565b6001600160a01b0316141561094b5760405162461bcd60e51b815260040161046890611457565b84848281811061095757fe5b905060200201602061096c9190810190610f15565b6001600160a01b03167f915f74751eb02d50f865435828021de99701d7eca4ccd06a308d5dc01ab70ace600460008888868181106109a657fe5b90506020020160206109bb9190810190610f15565b6001600160a01b03166001600160a01b03168152602001908152602001600020548585858181106109e857fe5b905060200201356040516109fd9291906113dd565b60405180910390a2828282818110610a1157fe5b9050602002013560046000878785818110610a2857fe5b9050602002016020610a3d9190810190610f15565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060056000878785818110610a7357fe5b9050602002016020610a889190810190610f15565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556001016108f9565b5050505050565b6001600160a01b031660009081526005602052604090205460ff1690565b6000546001600160a01b03163314610b075760405162461bcd60e51b815260040161046890611467565b565b6001600160a01b0382166000908152600460205260408120548015610b3a57610b328184610c7a565b9150506102c3565b5060009392505050565b6000610b4e610ddf565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401610bac9291906113dd565b60206040518083038186803b158015610bc457600080fd5b505afa158015610bd8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103eb9190810190611021565b60008181526003602090815260408083205490516001600160a01b039091169182151591610c2c91869101611347565b60405160208183030381529060405290610c595760405162461bcd60e51b81526004016104689190611426565b5092915050565b60006103eb6b53797374656d53746174757360a01b610bfc565b6000821580610c87575081155b15610c94575060016102c3565b600083831115610cb557610cae838563ffffffff610dfc16565b9050610cc8565b610cc5848463ffffffff610dfc16565b90505b610cd0610b44565b11159392505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110610d1b57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610d5a578160200160208202803883390190505b50905060005b8351811015610d9c57838181518110610d7557fe5b6020026020010151828281518110610d8957fe5b6020908102919091010152600101610d60565b5060005b8251811015610c5957828181518110610db557fe5b6020026020010151828286510181518110610dcc57fe5b6020908102919091010152600101610da0565b60006103eb6e466c657869626c6553746f7261676560881b610bfc565b60006102c082610e1a85670de0b6b3a764000063ffffffff610e2616565b9063ffffffff610e6016565b600082610e35575060006102c3565b82820282848281610e4257fe5b04146102c05760405162461bcd60e51b815260040161046890611477565b6000808211610e815760405162461bcd60e51b815260040161046890611447565b6000828481610e8c57fe5b04949350505050565b80356102c381611510565b80516102c381611510565b60008083601f840112610ebd57600080fd5b50813567ffffffffffffffff811115610ed557600080fd5b602083019150836020820283011115610eed57600080fd5b9250929050565b80516102c381611527565b80356102c381611530565b80516102c381611530565b600060208284031215610f2757600080fd5b6000610f338484610e95565b949350505050565b600060208284031215610f4d57600080fd5b6000610f338484610ea0565b60008060408385031215610f6c57600080fd5b6000610f788585610e95565b9250506020610f8985828601610eff565b9150509250929050565b60008060008060408587031215610fa957600080fd5b843567ffffffffffffffff811115610fc057600080fd5b610fcc87828801610eab565b9450945050602085013567ffffffffffffffff811115610feb57600080fd5b610ff787828801610eab565b95989497509550505050565b60006020828403121561101557600080fd5b6000610f338484610ef4565b60006020828403121561103357600080fd5b6000610f338484610f0a565b6000806040838503121561105257600080fd5b6000610f788585610eff565b600061106a83836110e3565b505060200190565b61107b816114af565b82525050565b600061108c8261149d565b61109681856114a1565b93506110a183611497565b8060005b838110156110cf5781516110b9888261105e565b97506110c483611497565b9250506001016110a5565b509495945050505050565b61107b816114ba565b61107b816103de565b61107b6110f8826103de565b6103de565b61107b816114cb565b60006111118261149d565b61111b81856114a1565b935061112b8185602086016114d6565b61113481611506565b9093019392505050565b600061114b6035836114a1565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006111a2601a836114a1565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006111db6011836114aa565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006112086013836114a1565b7204f7261636c652061646472657373206973203606c1b815260200192915050565b6000611237602f836114a1565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006112886021836114a1565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006112cb6019836114aa565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000611304602e836114a1565b7f4f6e6c7920696e7465726e616c20636f6e7472616374732063616e2063616c6c81526d103a3434b990333ab731ba34b7b760911b602082015260400192915050565b6000611352826111ce565b915061135e82846110ec565b50602001919050565b6000611352826112be565b602081016102c38284611072565b6040810161138e8285611072565b61139b6020830184611072565b9392505050565b602080825281016102c08184611081565b602081016102c382846110da565b602081016102c382846110e3565b6040810161138e82856110e3565b604081016113eb82856110e3565b61139b60208301846110e3565b6040810161140682856110e3565b8181036020830152610f338184611106565b602081016102c382846110fd565b602080825281016102c08184611106565b602080825281016102c38161113e565b602080825281016102c381611195565b602080825281016102c3816111fb565b602080825281016102c38161122a565b602080825281016102c38161127b565b602080825281016102c3816112f7565b60200190565b5190565b90815260200190565b919050565b60006102c3826114bf565b151590565b6001600160a01b031690565b60006102c3826114af565b60005b838110156114f15781810151838201526020016114d9565b83811115611500576000848401525b50505050565b601f01601f191690565b611519816114af565b811461152457600080fd5b50565b611519816114ba565b611519816103de56fea365627a7a723158205444fa000be24a0167eae03eedacde702b73a0709cf86b2d3157a2f93a75e1ad6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "oracleAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "previousValue",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newValue",
							"type": "uint256"
						}
					],
					"name": "CircuitBroken",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "oracleAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "previousValue",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newValue",
							"type": "uint256"
						}
					],
					"name": "LastValueOverridden",
					"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": [
						{
							"internalType": "address",
							"name": "oracleAddress",
							"type": "address"
						}
					],
					"name": "circuitBroken",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"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": [
						{
							"internalType": "address",
							"name": "oracleAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "isInvalid",
					"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": "address",
							"name": "oracleAddress",
							"type": "address"
						}
					],
					"name": "lastValue",
					"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": "address",
							"name": "oracleAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "probeCircuitBreaker",
					"outputs": [
						{
							"internalType": "bool",
							"name": "circuitBroken",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "oracleAddresses",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "values",
							"type": "uint256[]"
						}
					],
					"name": "resetLastValue",
					"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": "0xf5c5e354f2927fee791829e02dc7aa1bb475c57a1e8fb88ea3fffe7842fe7a05",
				"urls": [
					"bzz-raw://ef53bce87304b9b9e945c17819bc4686dbc284fc5f5d9bba4be12a032e2e4db0",
					"dweb:/ipfs/QmcEHeAn6yJdhjQ83qPp1VUc82cXFHJA3tRx3J74WH4zPX"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CircuitBreaker.sol": "CircuitBreaker"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CircuitBreaker.sol": {
						"keccak256": "0xf5c5e354f2927fee791829e02dc7aa1bb475c57a1e8fb88ea3fffe7842fe7a05",
						"urls": [
							"bzz-raw://ef53bce87304b9b9e945c17819bc4686dbc284fc5f5d9bba4be12a032e2e4db0",
							"dweb:/ipfs/QmcEHeAn6yJdhjQ83qPp1VUc82cXFHJA3tRx3J74WH4zPX"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeCircuitBreaker": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162000ff938038062000ff98339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b610dd680620002236000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063614d08f81161008c578063899ffef411610066578063899ffef4146101665780638da5cb5b1461017b578063a47af19e14610183578063cb1ec317146101a4576100cf565b8063614d08f81461014e578063741853601461015657806379ba50971461015e576100cf565b806304f3bcec146100d45780631627540c146100f25780632af64bd3146101075780633fa70f451461011c5780634ffcd9df1461013157806353a47bb714610139575b600080fd5b6100dc6101b7565b6040516100e99190610c97565b60405180910390f35b61010561010036600461090a565b6101c6565b005b61010f610224565b6040516100e99190610c4d565b61012461033c565b6040516100e99190610c5b565b6100dc610341565b610141610361565b6040516100e99190610c0c565b610124610370565b61010561038d565b6101056104e3565b61016e610588565b6040516100e99190610c3c565b6101416105f4565b61019661019136600461094e565b610603565b6040516100e9929190610cd6565b6101966101b236600461094e565b6106a8565b6002546001600160a01b031681565b6101ce610737565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610219908390610c0c565b60405180910390a150565b60006060610230610588565b905060005b815181101561033257600082828151811061024c57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a7219061029d908590600401610c5b565b60206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102ed9190810190610930565b6001600160a01b031614158061031857506000818152600360205260409020546001600160a01b0316155b156103295760009350505050610339565b50600101610235565b5060019150505b90565b604181565b600061035c6c45786368616e6765526174657360981b610763565b905090565b6001546001600160a01b031681565b7522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b81565b6060610397610588565b905060005b81518110156104df5760008282815181106103b357fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016103f59190610c01565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610421929190610c77565b60206040518083038186803b15801561043957600080fd5b505afa15801561044d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104719190810190610930565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906104cd9084908490610c69565b60405180910390a1505060010161039c565b5050565b6001546001600160a01b031633146105165760405162461bcd60e51b815260040161050d90610cb6565b60405180910390fd5b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610559926001600160a01b0391821692911690610c1a565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6060806105936107c7565b60408051600180825281830190925291925060609190602080830190803883390190505090506c45786368616e6765526174657360981b816000815181106105d757fe5b6020026020010181815250506105ed8282610818565b9250505090565b6000546001600160a01b031681565b600080600080610611610341565b6001600160a01b031663045056f8866040518263ffffffff1660e01b815260040161063c9190610c5b565b606060405180830381600087803b15801561065657600080fd5b505af115801561066a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061068e91908101906109a6565b9195509092509050808061069f5750815b92505050915091565b6000806106b3610341565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b81526004016106de9190610c5b565b604080518083038186803b1580156106f557600080fd5b505afa158015610709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061072d919081019061096c565b9094909350915050565b6000546001600160a01b031633146107615760405162461bcd60e51b815260040161050d90610cc6565b565b60008181526003602090815260408083205490516001600160a01b03909116918215159161079391869101610be1565b604051602081830303815290604052906107c05760405162461bcd60e51b815260040161050d9190610ca5565b5092915050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061080957fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610848578160200160208202803883390190505b50905060005b835181101561088a5783818151811061086357fe5b602002602001015182828151811061087757fe5b602090810291909101015260010161084e565b5060005b82518110156107c0578281815181106108a357fe5b60200260200101518282865101815181106108ba57fe5b602090810291909101015260010161088e565b80356108d881610d6a565b92915050565b80516108d881610d6a565b80516108d881610d81565b80356108d881610d8a565b80516108d881610d8a565b60006020828403121561091c57600080fd5b600061092884846108cd565b949350505050565b60006020828403121561094257600080fd5b600061092884846108de565b60006020828403121561096057600080fd5b600061092884846108f4565b6000806040838503121561097f57600080fd5b600061098b85856108ff565b925050602061099c858286016108e9565b9150509250929050565b6000806000606084860312156109bb57600080fd5b60006109c786866108ff565b93505060206109d8868287016108e9565b92505060406109e9868287016108e9565b9150509250925092565b60006109ff8383610a78565b505060200190565b610a1081610d09565b82525050565b6000610a2182610cf7565b610a2b8185610cfb565b9350610a3683610cf1565b8060005b83811015610a64578151610a4e88826109f3565b9750610a5983610cf1565b925050600101610a3a565b509495945050505050565b610a1081610d14565b610a1081610339565b610a10610a8d82610339565b610339565b610a1081610d25565b6000610aa682610cf7565b610ab08185610cfb565b9350610ac0818560208601610d30565b610ac981610d60565b9093019392505050565b6000610ae0603583610cfb565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610b37601183610d04565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000610b64602f83610cfb565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000610bb5601983610d04565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000610bec82610b2a565b9150610bf88284610a81565b50602001919050565b6000610bec82610ba8565b602081016108d88284610a07565b60408101610c288285610a07565b610c356020830184610a07565b9392505050565b60208082528101610c358184610a16565b602081016108d88284610a6f565b602081016108d88284610a78565b60408101610c288285610a78565b60408101610c858285610a78565b81810360208301526109288184610a9b565b602081016108d88284610a92565b60208082528101610c358184610a9b565b602080825281016108d881610ad3565b602080825281016108d881610b57565b60408101610ce48285610a78565b610c356020830184610a6f565b60200190565b5190565b90815260200190565b919050565b60006108d882610d19565b151590565b6001600160a01b031690565b60006108d882610d09565b60005b83811015610d4b578181015183820152602001610d33565b83811115610d5a576000848401525b50505050565b601f01601f191690565b610d7381610d09565b8114610d7e57600080fd5b50565b610d7381610d14565b610d738161033956fea365627a7a72315820151e206c999eab678706f3b61ba7983e52d5bd36745a87a666abf4d79d699cb86c6578706572696d656e74616cf564736f6c63430005100040",
			"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"
				},
				{
					"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": "contract IExchangeRates",
							"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": 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": "rateWithBreakCircuit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "lastValidRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateWithInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"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"
				}
			],
			"source": {
				"keccak256": "0x8853285c17174f19bf7b074b94746d42c2ca1ef785345e34a43f05e59481bb1f",
				"urls": [
					"bzz-raw://da9b7d9205cdb6041b250ba8e9e22f7a5e342d011a1f7b13ae664b54d16eee39",
					"dweb:/ipfs/QmNzD63eePJAukSoxdUAHB8NeJmrerufqTeuse6ZEUyFLj"
				]
			},
			"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": "0x8853285c17174f19bf7b074b94746d42c2ca1ef785345e34a43f05e59481bb1f",
						"urls": [
							"bzz-raw://da9b7d9205cdb6041b250ba8e9e22f7a5e342d011a1f7b13ae664b54d16eee39",
							"dweb:/ipfs/QmNzD63eePJAukSoxdUAHB8NeJmrerufqTeuse6ZEUyFLj"
						]
					}
				},
				"version": 1
			}
		},
		"VirtualSynthMastercopy": {
			"bytecode": "60806040526004805460ff60a01b191690556008805460ff1916905534801561002757600080fd5b506008805460ff19166001179055611716806100446000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80633db3dc9b116100c35780638f7758391161007c5780638f7758391461028657806395d89b411461028e578063a457c2d714610296578063a9059cbb146102a9578063dbd06c85146102bc578063dd62ed3e146102c457610158565b80633db3dc9b146102335780634be37cea1461023b5780636a256b291461024357806370a082311461025857806378f2ac261461026b5780638d7017d31461027357610158565b806323b872dd1161011557806323b872dd146101d55780632c4e722e146101e8578063313ce567146101f0578063378dc3dc14610205578063395093511461020d5780633af9e6691461022057610158565b806304f3bcec1461015d57806306fdde031461017b578063095ea7b314610190578063115f4fee146101b0578063158ef93e146101b857806318160ddd146101c0575b600080fd5b6101656102d7565b6040516101729190611522565b60405180910390f35b6101836102e6565b6040516101729190611530565b6101a361019e366004610fc8565b610310565b6040516101729190611506565b610165610327565b6101a3610336565b6101c861033f565b6040516101729190611514565b6101a36101e3366004610f7b565b610345565b6101c861039d565b6101f86103ac565b604051610172919061161d565b6101c86103b1565b6101a361021b366004610fc8565b6103b7565b6101c861022e366004610efd565b6103f3565b6101c86103fe565b6101c8610404565b610256610251366004610efd565b61040e565b005b6101c8610266366004610efd565b6104b6565b6101a36104d1565b610256610281366004611016565b6104e1565b6101a3610562565b610183610572565b6101a36102a4366004610fc8565b610587565b6101a36102b7366004610fc8565b6105c3565b6101c86105d0565b6101c86102d2366004610f41565b6105d6565b6004546001600160a01b031681565b60606007546040516020016102fb91906114b2565b60405160208183030381529060405290505b90565b600061031d338484610601565b5060015b92915050565b6003546001600160a01b031681565b60085460ff1681565b60025490565b60006103528484846106b5565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461039291869161038d908663ffffffff6107b116565b610601565b5060015b9392505050565b60006103a76107d9565b905090565b601281565b60055481565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161031d91859061038d908663ffffffff61097016565b600061032182610995565b60065481565b60006103a76109bb565b610416610a44565b6003546001600160a01b031663a9059cbb8261043181610995565b6040518363ffffffff1660e01b815260040161044e9291906114eb565b602060405180830381600087803b15801561046857600080fd5b505af115801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104a09190810190610ff8565b506104b3816104ae836104b6565b610bc2565b50565b6001600160a01b031660009081526020819052604090205490565b60006104db6109bb565b15905090565b60085460ff161561050d5760405162461bcd60e51b815260040161050490611591565b60405180910390fd5b6008805460ff19166001179055600380546001600160a01b038088166001600160a01b031992831617909255600480549287169290911691909117905560078190556105598383610c7f565b50600555505050565b600454600160a01b900460ff1681565b60606007546040516020016102fb91906114d2565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161031d91859061038d908663ffffffff6107b116565b600061031d3384846106b5565b60075481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106275760405162461bcd60e51b8152600401610504906115ef565b6001600160a01b03821661064d5760405162461bcd60e51b815260040161050490611551565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106a8908590611514565b60405180910390a3505050565b6001600160a01b0383166106db5760405162461bcd60e51b8152600401610504906115df565b6001600160a01b0382166107015760405162461bcd60e51b815260040161050490611541565b6001600160a01b03831660009081526020819052604090205461072a908263ffffffff6107b116565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461075f908263ffffffff61097016565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106a8908590611514565b6000828211156107d35760405162461bcd60e51b815260040161050490611571565b50900390565b6000600554600014156107ee5750600061030d565b600454600090600160a01b900460ff16610951576003546040516370a0823160e01b81526001600160a01b03909116906370a08231906108329030906004016114dd565b60206040518083038186803b15801561084a57600080fd5b505afa15801561085e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610882919081019061108b565b905060008061088f610d33565b6001600160a01b03166319d5c665306007546040518363ffffffff1660e01b81526004016108be9291906114eb565b60606040518083038186803b1580156108d657600080fd5b505afa1580156108ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061090e91908101906110a9565b50909250905081156109315761092a838363ffffffff6107b116565b925061094a565b801561094a57610947838263ffffffff61097016565b92505b5050610956565b506006545b60055461096a90829063ffffffff610db316565b91505090565b6000828201838110156103965760405162461bcd60e51b815260040161050490611561565b6000806109a1836104b6565b90506103966109ae6107d9565b829063ffffffff610dc816565b60006109c5610d33565b6001600160a01b031663059c29ec306007546040518363ffffffff1660e01b81526004016109f49291906114eb565b60206040518083038186803b158015610a0c57600080fd5b505afa158015610a20573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103a7919081019061108b565b600454600160a01b900460ff1615610a5b57610bc0565b6004805460ff60a01b1916600160a01b179055610a76610d33565b6001600160a01b0316631b16802c306007546040518363ffffffff1660e01b8152600401610aa59291906114eb565b606060405180830381600087803b158015610abf57600080fd5b505af1158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610af791908101906110a9565b50506003546040516370a0823160e01b81526001600160a01b0390911691506370a0823190610b2a9030906004016114dd565b60206040518083038186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b7a919081019061108b565b6006557ff5b268a3ff315cc44ccceeef86259c9e8eef81ceecb14001543809115380dd62610ba661033f565b600654604051610bb792919061160f565b60405180910390a15b565b6001600160a01b038216610be85760405162461bcd60e51b8152600401610504906115cf565b600254610bfb908263ffffffff6107b116565b6002556001600160a01b038216600090815260208190526040902054610c27908263ffffffff6107b116565b6001600160a01b0383166000818152602081905260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c73908590611514565b60405180910390a35050565b6001600160a01b038216610ca55760405162461bcd60e51b8152600401610504906115ff565b600254610cb8908263ffffffff61097016565b6002556001600160a01b038216600090815260208190526040902054610ce4908263ffffffff61097016565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c73908590611514565b6004805460405163dacb2d0160e01b81526000926001600160a01b039092169163dacb2d0191610d6391016115b1565b60206040518083038186803b158015610d7b57600080fd5b505afa158015610d8f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103a79190810190610f23565b60006103968383670de0b6b3a7640000610ddd565b60006103968383670de0b6b3a7640000610e21565b600080610e0384610df787600a870263ffffffff610e4c16565b9063ffffffff610e8616565b90506005600a825b0610610e1557600a015b600a9004949350505050565b600080600a8304610e38868663ffffffff610e4c16565b81610e3f57fe5b0490506005600a82610e0b565b600082610e5b57506000610321565b82820282848281610e6857fe5b04146103965760405162461bcd60e51b8152600401610504906115a1565b6000808211610ea75760405162461bcd60e51b815260040161050490611581565b6000828481610eb257fe5b04949350505050565b8035610321816116a4565b8051610321816116a4565b8051610321816116b8565b8035610321816116c1565b8035610321816116ca565b8051610321816116c1565b600060208284031215610f0f57600080fd5b6000610f1b8484610ebb565b949350505050565b600060208284031215610f3557600080fd5b6000610f1b8484610ec6565b60008060408385031215610f5457600080fd5b6000610f608585610ebb565b9250506020610f7185828601610ebb565b9150509250929050565b600080600060608486031215610f9057600080fd5b6000610f9c8686610ebb565b9350506020610fad86828701610ebb565b9250506040610fbe86828701610edc565b9150509250925092565b60008060408385031215610fdb57600080fd5b6000610fe78585610ebb565b9250506020610f7185828601610edc565b60006020828403121561100a57600080fd5b6000610f1b8484610ed1565b600080600080600060a0868803121561102e57600080fd5b600061103a8888610ee7565b955050602061104b88828901610ee7565b945050604061105c88828901610ebb565b935050606061106d88828901610edc565b925050608061107e88828901610edc565b9150509295509295909350565b60006020828403121561109d57600080fd5b6000610f1b8484610ef2565b6000806000606084860312156110be57600080fd5b60006110ca8686610ef2565b93505060206110db86828701610ef2565b9250506040610fbe86828701610ef2565b6110f58161163d565b82525050565b6110f581611648565b6110f58161030d565b6110f56111198261030d565b61030d565b6110f58161164d565b60006111328261162b565b61113c818561162f565b935061114c81856020860161166a565b6111558161169a565b9093019392505050565b600061116c60238361162f565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015260400192915050565b60006111b160228361162f565b7f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015260400192915050565b60006111f5601b8361162f565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061122e601e8361162f565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611267600e83611638565b6d02b34b93a3ab0b61029bcb73a34160951b8152600e0192915050565b6000611291601a8361162f565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006112ca601a8361162f565b7f7653796e746820616c726561647920696e697469616c697a6564000000000000815260200192915050565b600061130360218361162f565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6822bc31b430b733b2b960b91b9052565b6000611357600183611638565b603b60f91b815260010192915050565b600061137460218361162f565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b602082015260400192915050565b60006113b760258361162f565b7f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015260400192915050565b60006113fe60248361162f565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015260400192915050565b6000611444601c8361162f565b7f45786368616e67657220636f6e7472616374206e6f7420666f756e6400000000815260200192915050565b600061147d601f8361162f565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300815260200192915050565b6110f581611664565b60006114bd8261125a565b91506114c9828461110d565b50602001919050565b60006114bd8261134a565b6020810161032182846110ec565b604081016114f982856110ec565b6103966020830184611104565b6020810161032182846110fb565b602081016103218284611104565b60208101610321828461111e565b602080825281016103968184611127565b602080825281016103218161115f565b60208082528101610321816111a4565b60208082528101610321816111e8565b6020808252810161032181611221565b6020808252810161032181611284565b60208082528101610321816112bd565b60208082528101610321816112f6565b604081016115be82611339565b818103602083015261032181611437565b6020808252810161032181611367565b60208082528101610321816113aa565b60208082528101610321816113f1565b6020808252810161032181611470565b604081016114f98285611104565b6020810161032182846114a9565b5190565b90815260200190565b919050565b600061032182611658565b151590565b60006103218261163d565b6001600160a01b031690565b60ff1690565b60005b8381101561168557818101518382015260200161166d565b83811115611694576000848401525b50505050565b601f01601f191690565b6116ad8161163d565b81146104b357600080fd5b6116ad81611648565b6116ad8161030d565b6116ad8161164d56fea365627a7a72315820e6c2353be4ddd2d7ca4e27736eb0be03db9b522e022a1d4f80f98de3f3363e8f6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0xd782555978ea560c23cc87f71465fd76c803575903a15d568aca6579560a4e61",
				"urls": [
					"bzz-raw://68fa0317f1fcccf607bbe47e2943ce291486aa93fa9afa40ed76fc8fdde87705",
					"dweb:/ipfs/QmXzn3GkUWm1FhcafiizzDV1aBzdhsCCJhAdDP8bLQS22a"
				]
			},
			"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": "0xd782555978ea560c23cc87f71465fd76c803575903a15d568aca6579560a4e61",
						"urls": [
							"bzz-raw://68fa0317f1fcccf607bbe47e2943ce291486aa93fa9afa40ed76fc8fdde87705",
							"dweb:/ipfs/QmXzn3GkUWm1FhcafiizzDV1aBzdhsCCJhAdDP8bLQS22a"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeState": {
			"bytecode": "6080604052600c60045534801561001557600080fd5b50604051610bc5380380610bc58339818101604052604081101561003857600080fd5b50805160209091015180826001600160a01b03811661009e576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610148576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a1505050610a1a806101ab6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b44e975311610066578063b44e975314610290578063cd8b94dc146102bc578063d0d3d62a146102d9578063f1406dc814610305576100ea565b806379ba5097146102785780638da5cb5b14610280578063aefc4ccb14610288576100ea565b80633ca9d85c116100c85780633ca9d85c146101a457806352f445ca146101fc57806353a47bb7146102225780636e13fe7614610246576100ea565b80630d40d0cf146100ef57806315987eb6146101095780631627540c1461017c575b600080fd5b6100f7610331565b60408051918252519081900360200190f35b61013b6004803603606081101561011f57600080fd5b506001600160a01b038135169060208101359060400135610337565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6101a26004803603602081101561019257600080fd5b50356001600160a01b03166103dc565b005b6101a260048036036101208110156101bb57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a08101359060c08101359060e0810135906101000135610438565b6101a26004803603602081101561021257600080fd5b50356001600160a01b03166105aa565b61022a610606565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603606081101561025c57600080fd5b506001600160a01b038135169060208101359060400135610615565b6101a261067f565b61022a61073b565b61022a61074a565b6100f7600480360360408110156102a657600080fd5b506001600160a01b038135169060200135610759565b6101a2600480360360208110156102d257600080fd5b5035610781565b6101a2600480360360408110156102ef57600080fd5b506001600160a01b03813516906020013561078e565b6100f76004803603604081101561031b57600080fd5b506001600160a01b038135169060200135610807565b60045481565b6000806000806000806000806000600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c81526020019081526020016000208a8154811061038657fe5b906000526020600020906008020190508060000154816001015482600201548360030154846004015485600501548660060154876007015498509850985098509850985098509850509397509397509397509397565b6103e461088d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b031633146104815760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6004546001600160a01b038a1660009081526003602090815260408083208a8452909152902054106104fa576040805162461bcd60e51b815260206004820152601860248201527f4d6178207175657565206c656e67746820726561636865640000000000000000604482015290519081900360640190fd5b6001600160a01b03909816600090815260036020818152604080842089855282528084208151610100810183529b8c528b83019a8b52908b0198895260608b0197885260808b0196875260a08b0195865260c08b0194855260e08b019b8c5280546001818101835591855291909320995160089091029099019889559651908801559351600287015591519385019390935591516004840155905160058301555160068201559051600790910155565b6105b261088d565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6003602052826000526040600020602052816000526040600020818154811061063a57fe5b60009182526020909120600890910201805460018201546002830154600384015460048501546005860154600687015460079097015495995093975091955093909288565b6001546001600160a01b031633146106c85760405162461bcd60e51b815260040180806020018281038252603581526020018061094e6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b03919091166000908152600360209081526040808320938352929052205490565b61078961088d565b600455565b6002546001600160a01b031633146107d75760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6001600160a01b03821660009081526003602090815260408083208484529091528120610803916108d8565b5050565b6001600160a01b0382166000908152600360209081526040808320848452909152812081805b8254811015610884578183828154811061084357fe5b906000526020600020906008020160050154111561087c5782818154811061086757fe5b90600052602060002090600802016005015491505b60010161082d565b50949350505050565b6000546001600160a01b031633146108d65760405162461bcd60e51b815260040180806020018281038252602f815260200180610983602f913960400191505060405180910390fd5b565b50805460008255600802906000526020600020908101906108f991906108fc565b50565b61094a91905b808211156109465760008082556001820181905560028201819055600382018190556004820181905560058201819055600682018190556007820155600801610902565b5090565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a72315820ae6b520447a9a35b4e7aa6d20de9b2351219bc067a6c34b89de11d14d0a24b3c64736f6c63430005100032",
			"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": "0xbf69ee7b7f4eae7c70896f691b8d989b8413431d0a8bee7beaf12a783dff8e4c",
				"urls": [
					"bzz-raw://5b93715abb85927c0ad8b0c6167034c6fd7075e48a2baaad2cb60a7188aa9cae",
					"dweb:/ipfs/QmdT7Wm8qLfCSW4GPRRSyUWWdpusUnpc23zC2KdH4kBowj"
				]
			},
			"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": "0xbf69ee7b7f4eae7c70896f691b8d989b8413431d0a8bee7beaf12a783dff8e4c",
						"urls": [
							"bzz-raw://5b93715abb85927c0ad8b0c6167034c6fd7075e48a2baaad2cb60a7188aa9cae",
							"dweb:/ipfs/QmdT7Wm8qLfCSW4GPRRSyUWWdpusUnpc23zC2KdH4kBowj"
						]
					}
				},
				"version": 1
			}
		},
		"Issuer": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620060d7380380620060d78339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b615eb480620002236000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806372c6581611610182578063a311c7c2116100e9578063c81ff8fa116100a2578063d686c06c1161007c578063d686c06c1461061d578063dbf6334014610630578063dd3d2b2e14610638578063fd864ccf1461064b576102bb565b8063c81ff8fa146105e4578063c8977132146105f7578063d37c4d8b1461060a576102bb565b8063a311c7c21461057d578063a5fdc5de14610590578063ae3bbbbb146105a3578063b06e8c65146105b6578063b410a034146105c9578063bff4fdfc146105d1576102bb565b8063835e119c1161013b578063835e119c14610521578063849cf58814610534578063890235d414610547578063899ffef41461055a5780638da5cb5b146105625780639a5154b41461056a576102bb565b806372c65816146104c357806372cb051f146104d657806374185360146104eb57806379ba5097146104f35780637b1001b7146104fb57806380aa6a911461050e576102bb565b806331e6da5a116102265780634e99bda9116101df5780634e99bda91461044757806353a47bb71461044f5780635e887fe914610464578063614d08f8146104875780636bed04151461048f5780637168d2c2146104b0576102bb565b806331e6da5a146103c857806332608039146103db5780633b6afe40146103ee57806344ec6b621461040e57806347a9b6db14610421578063497d704a14610434576102bb565b80631313e6ca116102785780631313e6ca1461035b5780631627540c1461037257806316b2213f14610385578063242df9e1146103985780632af64bd3146103a05780632b3f41aa146103b5576102bb565b8063042e0688146102c057806304f3bcec146102d557806305b3c1c9146102f35780630b887dae146103135780630d969cf5146103265780631137aedf14610339575b600080fd5b6102d36102ce366004614d6c565b61065e565b005b6102dd6106cf565b6040516102ea9190615aeb565b60405180910390f35b610306610301366004614c79565b6106de565b6040516102ea9190615a37565b6102d3610321366004614ea4565b6106f2565b6102d3610334366004614d9c565b6107d0565b61034c610347366004614c79565b610963565b6040516102ea93929190615a61565b61036361097f565b6040516102ea93929190615cd4565b6102d3610380366004614c79565b610a26565b610306610393366004614c79565b610a84565b610306610a96565b6103a8610aa6565b6040516102ea9190615a29565b6102d36103c3366004614cb5565b610bbd565b6102d36103d6366004614f5c565b610c0c565b6102dd6103e9366004614ea4565b610d47565b6104016103fc366004614dfd565b610d62565b6040516102ea9190615a18565b6102d361041c366004614cef565b610e10565b6102d361042f366004614dfd565b610e63565b6102d3610442366004614c79565b610f14565b6103a8610f5c565b610457610fee565b6040516102ea9190615944565b610477610472366004614d3c565b610ffd565b6040516102ea9493929190615cfc565b61030661101f565b6104a261049d366004614d6c565b61102c565b6040516102ea929190615cc6565b6102d36104be366004614dfd565b611098565b61034c6104d1366004614d3c565b6111cd565b6104de61133f565b6040516102ea9190615a07565b6102d361134b565b6102d361149d565b610306610509366004614f01565b611539565b6102d361051c366004614d6c565b611545565b6102dd61052f366004614ea4565b611930565b6102d3610542366004614f20565b611957565b6103a8610555366004614ee0565b6119ca565b6104de611d50565b610457612026565b6102d3610578366004614cef565b612035565b61030661058b366004614c79565b612083565b61030661059e366004614c79565b612095565b6104a26105b1366004614c79565b6120a0565b6102d36105c4366004614d6c565b6120b6565b6103066120fa565b6103a86105df366004614c79565b612104565b6103a86105f2366004614ee0565b61210f565b6102d3610605366004614c79565b6124d5565b610306610618366004614d6c565b61251a565b6102d361062b366004614cef565b61254c565b6103066125f2565b610306610646366004614c79565b6125f8565b6102d3610659366004614cb5565b612603565b610666612652565b6001600160a01b0316336001600160a01b03161461069f5760405162461bcd60e51b815260040161069690615b98565b60405180910390fd5b600081116106bf5760405162461bcd60e51b815260040161069690615c58565b6106cb82826000612669565b5050565b6002546001600160a01b031681565b6000806106ea83612793565b509392505050565b6106fa6127e6565b6000610704612812565b604051636b42ba1d60e11b81529091506001600160a01b0382169063d685743a90610736908590600090600401615a89565b600060405180830381600087803b15801561075057600080fd5b505af1158015610764573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03841692506304bd11e5915061079590600190600401615a29565b600060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b505050506106cb82612829565b6107d8612cd7565b6107e0612dc1565b6001600160a01b0316631b16802c85856040518363ffffffff1660e01b815260040161080d929190615988565b606060405180830381600087803b15801561082757600080fd5b505af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085f919081019061504f565b50505060008381526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906108a19087908690600401615988565b600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b505050506108dc84612dd8565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b49061092b9087908590600401615988565b600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b5050505050505050565b600080600061097184612e51565b509196909550909350915050565b60008060008060006109b86109b37f6578743a41676772656761746f7249737375656453796e746873000000000000612ec1565b612f1e565b509350509250506000806109ca612fa9565b91509150839650816000146109ee576109e9878363ffffffff612fe416565b6109f1565b60005b955060006109fd613004565b90504281108015610a1a5750838142031180610a1a575081814203115b95505050505050909192565b610a2e6127e6565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610a79908390615944565b60405180910390a150565b60066020526000908152604090205481565b6000610aa06130ae565b90505b90565b60006060610ab2611d50565b905060005b8151811015610bb4576000828281518110610ace57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b1f908590600401615a37565b60206040518083038186803b158015610b3757600080fd5b505afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b6f9190810190614c97565b6001600160a01b0316141580610b9a57506000818152600360205260409020546001600160a01b0316155b15610bab5760009350505050610aa3565b50600101610ab7565b50600191505090565b610bc5612652565b6001600160a01b0316336001600160a01b031614610bf55760405162461bcd60e51b815260040161069690615b98565b610bff8282613109565b6106cb82600060016131aa565b610c1f66119959541bdbdb60ca1b612ec1565b6001600160a01b0316336001600160a01b031614610c4f5760405162461bcd60e51b815260040161069690615bb8565b6000610c5961341c565b9050816001600160801b0316816001600160a01b031663988e65956040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9e57600080fd5b505afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd69190810190614f7a565b6001600160801b031610156106cb5760405163abb6de9560e01b81526001600160a01b0382169063abb6de9590610d11908590600401615cb8565b600060405180830381600087803b158015610d2b57600080fd5b505af1158015610d3f573d6000803e3d6000fd5b505050505050565b6005602052600090815260409020546001600160a01b031681565b60408051828152602080840282010190915260609082908290828015610d92578160200160208202803883390190505b50905060005b82811015610e055760056000878784818110610db057fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610de557fe5b6001600160a01b0390921660209283029190910190910152600101610d98565b509150505b92915050565b610e18612652565b6001600160a01b0316336001600160a01b031614610e485760405162461bcd60e51b815260040161069690615b98565b610e52838361343c565b610e5e83826000612669565b505050565b610e6b6127e6565b8060005b81811015610ea857610ea0848483818110610e8657fe5b9050602002016020610e9b9190810190614f20565b613471565b600101610e6f565b50610eb1612812565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610edd9190615a29565b600060405180830381600087803b158015610ef757600080fd5b505af1158015610f0b573d6000803e3d6000fd5b50505050505050565b610f1c612652565b6001600160a01b0316336001600160a01b031614610f4c5760405162461bcd60e51b815260040161069690615b98565b610f5981600060016131aa565b50565b6000610f66613602565b6001600160a01b031663c8e5bbd5610f7e600161361d565b6040518263ffffffff1660e01b8152600401610f9a9190615a07565b60006040518083038186803b158015610fb257600080fd5b505afa158015610fc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0a9190810190614e3f565b6001546001600160a01b031681565b60008060008061100d86866136f9565b93509350935093505b92959194509250565b6524b9b9bab2b960d11b81565b600080600061104961103d86613aa7565b620a69cb60eb1b613b2c565b93509091506000905061106a61105d613b9d565b839063ffffffff613bf516565b905084811061107c576000935061108f565b61108c858263ffffffff613c0a16565b93505b50509250929050565b6110a06127e6565b8060006110ab612812565b90506060826040519080825280602002602001820160405280156110d9578160200160208202803883390190505b506040516305ece36d60e21b81529091506001600160a01b038316906317b38db49061110d908890889086906004016159e1565b600060405180830381600087803b15801561112757600080fd5b505af115801561113b573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03851692506304bd11e5915061116c90600190600401615a29565b600060405180830381600087803b15801561118657600080fd5b505af115801561119a573d6000803e3d6000fd5b506000925050505b83811015610d3f576111c58686838181106111b957fe5b90506020020135612829565b6001016111a2565b60008060006111da612652565b6001600160a01b0316336001600160a01b03161461120a5760405162461bcd60e51b815260040161069690615b98565b611212613c32565b6001600160a01b031663952225f386866040518363ffffffff1660e01b815260040161123f92919061596d565b60206040518083038186803b15801561125757600080fd5b505afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128f9190810190614e86565b6112ab5760405162461bcd60e51b815260040161069690615bf8565b60006112b786866136f9565b929650909450925090506112cc868483613c4a565b84611337576112d9613c32565b6001600160a01b031663974e9e7f876040518263ffffffff1660e01b81526004016113049190615944565b600060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050505b509250925092565b6060610aa0600061361d565b6060611355611d50565b905060005b81518110156106cb57600082828151811061137157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016113b39190615939565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016113df929190615aa4565b60206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142f9190810190614c97565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061148b9084908490615a45565b60405180910390a1505060010161135a565b6001546001600160a01b031633146114c75760405162461bcd60e51b815260040161069690615b28565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261150a926001600160a01b0391821692911690615952565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006106ea8383613d81565b6002546040516321f8a72160e01b81526000916001600160a01b0316906321f8a7219061158f9075446562744d69677261746f724f6e457468657265756d60501b90600401615a37565b60206040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115df9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061162e9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615a37565b60206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061167e9190810190614c97565b9050336001600160a01b038316148061169f5750336001600160a01b038216145b6116bb5760405162461bcd60e51b815260040161069690615c68565b6001600160a01b03821615806116d857506001600160a01b038116155b6116f45760405162461bcd60e51b815260040161069690615b18565b60006116fe61341c565b6002546040516321f8a72160e01b81529192506001600160a01b0316906321f8a721906117489075446562744d69677261746f724f6e457468657265756d60501b90600401615a37565b60206040518083038186803b15801561176057600080fd5b505afa158015611774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117989190810190614c97565b6001600160a01b0316336001600160a01b0316141561181657604051631a378f0d60e01b81526001600160a01b03821690631a378f0d906117df9088908890600401615988565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50505050611929565b6002546040516321f8a72160e01b81526001600160a01b03909116906321f8a7219061185f9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615a37565b60206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118af9190810190614c97565b6001600160a01b0316336001600160a01b0316141561192957604051636178258560e11b81526001600160a01b0382169063c2f04b0a906118f69088908890600401615988565b600060405180830381600087803b15801561191057600080fd5b505af1158015611924573d6000803e3d6000fd5b505050505b5050505050565b6004818154811061193d57fe5b6000918252602090912001546001600160a01b0316905081565b61195f6127e6565b61196881613471565b611970612812565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b815260040161199c9190615a29565b600060405180830381600087803b1580156119b657600080fd5b505af1158015611929573d6000803e3d6000fd5b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190611a1b907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615a37565b60206040518083038186803b158015611a3357600080fd5b505afa158015611a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a6b9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611ab9907453796e746865746978427269646765546f4261736560581b90600401615a37565b60206040518083038186803b158015611ad157600080fd5b505afa158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b099190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611b499066119959541bdbdb60ca1b90600401615a37565b60206040518083038186803b158015611b6157600080fd5b505afa158015611b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b999190810190614c97565b9050336001600160a01b0384161480611bba5750336001600160a01b038316145b80611bcd5750336001600160a01b038216145b611be95760405162461bcd60e51b815260040161069690615b38565b6000878152600560205260409020546001600160a01b0316611c1d5760405162461bcd60e51b815260040161069690615bd8565b60008511611c3d5760405162461bcd60e51b815260040161069690615c58565b611c4686612dd8565b6000878152600560205260409081902054905163219e412d60e21b81526001600160a01b039091169063867904b490611c859089908990600401615988565b600060405180830381600087803b158015611c9f57600080fd5b505af1158015611cb3573d6000803e3d6000fd5b50505050600080611cc389613f0c565b91509150611ccf612812565b6001600160a01b03166342c7b819611cf5611cf08a8663ffffffff613f9116565b613fbb565b6040518263ffffffff1660e01b8152600401611d119190615a37565b600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b50929b9a5050505050505050505050565b606080611d5b613fe4565b60408051600f808252610200820190925291925060609190602082016101e080388339019050509050680a6f2dce8d0cae8d2f60bb1b81600081518110611d9e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611dc457fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110611dee57fe5b6020026020010181815250506d21b4b931bab4ba213932b0b5b2b960911b81600381518110611e1957fe5b6020026020010181815250507153796e74686574697844656274536861726560701b81600481518110611e4857fe5b60200260200101818152505066119959541bdbdb60ca1b81600581518110611e6c57fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b81600681518110611e9a57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600781518110611ec557fe5b602002602001018181525050692634b8bab4b230ba37b960b11b81600881518110611eec57fe5b602002602001018181525050704c697175696461746f725265776172647360781b81600981518110611f1a57fe5b6020026020010181815250506844656274436163686560b81b81600a81518110611f4057fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600b81518110611f6a57fe5b60200260200101818152505073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b81600c81518110611f9b57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600d81518110611fd557fe5b602002602001018181525050766578743a41676772656761746f7244656274526174696f60481b81600e8151811061200957fe5b60200260200101818152505061201f8282614035565b9250505090565b6000546001600160a01b031681565b61203d612652565b6001600160a01b0316336001600160a01b03161461206d5760405162461bcd60e51b815260040161069690615b98565b6120778383613109565b610e5e838260006131aa565b600061208e826140ea565b5092915050565b6000610e0a82614140565b6000806120ac836140ea565b915091505b915091565b6120be612652565b6001600160a01b0316336001600160a01b0316146120ee5760405162461bcd60e51b815260040161069690615b98565b6106cb828260006131aa565b6000610aa0613b9d565b6000610e0a826141dc565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190612160907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615a37565b60206040518083038186803b15801561217857600080fd5b505afa15801561218c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121b09190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a721906121fe907453796e746865746978427269646765546f4261736560581b90600401615a37565b60206040518083038186803b15801561221657600080fd5b505afa15801561222a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224e9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061228e9066119959541bdbdb60ca1b90600401615a37565b60206040518083038186803b1580156122a657600080fd5b505afa1580156122ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122de9190810190614c97565b9050336001600160a01b03841614806122ff5750336001600160a01b038316145b806123125750336001600160a01b038216145b61232e5760405162461bcd60e51b815260040161069690615b38565b6000878152600560205260409020546001600160a01b03166123625760405162461bcd60e51b815260040161069690615bd8565b600085116123825760405162461bcd60e51b815260040161069690615c58565b61238a612dc1565b6001600160a01b0316631b16802c87896040518363ffffffff1660e01b81526004016123b7929190615988565b606060405180830381600087803b1580156123d157600080fd5b505af11580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612409919081019061504f565b50505060008781526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061244b9089908990600401615988565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b5050505060008061248989613f0c565b91509150612495612812565b6001600160a01b03166342c7b8196124b6611cf08a8663ffffffff613f9116565b6000036040518263ffffffff1660e01b8152600401611d119190615a37565b6124dd612652565b6001600160a01b0316336001600160a01b03161461250d5760405162461bcd60e51b815260040161069690615b98565b610f598160006001612669565b60008061252684613aa7565b905080612537576000915050610e0a565b6125418184613b2c565b509095945050505050565b612554612cd7565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186803b15801561258d57600080fd5b505afa1580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125c59190810190614c97565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b8152600401610edd929190615988565b60045490565b6000610e0a826141fb565b61260b612652565b6001600160a01b0316336001600160a01b03161461263b5760405162461bcd60e51b815260040161069690615b98565b612645828261343c565b6106cb8260006001612669565b6000610aa0680a6f2dce8d0cae8d2f60bb1b612ec1565b612671614274565b1561267b57610e5e565b60008061268785612e51565b9350505091506126968161443d565b826126c057818411156126bb5760405162461bcd60e51b815260040161069690615b78565b6126c4565b8193505b6126ce858561445b565b6126d785612dd8565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b4906127269088908890600401615988565b600060405180830381600087803b15801561274057600080fd5b505af1158015612754573d6000803e3d6000fd5b50505050612760612812565b6001600160a01b03166342c7b81961277786613fbb565b6040518263ffffffff1660e01b81526004016118f69190615a37565b6000806000806127a8620a69cb60eb1b613f0c565b9150915060006127c06127ba87614140565b84614577565b90506127da6127cd613b9d565b829063ffffffff613f9116565b94509092505050915091565b6000546001600160a01b031633146128105760405162461bcd60e51b815260040161069690615c08565b565b6000610aa06844656274436163686560b81b612ec1565b6000818152600560205260409020546001600160a01b03168061285e5760405162461bcd60e51b815260040161069690615be8565b631cd554d160e21b8214156128855760405162461bcd60e51b815260040161069690615c38565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c057600080fd5b505afa1580156128d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128f89190810190614ec2565b90508015612b7a5760008061290b613602565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b8152600401612938929190615ac4565b60606040518083038186803b15801561295057600080fd5b505afa158015612964573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612988919081019061504f565b5091509150600081116129ad5760405162461bcd60e51b815260040161069690615ca8565b60006129b7614589565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81529192506001600160a01b03169063867904b490612a079084908790600401615988565b600060405180830381600087803b158015612a2157600080fd5b505af1158015612a35573d6000803e3d6000fd5b50505050612a41612812565b6001600160a01b03166342c7b819612a5885613fbb565b6040518263ffffffff1660e01b8152600401612a749190615a37565b600060405180830381600087803b158015612a8e57600080fd5b505af1158015612aa2573d6000803e3d6000fd5b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015612aee57600080fd5b505afa158015612b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b269190810190614f3e565b846040518363ffffffff1660e01b8152600401612b44929190615af9565b600060405180830381600087803b158015612b5e57600080fd5b505af1158015612b72573d6000803e3d6000fd5b505050505050505b60005b600454811015612c6157826001600160a01b031660048281548110612b9e57fe5b6000918252602090912001546001600160a01b03161415612c595760048181548110612bc657fe5b600091825260209091200180546001600160a01b0319169055600480546000198101908110612bf157fe5b600091825260209091200154600480546001600160a01b039092169183908110612c1757fe5b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556004805490612c53906000198301614b06565b50612c61565b600101612b7d565b506001600160a01b038216600090815260066020908152604080832083905585835260059091529081902080546001600160a01b0319169055517f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d090612cca9085908590615a45565b60405180910390a1505050565b612cdf614589565b6001600160a01b0316336001600160a01b03161480612da557506002546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190612d409073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b90600401615a37565b60206040518083038186803b158015612d5857600080fd5b505afa158015612d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d909190810190614c97565b6001600160a01b0316336001600160a01b0316145b6128105760405162461bcd60e51b815260040161069690615c48565b6000610aa06822bc31b430b733b2b960b91b612ec1565b612de06145a4565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b84604051602001612e1c9291906158f3565b60405160208183030381529060405280519060200120426040518463ffffffff1660e01b815260040161199c93929190615a61565b600080600080612e70612e6386613aa7565b631cd554d160e21b613b2c565b91945092509050600080612e8387612793565b915091508195508280612e935750805b9250858510612ea55760009550612eb8565b612eb5868663ffffffff613c0a16565b95505b50509193509193565b60008181526003602090815260408083205490516001600160a01b039091169182151591612ef191869101615919565b6040516020818303038152906040529061208e5760405162461bcd60e51b81526004016106969190615b07565b6000806000806000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015612f5f57600080fd5b505afa158015612f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f979190810190615092565b939a9299509097509550909350915050565b600080600080612fd56109b3766578743a41676772656761746f7244656274526174696f60481b612ec1565b50919650909450505050509091565b6000612ffd83836b033b2e3c9fd0803ce80000006145c1565b9392505050565b600061300e6145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b815260040161305e929190615a53565b60206040518083038186803b15801561307657600080fd5b505afa15801561308a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa09190810190614ec2565b60006130b86145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b815260040161305e929190615a53565b613111614605565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b815260040161313e929190615952565b60206040518083038186803b15801561315657600080fd5b505afa15801561316a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061318e9190810190614e86565b6106cb5760405162461bcd60e51b815260040161069690615b48565b6131b2614274565b156131bc57610e5e565b80613319576131ca836141dc565b6131e65760405162461bcd60e51b815260040161069690615c88565b6000806131f1612dc1565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b8152600401613225929190615988565b606060405180830381600087803b15801561323f57600080fd5b505af1158015613253573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613277919081019061504f565b90935091505080156133165761328b612dc1565b6001600160a01b0316634c268fc886631cd554d160e21b87866040518563ffffffff1660e01b81526004016132c394939291906159a3565b60206040518083038186803b1580156132db57600080fd5b505afa1580156132ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133139190810190614ec2565b93505b50505b600080613328612e6386613aa7565b925050915060008061333987612793565b9150915061334e83806133495750815b61443d565b6000841161336e5760405162461bcd60e51b815260040161069690615b68565b841561338757613384848363ffffffff613c0a16565b95505b600061339588898988614624565b9050826133a8868363ffffffff613c0a16565b11610959576133b5613c32565b6001600160a01b031663974e9e7f896040518263ffffffff1660e01b81526004016133e09190615944565b600060405180830381600087803b1580156133fa57600080fd5b505af115801561340e573d6000803e3d6000fd5b505050505050505050505050565b6000610aa07153796e74686574697844656274536861726560701b612ec1565b613444614605565b6001600160a01b0316630487261783836040518363ffffffff1660e01b815260040161313e929190615952565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156134ac57600080fd5b505afa1580156134c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134e49190810190614ec2565b6000818152600560205260409020549091506001600160a01b03161561351c5760405162461bcd60e51b815260040161069690615c78565b6001600160a01b038216600090815260066020526040902054156135525760405162461bcd60e51b815260040161069690615c18565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0384166001600160a01b03199182168117909255600083815260056020908152604080832080549094168517909355928152600690925290819020829055517f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c62884906135f69083908590615a45565b60405180910390a15050565b6000610aa06c45786368616e6765526174657360981b612ec1565b6060808261362c57600061362f565b60015b60ff1660048054905001604051908082528060200260200182016040528015613662578160200160208202803883390190505b50905060005b6004548110156136c957600660006004838154811061368357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205482518390839081106136b657fe5b6020908102919091010152600101613668565b508215610e0a576004548151620a69cb60eb1b91839181106136e757fe5b60200260200101818152505092915050565b600080600080600061370d612e6388613aa7565b9193509091506000905080613727620a69cb60eb1b613f0c565b9150915061373b838061334957508161443d565b600088156139195761374b614751565b9050613755613c32565b6001600160a01b031663f557f73c866137766137708e614140565b87614577565b846040518463ffffffff1660e01b815260040161379593929190615a61565b60206040518083038186803b1580156137ad57600080fd5b505afa1580156137c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137e59190810190614ec2565b965061389d61388f6138798373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b505af4158015613849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061386d9190810190614ec2565b9063ffffffff6147b216565b6138838a876147d7565b9063ffffffff613f9116565b6138988c6147e9565b6147f3565b97506139096139036138ed8373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b6138f78b87614577565b9063ffffffff61480916565b886147f3565b9650600095506110169350505050565b613921614827565b90506000613938613930614887565b61386d6148dc565b9050600061395e6139588361394c8f614140565b9063ffffffff613c0a16565b86614577565b9050613968613c32565b6001600160a01b031663f557f73c8883866040518463ffffffff1660e01b815260040161399793929190615a61565b60206040518083038186803b1580156139af57600080fd5b505afa1580156139c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139e79190810190614ec2565b98506000613a40613a368573__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b6138838c896147d7565b9050613a4b8d614140565b613a5b828563ffffffff6147b216565b10613a8a57879950613a708361394c8f614140565b9a50613a7b8d614936565b98506110169650505050505050565b613a958d8285614940565b909b5098506110169650505050505050565b6000613ab161341c565b6001600160a01b03166370a08231836040518263ffffffff1660e01b8152600401613adc9190615944565b60206040518083038186803b158015613af457600080fd5b505afa158015613b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e0a9190810190614ec2565b6000806000806000613b3c61097f565b92505091508660001415613b5857600094509092509050613b96565b600080613b6488613f0c565b91509150613b8182613b758b61499b565b9063ffffffff613bf516565b96508395508080613b8f5750825b9450505050505b9250925092565b6000613ba76145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b815260040161305e929190615a53565b6000612ffd8383670de0b6b3a76400006145c1565b600082821115613c2c5760405162461bcd60e51b815260040161069690615b88565b50900390565b6000610aa0692634b8bab4b230ba37b960b11b612ec1565b613c526149b9565b6001600160a01b031663270fb338846040518263ffffffff1660e01b8152600401613c7d9190615944565b600060405180830381600087803b158015613c9757600080fd5b505af1158015613cab573d6000803e3d6000fd5b505050506000613cb961341c565b90506000613cc685613aa7565b905082841415613cfe57604051631a378f0d60e01b81526001600160a01b03831690631a378f0d906117df9088908590600401615988565b6000613d09856149d8565b9050826001600160a01b0316631a378f0d87848410613d285784613d2a565b835b6040518363ffffffff1660e01b8152600401613d47929190615988565b600060405180830381600087803b158015613d6157600080fd5b505af1158015613d75573d6000803e3d6000fd5b50505050505050505050565b6000806000806000613d91612812565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015613dc957600080fd5b505afa158015613ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e019190810190614ffa565b935093505092508180613e115750805b935085613eb757600080613e23612812565b6001600160a01b0316632992dba26040518163ffffffff1660e01b8152600401604080518083038186803b158015613e5a57600080fd5b505afa158015613e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e929190810190614f98565b9092509050613ea7858363ffffffff6147b216565b94508580613eb25750805b955050505b631cd554d160e21b871415613ed15750909250613f059050565b600080613edd89613f0c565b9092509050613ef2858363ffffffff613bf516565b8680613efb5750815b9650965050505050505b9250929050565b600080613f17613602565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401613f429190615a37565b604080518083038186803b158015613f5957600080fd5b505afa158015613f6d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120ac9190810190614f98565b6000670de0b6b3a7640000613fac848463ffffffff614a0a16565b81613fb357fe5b049392505050565b6000600160ff1b8210613fe05760405162461bcd60e51b815260040161069690615c98565b5090565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061402657fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015614065578160200160208202803883390190505b50905060005b83518110156140a75783818151811061408057fe5b602002602001015182828151811061409457fe5b602090810291909101015260010161406b565b5060005b825181101561208e578281815181106140c057fe5b60200260200101518282865101815181106140d757fe5b60209081029190910101526001016140ab565b60008060006140f884614140565b905060008061410961103d87613aa7565b92505091508260001415614125576000945092506120b1915050565b614135828463ffffffff613bf516565b945092505050915091565b6000610e0a61414d6149b9565b6001600160a01b0316628cc262846040518263ffffffff1660e01b81526004016141779190615944565b60206040518083038186803b15801561418f57600080fd5b505afa1580156141a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141c79190810190614ec2565b61386d6141d385614936565b61386d866147e9565b60006141f26141e96130ae565b61386d846141fb565b42101592915050565b60006142056145a4565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b856040516020016142419291906158f3565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401613adc929190615a53565b60008061429a766578743a41676772656761746f7244656274526174696f60481b612ec1565b90506000816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156142d757600080fd5b505afa1580156142eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061430f9190810190615092565b505050915050600061431f613602565b6001600160a01b031663045056f8620a69cb60eb1b6040518263ffffffff1660e01b81526004016143509190615a37565b606060405180830381600087803b15801561436a57600080fd5b505af115801561437e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143a29190810190614fb7565b509150506143ae614a44565b6001600160a01b031663413caeb584846040518363ffffffff1660e01b81526004016143db929190615988565b602060405180830381600087803b1580156143f557600080fd5b505af1158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061442d9190810190614e86565b806144355750805b935050505090565b8015610f595760405162461bcd60e51b815260040161069690615bc8565b6144636149b9565b6001600160a01b031663270fb338836040518263ffffffff1660e01b815260040161448e9190615944565b600060405180830381600087803b1580156144a857600080fd5b505af11580156144bc573d6000803e3d6000fd5b5050505060006144ca61341c565b905060006144d7836149d8565b90508061454357604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061450c9087908790600401615988565b600060405180830381600087803b15801561452657600080fd5b505af115801561453a573d6000803e3d6000fd5b50505050614571565b604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061092b9087908590600401615988565b50505050565b6000612ffd838363ffffffff614a6016565b6000610aa06c29bcb73a342932b232b2b6b2b960991b612ec1565b6000610aa06e466c657869626c6553746f7261676560881b612ec1565b6000806145e7846145db87600a870263ffffffff614a0a16565b9063ffffffff614a7516565b90506005600a825b06106145f957600a015b600a9004949350505050565b6000610aa07044656c6567617465417070726f76616c7360781b612ec1565b600061462e614274565b1561463b57506000614749565b828210614648578261464a565b815b9050614657858284613c4a565b631cd554d160e21b6000526005602052600080516020615e5283398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906146a69087908590600401615988565b600060405180830381600087803b1580156146c057600080fd5b505af11580156146d4573d6000803e3d6000fd5b505050506146e0612812565b6001600160a01b03166342c7b8196146f783613fbb565b6000036040518263ffffffff1660e01b81526004016147169190615a37565b600060405180830381600087803b15801561473057600080fd5b505af1158015614744573d6000803e3d6000fd5b505050505b949350505050565b600061475b6145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b815260040161305e929190615a53565b600082820183811015612ffd5760405162461bcd60e51b815260040161069690615b58565b6000612ffd838363ffffffff613bf516565b6000613ab1612652565b60008183106148025781612ffd565b5090919050565b6000612ffd826145db85670de0b6b3a764000063ffffffff614a0a16565b60006148316145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b74736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b815260040161305e929190615a53565b60006148916145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b69199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b815260040161305e929190615a53565b60006148e66145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b815260040161305e929190615a53565b6000613ab1614aaa565b600080600061494e866147e9565b905080614961868663ffffffff6147b216565b11614973575083915060009050614993565b6149878161394c878763ffffffff6147b216565b85935091506149939050565b935093915050565b6000806149a6612fa9565b509050612ffd838263ffffffff614ac616565b6000610aa0704c697175696461746f725265776172647360781b612ec1565b6000806149e3612fa9565b5090508015614a01576149fc838263ffffffff612fe416565b612ffd565b50600092915050565b600082614a1957506000610e0a565b82820282848281614a2657fe5b0414612ffd5760405162461bcd60e51b815260040161069690615c28565b6000610aa06d21b4b931bab4ba213932b0b5b2b960911b612ec1565b6000612ffd8383670de0b6b3a7640000614adb565b6000808211614a965760405162461bcd60e51b815260040161069690615ba8565b6000828481614aa157fe5b04949350505050565b6000610aa06d2932bbb0b93222b9b1b937bbab1960911b612ec1565b6000612ffd83836b033b2e3c9fd0803ce80000005b600080600a8304614af2868663ffffffff614a0a16565b81614af957fe5b0490506005600a826145ef565b815481835581811115610e5e57600083815260209020610e5e918101908301610aa391905b80821115613fe05760008155600101614b2b565b8035610e0a81615e10565b8051610e0a81615e10565b60008083601f840112614b6757600080fd5b50813567ffffffffffffffff811115614b7f57600080fd5b602083019150836020820283011115613f0557600080fd5b600082601f830112614ba857600080fd5b8151614bbb614bb682615d31565b615d0a565b91508181835260208401935060208101905083856020840282011115614be057600080fd5b60005b83811015614c0c5781614bf68882614c37565b8452506020928301929190910190600101614be3565b5050505092915050565b8035610e0a81615e24565b8051610e0a81615e24565b8035610e0a81615e2d565b8051610e0a81615e2d565b8035610e0a81615e36565b8051610e0a81615e36565b8035610e0a81615e3f565b8051610e0a81615e3f565b8051610e0a81615e48565b600060208284031215614c8b57600080fd5b60006147498484614b3f565b600060208284031215614ca957600080fd5b60006147498484614b4a565b60008060408385031215614cc857600080fd5b6000614cd48585614b3f565b9250506020614ce585828601614b3f565b9150509250929050565b600080600060608486031215614d0457600080fd5b6000614d108686614b3f565b9350506020614d2186828701614b3f565b9250506040614d3286828701614c2c565b9150509250925092565b60008060408385031215614d4f57600080fd5b6000614d5b8585614b3f565b9250506020614ce585828601614c16565b60008060408385031215614d7f57600080fd5b6000614d8b8585614b3f565b9250506020614ce585828601614c2c565b60008060008060808587031215614db257600080fd5b6000614dbe8787614b3f565b9450506020614dcf87828801614c2c565b9350506040614de087828801614c2c565b9250506060614df187828801614c2c565b91505092959194509250565b60008060208385031215614e1057600080fd5b823567ffffffffffffffff811115614e2757600080fd5b614e3385828601614b55565b92509250509250929050565b60008060408385031215614e5257600080fd5b825167ffffffffffffffff811115614e6957600080fd5b614e7585828601614b97565b9250506020614ce585828601614c21565b600060208284031215614e9857600080fd5b60006147498484614c21565b600060208284031215614eb657600080fd5b60006147498484614c2c565b600060208284031215614ed457600080fd5b60006147498484614c37565b600080600060608486031215614ef557600080fd5b6000614d108686614c2c565b60008060408385031215614f1457600080fd5b6000614d5b8585614c2c565b600060208284031215614f3257600080fd5b60006147498484614c42565b600060208284031215614f5057600080fd5b60006147498484614c4d565b600060208284031215614f6e57600080fd5b60006147498484614c58565b600060208284031215614f8c57600080fd5b60006147498484614c63565b60008060408385031215614fab57600080fd5b6000614e758585614c37565b600080600060608486031215614fcc57600080fd5b6000614fd88686614c37565b9350506020614fe986828701614c21565b9250506040614d3286828701614c21565b6000806000806080858703121561501057600080fd5b600061501c8787614c37565b945050602061502d87828801614c37565b935050604061503e87828801614c21565b9250506060614df187828801614c21565b60008060006060848603121561506457600080fd5b60006150708686614c37565b935050602061508186828701614c37565b9250506040614d3286828701614c37565b600080600080600060a086880312156150aa57600080fd5b60006150b68888614c6e565b95505060206150c788828901614c37565b94505060406150d888828901614c37565b93505060606150e988828901614c37565b92505060806150fa88828901614c6e565b9150509295509295909350565b6000615113838361527e565b505060200190565b60006151138383615298565b61513081615d6a565b82525050565b61513061514282615d6a565b615def565b60006151538385615d5c565b93506001600160fb1b0383111561516957600080fd5b60208302925061517a838584615db7565b50500190565b600061518b82615d58565b6151958185615d5c565b93506151a083615d52565b8060005b838110156151ce5781516151b88882615107565b97506151c383615d52565b9250506001016151a4565b509495945050505050565b60006151e482615d58565b6151ee8185615d5c565b93506151f983615d52565b8060005b838110156151ce578151615211888261511b565b975061521c83615d52565b9250506001016151fd565b600061523282615d58565b61523c8185615d5c565b935061524783615d52565b8060005b838110156151ce57815161525f8882615107565b975061526a83615d52565b92505060010161524b565b61513081615d75565b61513081610aa3565b61513061529382610aa3565b610aa3565b61513081615d7a565b61513081615dac565b60006152b582615d58565b6152bf8185615d5c565b93506152cf818560208601615dc3565b6152d881615e00565b9093019392505050565b60006152ef601883615d5c565b7f6f6e65206d69677261746f72206d757374206265203078300000000000000000815260200192915050565b6000615328603583615d5c565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061537f601483615d5c565b736f6e6c792074727573746564206d696e7465727360601b815260200192915050565b60006153af601d83615d5c565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b60006153e8601b83615d5c565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000615421601283615d5c565b714e6f206465627420746f20666f726769766560701b815260200192915050565b600061544f601083615d5c565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b600061547b601e83615d5c565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006154b4600e83615d5c565b6d09edcd8f240a6f2dce8d0cae8d2f60931b815260200192915050565b60006154de601a83615d5c565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000615517601183615d65565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000615544601083615d5c565b6f135d5cdd08189948199959481c1bdbdb60821b815260200192915050565b6000615570601e83615d5c565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b60006155a9601383615d5c565b721cde5b9d1a08191bd95cdb89dd08195e1a5cdd606a1b815260200192915050565b60006155d8601483615d5c565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b6000615608601883615d5c565b7f4e6f74206f70656e20666f72206c69717569646174696f6e0000000000000000815260200192915050565b6000615641602f83615d5c565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b600061569e601c83615d5c565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b60006156d7602183615d5c565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061571a601383615d5c565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b6000615749601283615d5c565b7127b7363c9029bcb73a342932b232b2b6b2b960711b815260200192915050565b6000615777601583615d5c565b7463616e6e6f7420697373756520302073796e74687360581b815260200192915050565b60006157a8601983615d65565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006157e1601683615d5c565b756f6e6c792074727573746564206d69677261746f727360501b815260200192915050565b6000615813600c83615d5c565b6b53796e74682065786973747360a01b815260200192915050565b600061583b601e83615d5c565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b6000615874602883615d5c565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b60006158be601a83615d5c565b7f43616e6e6f742072656d6f766520776974686f75742072617465000000000000815260200192915050565b61513081615d85565b60006158ff8285615287565b60208201915061590f8284615136565b5060140192915050565b60006159248261550a565b91506159308284615287565b50602001919050565b60006159248261579b565b60208101610e0a8284615127565b604081016159608285615127565b612ffd6020830184615127565b6040810161597b8285615127565b612ffd6020830184615275565b604081016159968285615127565b612ffd602083018461527e565b608081016159b18287615127565b6159be602083018661527e565b6159cb604083018561527e565b6159d8606083018461527e565b95945050505050565b604080825281016159f3818587615147565b905081810360208301526159d88184615227565b60208082528101612ffd8184615180565b60208082528101612ffd81846151d9565b60208101610e0a8284615275565b60208101610e0a828461527e565b60408101615960828561527e565b60408101615996828561527e565b60608101615a6f828661527e565b615a7c602083018561527e565b614749604083018461527e565b60408101615a97828561527e565b612ffd60208301846152a1565b60408101615ab2828561527e565b818103602083015261474981846152aa565b60608101615ad2828561527e565b615adf602083018461527e565b612ffd60408301615685565b60208101610e0a8284615298565b604081016159968285615298565b60208082528101612ffd81846152aa565b60208082528101610e0a816152e2565b60208082528101610e0a8161531b565b60208082528101610e0a81615372565b60208082528101610e0a816153a2565b60208082528101610e0a816153db565b60208082528101610e0a81615414565b60208082528101610e0a81615442565b60208082528101610e0a8161546e565b60208082528101610e0a816154a7565b60208082528101610e0a816154d1565b60208082528101610e0a81615537565b60208082528101610e0a81615563565b60208082528101610e0a8161559c565b60208082528101610e0a816155cb565b60208082528101610e0a816155fb565b60208082528101610e0a81615634565b60208082528101610e0a81615691565b60208082528101610e0a816156ca565b60208082528101610e0a8161570d565b60208082528101610e0a8161573c565b60208082528101610e0a8161576a565b60208082528101610e0a816157d4565b60208082528101610e0a81615806565b60208082528101610e0a8161582e565b60208082528101610e0a81615867565b60208082528101610e0a816158b1565b60208101610e0a82846158ea565b6040810161597b828561527e565b60608101615ce2828661527e565b615cef602083018561527e565b6147496040830184615275565b608081016159b1828761527e565b60405181810167ffffffffffffffff81118282101715615d2957600080fd5b604052919050565b600067ffffffffffffffff821115615d4857600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000610e0a82615d91565b151590565b6000610e0a82615d6a565b6001600160801b031690565b6001600160a01b031690565b69ffffffffffffffffffff1690565b6000610e0a82610aa3565b82818337506000910152565b60005b83811015615dde578181015183820152602001615dc6565b838111156145715750506000910152565b6000610e0a826000610e0a82615e0a565b601f01601f191690565b60601b90565b615e1981615d6a565b8114610f5957600080fd5b615e1981615d75565b615e1981610aa3565b615e1981615d7a565b615e1981615d85565b615e1981615d9d56fe74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa365627a7a72315820160805ca78bb540916fefaeb9c5060d6b370e423bfb95c7cb75099eaad4f23326c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "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": "anySynthOrSNXRateIsInvalid",
					"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": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountOfSynth",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amountInsUSD",
							"type": "uint256"
						}
					],
					"name": "burnAndIssueSynthsWithoutDebtCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"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": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynthsWithoutDebt",
					"outputs": [
						{
							"internalType": "bool",
							"name": "rateInvalid",
							"type": "bool"
						}
					],
					"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": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynthsWithoutDebt",
					"outputs": [
						{
							"internalType": "bool",
							"name": "rateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"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": "bool",
							"name": "isSelfLiquidation",
							"type": "bool"
						}
					],
					"name": "liquidateAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRedeemed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtRemoved",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "escrowToLiquidate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "isSelfLiquidation",
							"type": "bool"
						}
					],
					"name": "liquidationAmounts",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRedeemed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtToRemove",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "escrowToLiquidate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "initialDebtBalance",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"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": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "modifyDebtSharesForMigration",
					"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": [],
					"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": 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": "transferableSynthetixAndAnyRateIsInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x122394906d88b596f09642fb03cdb2d4b798a65cf4280cecbccc0279ba67b3a2",
				"urls": [
					"bzz-raw://989df6d3f973b22ac2c8b4232fd4b6fba610ab16a851fca30d29c9994cf3c005",
					"dweb:/ipfs/QmWX6D3UsevETnyMxxtz3Aw3sBfqms7qcpkfpuiHpq2bNx"
				]
			},
			"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": "0x122394906d88b596f09642fb03cdb2d4b798a65cf4280cecbccc0279ba67b3a2",
						"urls": [
							"bzz-raw://989df6d3f973b22ac2c8b4232fd4b6fba610ab16a851fca30d29c9994cf3c005",
							"dweb:/ipfs/QmWX6D3UsevETnyMxxtz3Aw3sBfqms7qcpkfpuiHpq2bNx"
						]
					}
				},
				"version": 1
			}
		},
		"TradingRewards": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200271b3803806200271b83398101604081905262000034916200016e565b600160005580836001600160a01b0381166200006d5760405162461bcd60e51b81526004016200006490620002cd565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383161790556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90620000bd90600090849062000283565b60405180910390a1506001546001600160a01b0316620000f15760405162461bcd60e51b81526004016200006490620002bb565b60048054610100600160a81b0319166101006001600160a01b03938416021790558216620001335760405162461bcd60e51b81526004016200006490620002a9565b50600a80546001600160a01b0319166001600160a01b03929092169190911790555062000328565b805162000168816200030e565b92915050565b6000806000606084860312156200018457600080fd5b60006200019286866200015b565b9350506020620001a5868287016200015b565b9250506040620001b8868287016200015b565b9150509250925092565b620001cd81620002fa565b82525050565b620001cd81620002e8565b6000620001ed601983620002df565b7f496e76616c696420706572696f6420636f6e74726f6c6c657200000000000000815260200192915050565b600062000228601183620002df565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b600062000257601983620002df565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620002938285620001c2565b620002a26020830184620001d3565b9392505050565b602080825281016200016881620001de565b60208082528101620001688162000219565b60208082528101620001688162000248565b90815260200190565b60006001600160a01b03821662000168565b6000620001688260006200016882620002e8565b6200031981620002e8565b81146200032557600080fd5b50565b6123e380620003386000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80636fe4136b11610125578063ae934a7a116100ad578063dea021a51161007c578063dea021a5146103fa578063f32ffd6914610402578063f61f5df614610415578063f6b5847914610428578063fc9c99ac1461043b57610211565b8063ae934a7a146103c1578063b225dbaa146103d4578063ccb6e04314610297578063ce7fccba146103e757610211565b8063899ffef4116100f4578063899ffef4146103815780638da5cb5b1461039657806391b4ded91461039e578063937ffb8f146103a65780639865fdb7146103b957610211565b80636fe4136b14610356578063706848d21461035e578063741853601461037157806379ba50971461037957610211565b806321cad774116101a85780633dbf12fa116101775780633dbf12fa1461030b5780633fc6df6e1461031e57806353a47bb71461033357806355aa41bf1461033b5780635c975abb1461034e57610211565b806321cad774146102ca5780632af64bd3146102dd57806338dfa8cf146102e55780633c6b16ab146102f857610211565b806316841952116101e4578063168419521461027157806316c38b3c14610284578063175c51891461029757806319762143146102b757610211565b806304f3bcec14610216578063056097ac14610234578063086146d2146102495780631627540c1461025e575b600080fd5b61021e610443565b60405161022b9190612178565b60405180910390f35b6102476102423660046117fd565b610457565b005b6102516105a8565b60405161022b919061213c565b61024761026c3660046117b9565b6105af565b61024761027f36600461193b565b61060d565b6102476102923660046118ff565b6107b9565b6102aa6102a536600461193b565b61082e565b60405161022b919061212e565b6102476102c53660046117b9565b610843565b6102476102d8366004611977565b61086d565b6102aa610960565b6102476102f33660046117b9565b610a7d565b61024761030636600461193b565b61082b565b6102476103193660046117b9565b610bcf565b610326610c48565b60405161022b9190612096565b610326610c57565b61025161034936600461193b565b610c66565b6102aa610c7b565b610326610c84565b61025161036c36600461193b565b610c93565b610247610ca8565b610247610dfe565b610389610e9a565b60405161022b919061211d565b610326610f09565b610251610f18565b6102516103b436600461193b565b610f1e565b610251610f33565b6102476103cf36600461188d565b610fca565b6102476103e236600461193b565b6110b1565b6102516103f536600461188d565b61110a565b61032661111f565b6102476104103660046118bd565b61112e565b61025161042336600461188d565b6111b8565b610251610436366004611837565b6111e3565b610251611233565b60045461010090046001600160a01b031681565b61045f611239565b61046881611265565b6104706112a0565b6001600160a01b0316826001600160a01b031614156104aa5760405162461bcd60e51b81526004016104a1906122c7565b60405180910390fd5b6040516370a0823160e01b815282906000906001600160a01b038316906370a08231906104db903090600401612096565b60206040518083038186803b1580156104f357600080fd5b505afa158015610507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061052b9190810190611959565b90506000811161054d5760405162461bcd60e51b81526004016104a190612297565b6105676001600160a01b038316848363ffffffff6112b716565b7f401f439d865a766757ec78675925bd67198d5e78805aa41691b34b5d6a6cbbe684848360405161059a939291906120bf565b60405180910390a150505050565b6007545b90565b6105b7611239565b600280546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610602908390612096565b60405180910390a150565b600a546001600160a01b031633146106375760405162461bcd60e51b81526004016104a1906122e7565b60006106416112a0565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161066c9190612096565b60206040518083038186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106bc9190810190611959565b905060006106d56008548361131090919063ffffffff16565b9050808311156106f75760405162461bcd60e51b81526004016104a190612277565b60075460009081526009602052604090206002810184905560038101849055805460ff19166001178155600854610734908563ffffffff61133816565b6008556007546040517ffa0492b63d7120c62ccb8708eb597813e6968a23d09adac98d54dd0085cb264f9161076a9187906122f7565b60405180910390a160075461078690600163ffffffff61133816565b60078190556040517f4368a9298adc0e57eceb11d0ef07022051a2feb5985d832be0764cde9a2307329161059a9161213c565b6107c1611239565b60045460ff16151581151514156107d75761082b565b6004805460ff1916821515179081905560ff16156107f457426003555b6004546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916106029160ff9091169061212e565b50565b60009081526009602052604090205460ff1690565b61084b611239565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b61087561135d565b6001600160a01b0316336001600160a01b0316146108a55760405162461bcd60e51b81526004016104a1906121b7565b60075460009081526009602090815260408083206001600160a01b038516845260048101909252909120546108e0908463ffffffff61133816565b6001600160a01b03831660009081526004830160205260409020556001810154610910908463ffffffff61133816565b60018201556007546040516001600160a01b038416917f927be3e95451b16be3f4586524834dfffa10e6f9ee4c1e26fe3c46140fbbf866916109539187916122f7565b60405180910390a2505050565b6000606061096c610e9a565b905060005b8151811015610a7457600082828151811061098857fe5b60209081029190910181015160008181526005909252604091829020546004805493516321f8a72160e01b81529294506001600160a01b03918216936101009004909116916321f8a721916109df9186910161213c565b60206040518083038186803b1580156109f757600080fd5b505afa158015610a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a2f91908101906117df565b6001600160a01b0316141580610a5a57506000818152600560205260409020546001600160a01b0316155b15610a6b57600093505050506105ac565b50600101610971565b50600191505090565b610a85611239565b610a8e81611265565b6000610a986112a0565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610ac39190612096565b60206040518083038186803b158015610adb57600080fd5b505afa158015610aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b139190810190611959565b905060008111610b355760405162461bcd60e51b81526004016104a190612297565b6000610b4c6008548361131090919063ffffffff16565b905060008111610b6e5760405162461bcd60e51b81526004016104a190612297565b610b918382610b7b6112a0565b6001600160a01b0316919063ffffffff6112b716565b7f14e7312259d4851b8b6742ace55ac44b31d7929a6b2998b35ba22445859e5ee38382604051610bc29291906120e7565b60405180910390a1505050565b610bd7611239565b6001600160a01b038116610bfd5760405162461bcd60e51b81526004016104a190612287565b600a80546001600160a01b0319166001600160a01b0383161790556040517fb81e5409e39d3d3d85951a2af3563e484cfe2e7b4af2500a0ecbe14035a9bddc90610602908390612096565b6006546001600160a01b031681565b6002546001600160a01b031681565b60009081526009602052604090206001015490565b60045460ff1681565b6000610c8e6112a0565b905090565b60009081526009602052604090206003015490565b6060610cb2610e9a565b905060005b8151811015610dfa576000828281518110610cce57fe5b602002602001015190506000600460019054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d10919061208b565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d3c929190612158565b60206040518083038186803b158015610d5457600080fd5b505afa158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d8c91908101906117df565b6000838152600560205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610de8908490849061214a565b60405180910390a15050600101610cb7565b5050565b6002546001600160a01b03163314610e285760405162461bcd60e51b81526004016104a1906121a7565b6001546002546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610e6b926001600160a01b03918216929116906120a4565b60405180910390a160028054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60408051600280825260608083018452926020830190803883390190505090506822bc31b430b733b2b960b91b81600081518110610ed457fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b81600181518110610efa57fe5b60200260200101818152505090565b6001546001600160a01b031681565b60035481565b60009081526009602052604090206002015490565b6000610c8e600854610f436112a0565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610f6e9190612096565b60206040518083038186803b158015610f8657600080fd5b505afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fbe9190810190611959565b9063ffffffff61131016565b610fd2611239565b610fdb82611265565b6007548110610ffc5760405162461bcd60e51b81526004016104a190612257565b6000818152600960205260409020600381015461102b5760405162461bcd60e51b81526004016104a1906121d7565b600381015461103d8482610b7b6112a0565b600854611050908263ffffffff61131016565b600855600083815260096020526040808220805460ff19168155600181018390556002810183905560030191909155517f60f2caebb6d06055322fce1f0db429f6bc0a48534c8c9ba42359a80f36bb7f0c9061059a90869084908790612102565b600080546001019081905560045460ff16156110df5760405162461bcd60e51b81526004016104a190612267565b6110e93383611374565b6000548114610dfa5760405162461bcd60e51b81526004016104a1906122b7565b60006111168383611472565b90505b92915050565b600a546001600160a01b031690565b600080546001019081905560045460ff161561115c5760405162461bcd60e51b81526004016104a190612267565b60005b8281101561119157600084848381811061117557fe5b9050602002013590506111883382611374565b5060010161115f565b5060005481146111b35760405162461bcd60e51b81526004016104a1906122b7565b505050565b60009081526009602090815260408083206001600160a01b0394909416835260049093019052205490565b6000805b8281101561122b5760008484838181106111fd57fe5b9050602002013590506112206112138783611472565b849063ffffffff61133816565b9250506001016111e7565b509392505050565b60085490565b6001546001600160a01b031633146112635760405162461bcd60e51b81526004016104a190612227565b565b6001600160a01b038116158061128357506001600160a01b03811630145b1561082b5760405162461bcd60e51b81526004016104a190612197565b6000610c8e680a6f2dce8d0cae8d2f60bb1b611516565b6040516111b390849063a9059cbb60e01b906112d990869086906024016120e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261157a565b6000828211156113325760405162461bcd60e51b81526004016104a1906121f7565b50900390565b6000828201838110156111165760405162461bcd60e51b81526004016104a1906121c7565b6000610c8e6822bc31b430b733b2b960b91b611516565b6000818152600960205260409020805460ff166113a35760405162461bcd60e51b81526004016104a190612217565b60006113af8484611472565b9050600081116113d15760405162461bcd60e51b81526004016104a190612237565b6001600160a01b03841660009081526004830160205260408120556003820154611401908263ffffffff61131016565b6003830155600854611419908263ffffffff61131016565b6008556114298482610b7b6112a0565b836001600160a01b03167fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e32582856040516114649291906122f7565b60405180910390a250505050565b60008181526009602052604081206003810154158061149357506001810154155b806114a05750805460ff16155b156114af576000915050611119565b6001600160a01b0384166000908152600482016020526040902054806114da57600092505050611119565b60006114f383600101548361166590919063ffffffff16565b905061150c83600201548261168f90919063ffffffff16565b9695505050505050565b60008181526005602090815260408083205490516001600160a01b0390911691821515916115469186910161206b565b604051602081830303815290604052906115735760405162461bcd60e51b81526004016104a19190612186565b5092915050565b61158c826001600160a01b03166116b9565b6115a85760405162461bcd60e51b81526004016104a1906122d7565b60006060836001600160a01b0316836040516115c49190612058565b6000604051808303816000865af19150503d8060008114611601576040519150601f19603f3d011682016040523d82523d6000602084013e611606565b606091505b5091509150816116285760405162461bcd60e51b81526004016104a1906121e7565b80511561165f5780806020019051611643919081019061191d565b61165f5760405162461bcd60e51b81526004016104a1906122a7565b50505050565b60006111168261168385670de0b6b3a764000063ffffffff6116bf16565b9063ffffffff6116f916565b6000670de0b6b3a76400006116aa848463ffffffff6116bf16565b816116b157fe5b049392505050565b3b151590565b6000826116ce57506000611119565b828202828482816116db57fe5b04146111165760405162461bcd60e51b81526004016104a190612247565b600080821161171a5760405162461bcd60e51b81526004016104a190612207565b600082848161172557fe5b04949350505050565b80356111198161237a565b80516111198161237a565b60008083601f84011261175657600080fd5b50813567ffffffffffffffff81111561176e57600080fd5b60208301915083602082028301111561178657600080fd5b9250929050565b80356111198161238e565b80516111198161238e565b803561111981612397565b805161111981612397565b6000602082840312156117cb57600080fd5b60006117d7848461172e565b949350505050565b6000602082840312156117f157600080fd5b60006117d78484611739565b6000806040838503121561181057600080fd5b600061181c858561172e565b925050602061182d8582860161172e565b9150509250929050565b60008060006040848603121561184c57600080fd5b6000611858868661172e565b935050602084013567ffffffffffffffff81111561187557600080fd5b61188186828701611744565b92509250509250925092565b600080604083850312156118a057600080fd5b60006118ac858561172e565b925050602061182d858286016117a3565b600080602083850312156118d057600080fd5b823567ffffffffffffffff8111156118e757600080fd5b6118f385828601611744565b92509250509250929050565b60006020828403121561191157600080fd5b60006117d7848461178d565b60006020828403121561192f57600080fd5b60006117d78484611798565b60006020828403121561194d57600080fd5b60006117d784846117a3565b60006020828403121561196b57600080fd5b60006117d784846117ae565b6000806040838503121561198a57600080fd5b600061181c85856117a3565b60006119a28383611a1b565b505060200190565b6119b38161231d565b82525050565b60006119c48261230b565b6119ce818561230f565b93506119d983612305565b8060005b83811015611a075781516119f18882611996565b97506119fc83612305565b9250506001016119dd565b509495945050505050565b6119b381612328565b6119b3816105ac565b6119b3611a30826105ac565b6105ac565b6000611a408261230b565b611a4a8185612318565b9350611a5a818560208601612344565b9290920192915050565b6119b381612339565b6000611a788261230b565b611a82818561230f565b9350611a92818560208601612344565b611a9b81612370565b9093019392505050565b6000611ab260178361230f565b7f496e76616c6964207265636f7665722061646472657373000000000000000000815260200192915050565b6000611aeb60358361230f565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000611b42601e8361230f565b7f4f6e6c792045786368616e6765722063616e20696e766f6b6520746869730000815260200192915050565b6000611b7b601b8361230f565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611bb4601f8361230f565b7f4e6f207265776172647320617661696c61626c6520746f207265636f76657200815260200192915050565b6000611bed60208361230f565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000611c26601e8361230f565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611c5f601a8361230f565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611c98601183612318565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611cc560178361230f565b7f506572696f64206973206e6f742066696e616c697a6564000000000000000000815260200192915050565b6000611cfe602f8361230f565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000611d4f60148361230f565b734e6f207265776172647320617661696c61626c6560601b815260200192915050565b6000611d7f60218361230f565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000611dc2601a8361230f565b7f43616e6e6f74207265636f7665722066726f6d20616374697665000000000000815260200192915050565b6000611dfb603c8361230f565b7f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642081527f7768696c652074686520636f6e74726163742069732070617573656400000000602082015260400192915050565b6000611e5a601983612318565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000611e9360198361230f565b7f496e73756666696369656e742066726565207265776172647300000000000000815260200192915050565b6000611ecc60198361230f565b7f496e76616c696420706572696f6420636f6e74726f6c6c657200000000000000815260200192915050565b6000611f0560148361230f565b732737903a37b5b2b739903a37903932b1b7bb32b960611b815260200192915050565b6000611f35602a8361230f565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000611f81601f8361230f565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b6000611fba60198361230f565b7f4d7573742075736520616e6f746865722066756e6374696f6e00000000000000815260200192915050565b6000611ff3601f8361230f565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b600061202c601c8361230f565b7f43616c6c6572206e6f7420706572696f6420636f6e74726f6c6c657200000000815260200192915050565b60006120648284611a35565b9392505050565b600061207682611c8b565b91506120828284611a24565b50602001919050565b600061207682611e4d565b6020810161111982846119aa565b604081016120b282856119aa565b61206460208301846119aa565b606081016120cd82866119aa565b6120da60208301856119aa565b6117d76040830184611a1b565b604081016120f582856119aa565b6120646020830184611a1b565b6060810161211082866119aa565b6120da6020830185611a1b565b6020808252810161111681846119b9565b602081016111198284611a12565b602081016111198284611a1b565b604081016120b28285611a1b565b604081016121668285611a1b565b81810360208301526117d78184611a6d565b602081016111198284611a64565b602080825281016111168184611a6d565b6020808252810161111981611aa5565b6020808252810161111981611ade565b6020808252810161111981611b35565b6020808252810161111981611b6e565b6020808252810161111981611ba7565b6020808252810161111981611be0565b6020808252810161111981611c19565b6020808252810161111981611c52565b6020808252810161111981611cb8565b6020808252810161111981611cf1565b6020808252810161111981611d42565b6020808252810161111981611d72565b6020808252810161111981611db5565b6020808252810161111981611dee565b6020808252810161111981611e86565b6020808252810161111981611ebf565b6020808252810161111981611ef8565b6020808252810161111981611f28565b6020808252810161111981611f74565b6020808252810161111981611fad565b6020808252810161111981611fe6565b602080825281016111198161201f565b604081016120f58285611a1b565b60200190565b5190565b90815260200190565b919050565b60006111198261232d565b151590565b6001600160a01b031690565b60006111198261231d565b60005b8381101561235f578181015183820152602001612347565b8381111561165f5750506000910152565b601f01601f191690565b6123838161231d565b811461082b57600080fd5b61238381612328565b612383816105ac56fea365627a7a723158206ff54c021a0f3be39b406bb31cfa190eb56ae8b51a8c018a047f0a8f0a9ee0c56c6578706572696d656e74616cf564736f6c63430005100040",
			"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": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reward",
							"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": 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": true,
					"inputs": [],
					"name": "rewardsDistribution",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"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"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_rewardsDistribution",
							"type": "address"
						}
					],
					"name": "setRewardsDistribution",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd6fe3b279f92c72218eb9640dd6b98d40a742da1b3fff0153b013cc069e5119e",
				"urls": [
					"bzz-raw://5a789e4fc22959fc939b060e0772091a961354b180c39ca73ca1158d5505ff56",
					"dweb:/ipfs/QmXrJZXQ5FdjiLaN7KHh9VWCmnDfN9UorjLAQnkHk6Hebo"
				]
			},
			"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": "0xd6fe3b279f92c72218eb9640dd6b98d40a742da1b3fff0153b013cc069e5119e",
						"urls": [
							"bzz-raw://5a789e4fc22959fc939b060e0772091a961354b180c39ca73ca1158d5505ff56",
							"dweb:/ipfs/QmXrJZXQ5FdjiLaN7KHh9VWCmnDfN9UorjLAQnkHk6Hebo"
						]
					}
				},
				"version": 1
			}
		},
		"SupplySchedule": {
			"bytecode": "608060405268056bc75e2d631000006004556a027b46536c66c8e300000060065534801561002c57600080fd5b50604051610cb8380380610cb88339818101604052606081101561004f57600080fd5b5080516020820151604090920151909190826001600160a01b0381166100bc576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15060029190915560035550610b8a8061012e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80637e1b823f116100c3578063bdd124821161007c578063bdd12482146102ae578063be801f01146102b6578063cc5c095c146102be578063d3bd4bde146102c6578063dbd3a6a7146102ce578063df5a9fc1146102d65761014d565b80637e1b823f1461024b5780637e7961d7146102535780638da5cb5b1461027057806395896b76146102785780639bdd7ac71461029e578063a43ab48e146102a65761014d565b80634ae26521116101155780634ae26521146101d557806353a47bb7146101f2578063614d08f8146102165780636f33e7e11461021e5780637397ab6c1461022657806379ba5097146102435761014d565b80631627540c1461015257806322af2bab1461017a57806325a3746e1461019457806346872a23146101b157806346b45af7146101b9575b600080fd5b6101786004803603602081101561016857600080fd5b50356001600160a01b03166102de565b005b61018261033a565b60408051918252519081900360200190f35b610178600480360360208110156101aa57600080fd5b5035610347565b6101826103e1565b6101c16103e8565b604080519115158252519081900360200190f35b610178600480360360208110156101eb57600080fd5b5035610408565b6101fa610493565b604080516001600160a01b039092168252519081900360200190f35b6101826104a2565b6101826104b7565b6101786004803603602081101561023c57600080fd5b50356104bd565b610178610502565b6101826105be565b6101826004803603602081101561026957600080fd5b50356105c6565b6101fa610734565b6101786004803603602081101561028e57600080fd5b50356001600160a01b0316610743565b6101826107f6565b6101826107fc565b6101fa610802565b610182610811565b610182610817565b61018261084d565b610182610853565b6101826108a2565b6102e66108a9565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b680ad78ebc5ac620000081565b61034f6108a9565b6006548111156103a6576040805162461bcd60e51b815260206004820152601e60248201527f416d6f756e742061626f7665206d6178696d756d20696e666c6174696f6e0000604482015290519081900360640190fd5b60058190556040805182815290517f297a8f497249a00f95e5f63b91fe72db09907e46dba60ec5e4f6397056709a669181900360200190a150565b6201518081565b600062093a806002544203111561040157506001610405565b5060005b90565b6104106108a9565b680ad78ebc5ac62000008111156104585760405162461bcd60e51b8152600401808060200182810382526026815260200180610b306026913960400191505060405180910390fd5b60048190556040805182815290517f036e0c635f8b7d9314bb6f2a577046108ef0f8b5e3869fbd29fd5a448ed99d309181900360200190a150565b6001546001600160a01b031681565b6d537570706c795363686564756c6560901b81565b60055481565b6104c56108a9565b600681905560055460408051918252517f6a653dcb129ba34c380e770610eeb3b16e0318f91bf2a3cab0283b529086093b9181900360200190a150565b6001546001600160a01b0316331461054b5760405162461bcd60e51b8152600401808060200182810382526035815260200180610a786035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b635c7f0d8081565b60075460408051636a5c1cc960e11b815290516000926001600160a01b03169163d4b83992916004808301926020929190829003018186803b15801561060b57600080fd5b505afa15801561061f573d6000803e3d6000fd5b505050506040513d602081101561063557600080fd5b50516001600160a01b0316331461067d5760405162461bcd60e51b8152600401808060200182810382526033815260200180610afd6033913960400191505060405180910390fd5b6000610687610853565b60035490915061069d908263ffffffff6108f416565b60038190556106df9062015180906106d3906106c29062093a8063ffffffff61095716565b635c7f0d809063ffffffff6108f416565b9063ffffffff6108f416565b6002819055604080518581526020810184905280820192909252426060830152517f601e517d4811033fed8290c79b7823ce1ab70258da45400fe2391a3c7432edab9181900360800190a15050600454919050565b6000546001600160a01b031681565b61074b6108a9565b6001600160a01b03811661079c576040805162461bcd60e51b81526020600482015260136024820152720416464726573732063616e6e6f74206265203606c1b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517ff8df0556b7fde3c4b8394eae329aedfa59c6ffd8b532d572a1efcfa3424ca5fc916020908290030190a150565b60045481565b60065481565b6007546001600160a01b031681565b60025481565b6000806108226103e8565b61082d579050610405565b610847610838610853565b6005549063ffffffff61095716565b91505090565b60035481565b6000806000600254116108795761087442635c7f0d8063ffffffff6109b016565b61088d565b60025461088d90429063ffffffff6109b016565b90506108478162093a8063ffffffff610a0d16565b62093a8081565b6000546001600160a01b031633146108f25760405162461bcd60e51b815260040180806020018281038252602f815260200180610aad602f913960400191505060405180910390fd5b565b60008282018381101561094e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008261096657506000610951565b8282028284828161097357fe5b041461094e5760405162461bcd60e51b8152600401808060200182810382526021815260200180610adc6021913960400191505060405180910390fd5b600082821115610a07576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610a63576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610a6e57fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6e6c79207468652073796e74686574697820636f6e74726163742063616e20706572666f726d207468697320616374696f6e5265776172642063616e6e6f7420657863656564206d6178206d696e74657220726577617264a265627a7a723158209fdf3e8322501b61fbda4dc885cb2d670559054b06a38cec687dab0574da1ccc64736f6c63430005100032",
			"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": "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"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newAddress",
							"type": "address"
						}
					],
					"name": "SynthetixProxyUpdated",
					"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": "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 ISynthetix",
							"name": "_synthetixProxy",
							"type": "address"
						}
					],
					"name": "setSynthetixProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthetixProxy",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"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": "0x55d110859c3cdf12f04ae0dd42c05f0f67e8c64d2148abb294704d199e08c701",
				"urls": [
					"bzz-raw://8f30284e329411fedc58c6b3067c82951ad96597111915ba6adcdfd4e2cad765",
					"dweb:/ipfs/QmQENgTBWfKL7E4rNK69wrpFzvdRZF9MvwpAUWZbktuFdB"
				]
			},
			"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": "0x55d110859c3cdf12f04ae0dd42c05f0f67e8c64d2148abb294704d199e08c701",
						"urls": [
							"bzz-raw://8f30284e329411fedc58c6b3067c82951ad96597111915ba6adcdfd4e2cad765",
							"dweb:/ipfs/QmQENgTBWfKL7E4rNK69wrpFzvdRZF9MvwpAUWZbktuFdB"
						]
					}
				},
				"version": 1
			}
		},
		"EscrowChecker": {
			"bytecode": "608060405234801561001057600080fd5b506040516103173803806103178339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556102b2806100656000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063449d0eb11461003b5780639514c2321461009a575b600080fd5b6100616004803603602081101561005157600080fd5b50356001600160a01b03166100be565b604051808261020080838360005b8381101561008757818101518382015260200161006f565b5050505090500191505060405180910390f35b6100a2610231565b604080516001600160a01b039092168252519081900360200190f35b6100c6610240565b6100ce610240565b6000805460408051631025b3b560e11b81526001600160a01b0387811660048301529151919092169163204b676a916024808301926020929190829003018186803b15801561011c57600080fd5b505afa158015610130573d6000803e3d6000fd5b505050506040513d602081101561014657600080fd5b5051905060005b818110156102285761015d61025f565b6000546040805163da7bd3e960e01b81526001600160a01b03898116600483015260248201869052825193169263da7bd3e992604480840193919291829003018186803b1580156101ad57600080fd5b505afa1580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156101e657600080fd5b5080519091508460028402601081106101fb57fe5b6020020152806001602002015184836002026001016010811061021a57fe5b60200201525060010161014d565b50909392505050565b6000546001600160a01b031681565b6040518061020001604052806010906020820280388339509192915050565b6040518060400160405280600290602082028038833950919291505056fea265627a7a723158207851a7b9a82fd84d6d276bdde02ef661e2d2d59cabd3121f61b28890564bdd4e64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract ISynthetixEscrow",
							"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": "synthetix_escrow",
					"outputs": [
						{
							"internalType": "contract ISynthetixEscrow",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x197a1e47afa45c0a50e8d849e401af49333b6fb34ff383c9801c5ff2d0ad433f",
				"urls": [
					"bzz-raw://160417ac172053483507051ef1d36355a76b3cd23a3d90b66f10c0979f2ae79a",
					"dweb:/ipfs/QmRwuxfWV2XdP2P8duoN6MjAejk1HkXS5HcE9XB8TA9xTo"
				]
			},
			"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": "0x197a1e47afa45c0a50e8d849e401af49333b6fb34ff383c9801c5ff2d0ad433f",
						"urls": [
							"bzz-raw://160417ac172053483507051ef1d36355a76b3cd23a3d90b66f10c0979f2ae79a",
							"dweb:/ipfs/QmRwuxfWV2XdP2P8duoN6MjAejk1HkXS5HcE9XB8TA9xTo"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixBridgeToOptimism": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200394a3803806200394a83398101604081905262000034916200010d565b81818080836001600160a01b0381166200006b5760405162461bcd60e51b81526004016200006290620001c9565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b8918490620001a3565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550506004805460ff191660011790555062000224915050565b805162000107816200020a565b92915050565b600080604083850312156200012157600080fd5b60006200012f8585620000fa565b92505060206200014285828601620000fa565b9150509250929050565b6200015781620001f6565b82525050565b6200015781620001e4565b600062000177601983620001db565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001b382856200014c565b620001c260208301846200015d565b9392505050565b60208082528101620001078162000168565b90815260200190565b60006001600160a01b03821662000107565b6000620001078260006200010782620001e4565b6200021581620001e4565b81146200022157600080fd5b50565b61371680620002346000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063698a26b2116100de578063a18e230711610097578063b9958ab811610071578063b9958ab8146102cf578063bb91f6a3146102e2578063f4f7b41a146102ea578063ffaad6a5146102fd57610173565b8063a18e230714610296578063a6492fe2146102a9578063b6b55f25146102bc57610173565b8063698a26b21461024e578063741853601461025657806379ba50971461025e578063899ffef4146102665780638da5cb5b1461027b5780639a9e7f961461028357610173565b80633c6b16ab116101305780633c6b16ab146101e3578063462286d5146101f65780634873966f1461020957806353a47bb71461021c5780635aba32ae14610231578063614d08f81461024657610173565b806304f3bcec14610178578063100be6d4146101965780631627540c146101ab5780631e2720ff146101c05780632af64bd3146101d35780633872dda3146101db575b600080fd5b610180610310565b60405161018d9190613440565b60405180910390f35b61019e61031f565b60405161018d9190613384565b6101be6101b9366004612765565b610328565b005b6101be6101ce366004612934565b610386565b61019e61042c565b6101be610544565b6101be6101f1366004612934565b6105ac565b6101be610204366004612765565b610620565b6101be6102173660046128e7565b6106c3565b61022461094e565b60405161018d919061325a565b61023961095d565b60405161018d9190613392565b610239610974565b6101be610998565b6101be6109fb565b6101be610b4d565b61026e610be9565b60405161018d9190613373565b610224610ce7565b6101be6102913660046127e3565b610cf6565b6101be6102a4366004612970565b610d0f565b6101be6102b73660046128e7565b610d3f565b6101be6102ca366004612934565b610e2a565b6101be6102dd366004612a00565b610e44565b610239610f92565b6101be6102f83660046127a9565b610fa4565b6101be61030b3660046127a9565b611082565b6002546001600160a01b031681565b60045460ff1681565b61033061109c565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061037b90839061325a565b60405180910390a150565b61038e6110c8565b6103966110ea565b6001600160a01b03166323b872dd336103ad611101565b846040518463ffffffff1660e01b81526004016103cc93929190613268565b602060405180830381600087803b1580156103e657600080fd5b505af11580156103fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061041e91908101906128c9565b506104293382611124565b50565b60006060610438610be9565b905060005b815181101561053a57600082828151811061045457fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906104a5908590600401613392565b60206040518083038186803b1580156104bd57600080fd5b505afa1580156104d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104f5919081019061278b565b6001600160a01b031614158061052057506000818152600360205260409020546001600160a01b0316155b156105315760009350505050610541565b5060010161043d565b5060019150505b90565b61054c61109c565b60045460ff166105775760405162461bcd60e51b815260040161056e9061348f565b60405180910390fd5b6004805460ff191690556040517f43e00f2c8f8651a29db34d34fb689573423f8aaae8f9d32e3e871b4c35c6254690600090a1565b6105b461123a565b6001600160a01b0316336001600160a01b0316146105e45760405162461bcd60e51b815260040161056e9061355f565b6105ec6110ea565b6001600160a01b031663a9059cbb610602611101565b836040518363ffffffff1660e01b81526004016103cc929190613358565b806106bf61062c611101565b6040516370a0823160e01b81526001600160a01b038416906370a082319061065890309060040161325a565b60206040518083038186803b15801561067057600080fd5b505afa158015610684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106a89190810190612952565b6001600160a01b038416919063ffffffff61125b16565b5050565b6106cb6110c8565b6001600160a01b0382166106f15760405162461bcd60e51b815260040161056e906134ef565b60006106fc846112b9565b116107195760405162461bcd60e51b815260040161056e9061352f565b6107216113a1565b6001600160a01b03166342a28e21846040518263ffffffff1660e01b815260040161074c9190613392565b60006040518083038186803b15801561076457600080fd5b505afa158015610778573d6000803e3d6000fd5b5050505061078e6314d95b9d60e21b84836113bb565b6000610798611510565b6001600160a01b031663c81ff8fa8533856040518463ffffffff1660e01b81526004016107c7939291906133ae565b602060405180830381600087803b1580156107e157600080fd5b505af11580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061081991908101906128c9565b905080156108395760405162461bcd60e51b815260040161056e9061357f565b606063a6492fe260e01b858585604051602401610858939291906133c9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610894611524565b6001600160a01b0316633dbb202b6108aa61153f565b836108b56003611549565b6040518463ffffffff1660e01b81526004016108d393929190613329565b600060405180830381600087803b1580156108ed57600080fd5b505af1158015610901573d6000803e3d6000fd5b50505050836001600160a01b0316857f8437572793cb04c0a02524a185d39f9b72a4284bd2e69151b0ca0cf254b2cb0b8560405161093f9190613392565b60405180910390a35050505050565b6001546001600160a01b031681565b600061096f6314d95b9d60e21b611599565b905090565b7f53796e746865746978427269646765546f4f7074696d69736d0000000000000090565b6109a061109c565b60045460ff16156109c35760405162461bcd60e51b815260040161056e9061345f565b6004805460ff191660011790556040517f7c88488c18e2ff121a34a4a2a44990557a5b76ab1ceb6bd95ebe7d419c7575f490600090a1565b6060610a05610be9565b905060005b81518110156106bf576000828281518110610a2157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610a63919061324f565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610a8f929190613420565b60206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610adf919081019061278b565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610b3b90849084906133a0565b60405180910390a15050600101610a0a565b6001546001600160a01b03163314610b775760405162461bcd60e51b815260040161056e9061346f565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610bba926001600160a01b0391821692911690613300565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610bf4611870565b60408051600480825260a0820190925291925060609190602082016080803883390190505090506524b9b9bab2b960d11b81600081518110610c3257fe5b602002602001018181525050722932bbb0b93239a234b9ba3934b13aba34b7b760691b81600181518110610c6257fe5b602002602001018181525050786f766d3a53796e746865746978427269646765546f4261736560381b81600281518110610c9857fe5b6020026020010181815250507453796e746865746978427269646765457363726f7760581b81600381518110610cca57fe5b602002602001018181525050610ce082826119d9565b9250505090565b6000546001600160a01b031681565b610cfe6110c8565b610d06611a95565b61042981611b35565b610d176110c8565b610d1f611a95565b805115610d2f57610d2f81611b35565b81156106bf576106bf3383611dd6565b610d47611f71565b610d59632932b1bb60e11b84836113bb565b610d61611510565b6001600160a01b031663890235d48484846040518463ffffffff1660e01b8152600401610d90939291906133c9565b602060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610de291908101906128c9565b50816001600160a01b0316837f81b100a611d2b249e23d093c64f09470928821e123a7cff2a033eb24c85b797983604051610e1d9190613392565b60405180910390a3505050565b610e326110c8565b610e3a611a95565b6104293382611dd6565b610e4c6110c8565b610e5461204d565b6001600160a01b0316336001600160a01b031614610e845760405162461bcd60e51b815260040161056e9061350f565b6040516000906060906325aae56360e01b90610ea690869086906024016133f7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610ee2611524565b6001600160a01b0316633dbb202b610ef8612062565b83610f036004611549565b6040518463ffffffff1660e01b8152600401610f2193929190613329565b600060405180830381600087803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b505050507fcca0df3f2f18cd65d14c04abffc77c2d00aaca7ad00b0d2eb074adeea3fb54f48484604051610f849291906133f7565b60405180910390a150505050565b600061096f632932b1bb60e11b611599565b610fac611f71565b610fb46110ea565b6001600160a01b03166323b872dd610fca611101565b84846040518463ffffffff1660e01b8152600401610fea9392919061331b565b602060405180830381600087803b15801561100457600080fd5b505af1158015611018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061103c91908101906128c9565b50816001600160a01b03167f9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda8826040516110769190613392565b60405180910390a25050565b61108a6110c8565b611092611a95565b6106bf8282611dd6565b6000546001600160a01b031633146110c65760405162461bcd60e51b815260040161056e906134ff565b565b60045460ff166110c65760405162461bcd60e51b815260040161056e906134bf565b600061096f680a6f2dce8d0cae8d2f60bb1b612085565b600061096f7453796e746865746978427269646765457363726f7760581b612085565b60405160009060609063a616cdfb60e01b906111469086908690602401613358565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050611182611524565b6001600160a01b0316633dbb202b611198612062565b836111a36002611549565b6040518463ffffffff1660e01b81526004016111c193929190613329565b600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b50505050836001600160a01b03167f0ac6af0c6fd21e58850b0385f451cdcc08071424f47fd04652be4e51069f43cc8460405161122c9190613392565b60405180910390a250505050565b600061096f722932bbb0b93239a234b9ba3934b13aba34b7b760691b612085565b6040516112b490849063a9059cbb60e01b9061127d9086908690602401613358565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526120e2565b505050565b60006112c36121cd565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f63726f7373436861696e53796e74685472616e73666572456e61626c65640000856040516020016113169291906131c6565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b81526004016113499291906133f7565b60206040518083038186803b15801561136157600080fd5b505afa158015611375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113999190810190612952565b90505b919050565b600061096f6b53797374656d53746174757360a01b612085565b60006c29bcb73a342a3930b739b332b960991b84846040516020016113e2939291906131ec565b60405160208183030381529060405280519060200120905060006114046121cd565b6001600160a01b03166323257c2b61141a610974565b846040518363ffffffff1660e01b81526004016114389291906133f7565b60206040518083038186803b15801561145057600080fd5b505afa158015611464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114889190810190612952565b90506114926121cd565b6001600160a01b0316631d5b277f6114a8610974565b846114b9858863ffffffff6121ea16565b6040518463ffffffff1660e01b81526004016114d793929190613405565b600060405180830381600087803b1580156114f157600080fd5b505af1158015611505573d6000803e3d6000fd5b505050505050505050565b600061096f6524b9b9bab2b960d11b612085565b600061096f6c32bc3a1d26b2b9b9b2b733b2b960991b612085565b600061096f612062565b60006115536121cd565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b61157c85612218565b6040518363ffffffff1660e01b81526004016113499291906133f7565b600060606115a5611510565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115dd57600080fd5b505afa1580156115f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116199190810190612818565b905060606000611627612393565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004016116529190613373565b60006040518083038186803b15801561166a57600080fd5b505afa15801561167e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116a69190810190612882565b9150915080156116c85760405162461bcd60e51b815260040161056e906134cf565b606083516040519080825280602002602001820160405280156116f5578160200160208202803883390190505b50905060005b8451811015611771576c29bcb73a342a3930b739b332b960991b8786838151811061172257fe5b602002602001015160405160200161173c939291906131ec565b6040516020818303038152906040528051906020012082828151811061175e57fe5b60209081029190910101526001016116fb565b50606061177c6121cd565b6001600160a01b031663b67fa7ed611792610974565b846040518363ffffffff1660e01b81526004016117b09291906133d7565b60006040518083038186803b1580156117c857600080fd5b505afa1580156117dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611804919081019061284d565b905060005b85518110156118655761185b61184e86838151811061182457fe5b602002602001015184848151811061183857fe5b60200260200101516123ae90919063ffffffff16565b889063ffffffff6121ea16565b9650600101611809565b505050505050919050565b60608061187b6123c3565b60408051600880825261012082019092529192506060919060208201610100803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b816000815181106118c257fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b816001815181106118e857fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160028151811061191357fe5b6020026020010181815250506524b9b9bab2b960d11b8160038151811061193657fe5b60200260200101818152505066119959541bdbdb60ca1b8160048151811061195a57fe5b6020026020010181815250506e466c657869626c6553746f7261676560881b8160058151811061198657fe5b6020026020010181815250506c45786368616e6765526174657360981b816006815181106119b057fe5b6020026020010181815250506b53797374656d53746174757360a01b81600781518110610cca57fe5b60608151835101604051908082528060200260200182016040528015611a09578160200160208202803883390190505b50905060005b8351811015611a4b57838181518110611a2457fe5b6020026020010151828281518110611a3857fe5b6020908102919091010152600101611a0f565b5060005b8251811015611a8e57828181518110611a6457fe5b6020026020010151828286510181518110611a7b57fe5b6020908102919091010152600101611a4f565b5092915050565b611a9d611510565b6001600160a01b031663d37c4d8b336040518263ffffffff1660e01b8152600401611ac891906132b0565b60206040518083038186803b158015611ae057600080fd5b505afa158015611af4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b189190810190612952565b156110c65760405162461bcd60e51b815260040161056e906134df565b60005b81518110156106bf57601a60ff16828281518110611b5257fe5b6020026020010151511115611b795760405162461bcd60e51b815260040161056e906134af565b60006060611b85612414565b6001600160a01b03166380d46f5833868681518110611ba057fe5b60200260200101516040518363ffffffff1660e01b8152600401611bc5929190613290565b600060405180830381600087803b158015611bdf57600080fd5b505af1158015611bf3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c1b91908101906129b8565b90925090508115611dcc57611c2e6110ea565b6001600160a01b031663a9059cbb611c44611101565b846040518363ffffffff1660e01b8152600401611c62929190613358565b602060405180830381600087803b158015611c7c57600080fd5b505af1158015611c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cb491908101906128c9565b50604051600090606090637cbc127f60e11b90611cd9903390879087906024016132ca565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050611d15611524565b6001600160a01b0316633dbb202b611d2b612062565b83611d366001611549565b6040518463ffffffff1660e01b8152600401611d5493929190613329565b600060405180830381600087803b158015611d6e57600080fd5b505af1158015611d82573d6000803e3d6000fd5b50505050336001600160a01b03167f4dc5956ab6218a4dfa2cc5e5c50d98d039dde03aabfc504c54b601b6f56226968585604051611dc19291906135af565b60405180910390a250505b5050600101611b38565b611dde6110ea565b6001600160a01b03166323b872dd33611df5611101565b846040518463ffffffff1660e01b8152600401611e1493929190613268565b602060405180830381600087803b158015611e2e57600080fd5b505af1158015611e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e6691908101906128c9565b50604051600090606090638d6e9a5b60e01b90611e899086908690602401613358565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050611ec5611524565b6001600160a01b0316633dbb202b611edb612062565b83611ee66000611549565b6040518463ffffffff1660e01b8152600401611f0493929190613329565b600060405180830381600087803b158015611f1e57600080fd5b505af1158015611f32573d6000803e3d6000fd5b50505050336001600160a01b03167ff531653a5819e21265de50358610d55dbe6594c61605b209dfa4280d277938c1858560405161122c929190613358565b6000611f7b611524565b9050336001600160a01b03821614611fa55760405162461bcd60e51b815260040161056e9061353f565b611fad61153f565b6001600160a01b0316816001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015611fef57600080fd5b505afa158015612003573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612027919081019061278b565b6001600160a01b0316146104295760405162461bcd60e51b815260040161056e9061354f565b600061096f66119959541bdbdb60ca1b612085565b600061096f786f766d3a53796e746865746978427269646765546f4261736560381b5b60008181526003602090815260408083205490516001600160a01b0390911691821515916120b59186910161322f565b60405160208183030381529060405290611a8e5760405162461bcd60e51b815260040161056e919061344e565b6120f4826001600160a01b0316612430565b6121105760405162461bcd60e51b815260040161056e9061359f565b60006060836001600160a01b03168360405161212c9190613223565b6000604051808303816000865af19150503d8060008114612169576040519150601f19603f3d011682016040523d82523d6000602084013e61216e565b606091505b5091509150816121905760405162461bcd60e51b815260040161056e9061349f565b8051156121c757808060200190516121ab91908101906128c9565b6121c75760405162461bcd60e51b815260040161056e9061356f565b50505050565b600061096f6e466c657869626c6553746f7261676560881b612085565b60008282018381101561220f5760405162461bcd60e51b815260040161056e9061347f565b90505b92915050565b60008082600581111561222757fe5b141561225457507f63726f7373446f6d61696e4465706f7369744761734c696d697400000000000061139c565b600182600581111561226257fe5b141561228f57507f63726f7373446f6d61696e457363726f774761734c696d69740000000000000061139c565b600282600581111561229d57fe5b14156122ca57507f63726f7373446f6d61696e5265776172644761734c696d69740000000000000061139c565b60038260058111156122d857fe5b141561230557507f63726f7373446f6d61696e5769746864726177616c4761734c696d697400000061139c565b600582600581111561231357fe5b141561234057507f63726f7373446f6d61696e52656c61794761734c696d6974000000000000000061139c565b600482600581111561234e57fe5b141561237b57507f63726f7373446f6d61696e436c6f73654761734c696d6974000000000000000061139c565b60405162461bcd60e51b815260040161056e9061358f565b600061096f6c45786368616e6765526174657360981b612085565b600061220f8383670de0b6b3a7640000612436565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061240557fe5b60200260200101818152505090565b600061096f6d2932bbb0b93222b9b1b937bbab1960911b612085565b3b151590565b600080600a830461244d868663ffffffff61247416565b8161245457fe5b0490506005600a82061061246657600a015b600a900490505b9392505050565b60008261248357506000612212565b8282028284828161249057fe5b041461220f5760405162461bcd60e51b815260040161056e9061351f565b8035612212816136a4565b8051612212816136a4565b600082601f8301126124d557600080fd5b81356124e86124e3826135f6565b6135cf565b81815260209384019390925082018360005b8381101561252657813586016125108882612612565b84525060209283019291909101906001016124fa565b5050505092915050565b600082601f83011261254157600080fd5b815161254f6124e3826135f6565b9150818183526020840193506020810190508385602084028201111561257457600080fd5b60005b83811015612526578161258a8882612708565b8452506020928301929190910190600101612577565b600082601f8301126125b157600080fd5b81516125bf6124e3826135f6565b915081818352602084019350602081019050838560408402820111156125e457600080fd5b60005b8381101561252657816125fa8882612713565b845250602090920191604091909101906001016125e7565b600082601f83011261262357600080fd5b81356126316124e3826135f6565b9150818183526020840193506020810190508385602084028201111561265657600080fd5b60005b83811015612526578161266c88826126fd565b8452506020928301929190910190600101612659565b600082601f83011261269357600080fd5b81516126a16124e3826135f6565b915081818352602084019350602081019050838560208402820111156126c657600080fd5b60005b8381101561252657816126dc8882612708565b84525060209283019291909101906001016126c9565b8051612212816136b8565b8035612212816136c1565b8051612212816136c1565b60006040828403121561272557600080fd5b61272f60406135cf565b9050600061273d848461275a565b825250602061274e84848301612708565b60208301525092915050565b8051612212816136ca565b60006020828403121561277757600080fd5b600061278384846124ae565b949350505050565b60006020828403121561279d57600080fd5b600061278384846124b9565b600080604083850312156127bc57600080fd5b60006127c885856124ae565b92505060206127d9858286016126fd565b9150509250929050565b6000602082840312156127f557600080fd5b813567ffffffffffffffff81111561280c57600080fd5b612783848285016124c4565b60006020828403121561282a57600080fd5b815167ffffffffffffffff81111561284157600080fd5b61278384828501612530565b60006020828403121561285f57600080fd5b815167ffffffffffffffff81111561287657600080fd5b61278384828501612682565b6000806040838503121561289557600080fd5b825167ffffffffffffffff8111156128ac57600080fd5b6128b885828601612682565b92505060206127d9858286016126f2565b6000602082840312156128db57600080fd5b600061278384846126f2565b6000806000606084860312156128fc57600080fd5b600061290886866126fd565b9350506020612919868287016124ae565b925050604061292a868287016126fd565b9150509250925092565b60006020828403121561294657600080fd5b600061278384846126fd565b60006020828403121561296457600080fd5b60006127838484612708565b6000806040838503121561298357600080fd5b600061298f85856126fd565b925050602083013567ffffffffffffffff8111156129ac57600080fd5b6127d9858286016124c4565b600080604083850312156129cb57600080fd5b60006129d78585612708565b925050602083015167ffffffffffffffff8111156129f457600080fd5b6127d9858286016125a0565b60008060408385031215612a1357600080fd5b60006127c885856126fd565b6000612a2b8383612b5d565b505060200190565b6000612a3f8383613190565b505060400190565b612a508161365c565b82525050565b612a508161362a565b6000612a6a8261361d565b612a748185613621565b9350612a7f83613617565b8060005b83811015612aad578151612a978882612a1f565b9750612aa283613617565b925050600101612a83565b509495945050505050565b6000612ac38261361d565b612acd8185613621565b9350612ad883613617565b8060005b83811015612aad578151612af08882612a33565b9750612afb83613617565b925050600101612adc565b6000612b118261361d565b612b1b8185613621565b9350612b2683613617565b8060005b83811015612aad578151612b3e8882612a1f565b9750612b4983613617565b925050600101612b2a565b612a5081613635565b612a5081610541565b612a50612b7282610541565b610541565b6000612b828261361d565b612b8c8185613621565b9350612b9c81856020860161366e565b612ba58161369a565b9093019392505050565b6000612bba8261361d565b612bc4818561139c565b9350612bd481856020860161366e565b9290920192915050565b612a5081613663565b6000612bf4601883613621565b7f496e6974696174696f6e206e6f742073757370656e6465640000000000000000815260200192915050565b6000612c2d603583613621565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612c84601b83613621565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612cbd601483613621565b73125b9a5d1a585d1a5bdb881cdd5cdc195b99195960621b815260200192915050565b6000612ced602083613621565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612d26602183613621565b7f45786365656473206d617820656e747269657320706572206d6967726174696f8152603760f91b602082015260400192915050565b6000612d6960118361139c565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000612d96601683613621565b75125b9a5d1a585d1a5bdb8819195858dd1a5d985d195960521b815260200192915050565b6000612dc8601183613621565b7014985d195cc8185c99481a5b9d985b1a59607a1b815260200192915050565b6000612df5602383613621565b7f43616e6e6f74206465706f736974206f72206d6967726174652077697468206481526219589d60ea1b602082015260400192915050565b6000612e3a601b83613621565b7f43616e6e6f742073656e6420746f207a65726f20616464726573730000000000815260200192915050565b6000612e73602f83613621565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000612ed0601f83613621565b7f4f6e6c79207468652066656520706f6f6c2063616e2063616c6c207468697300815260200192915050565b6000612f09602183613621565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000612f4c602a83613621565b7f53796e7468206e6f7420656e61626c656420666f722063726f7373206368616981526937103a3930b739b332b960b11b602082015260400192915050565b6000612f98601e83613621565b7f4f6e6c79207468652072656c617965722063616e2063616c6c20746869730000815260200192915050565b6000612fd160198361139c565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061300a602483613621565b7f4f6e6c79206120636f756e74657270617274206272696467652063616e20696e815263766f6b6560e01b602082015260400192915050565b6000613050602a83613621565b7f43616c6c6572206973206e6f742052657761726473446973747269627574696f8152691b8818dbdb9d1c9858dd60b21b602082015260400192915050565b600061309c602a83613621565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b60006130e8602883613621565b7f43616e6e6f7420696e6974696174652069662073796e74682072617465206973815267081a5b9d985b1a5960c21b602082015260400192915050565b6000613132601683613621565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b6000613164601f83613621565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b805160408301906131a184826131bd565b5060208201516121c76020850182612b5d565b612a5081613646565b612a508161364f565b60006131d28285612b66565b6020820191506131e28284612b66565b5060200192915050565b60006131f88286612b66565b6020820191506132088285612b66565b6020820191506132188284612b66565b506020019392505050565b600061246d8284612baf565b600061323a82612d5c565b91506132468284612b66565b50602001919050565b600061323a82612fc4565b602081016122128284612a56565b606081016132768286612a47565b6132836020830185612a56565b6127836040830184612b5d565b6040810161329e8285612a47565b81810360208301526127838184612b06565b604081016132be8284612a47565b61221260208301612eb7565b606081016132d88286612a56565b6132e56020830185612b5d565b81810360408301526132f78184612ab8565b95945050505050565b6040810161330e8285612a56565b61246d6020830184612a56565b606081016132768286612a56565b606081016133378286612a56565b81810360208301526133498185612b77565b905061278360408301846131b4565b604081016133668285612a56565b61246d6020830184612b5d565b6020808252810161220f8184612a5f565b602081016122128284612b54565b602081016122128284612b5d565b6040810161330e8285612b5d565b606081016133bc8286612b5d565b6132836020830185612a47565b606081016132768286612b5d565b604081016133e58285612b5d565b81810360208301526127838184612a5f565b604081016133668285612b5d565b606081016134138286612b5d565b6132836020830185612b5d565b6040810161342e8285612b5d565b81810360208301526127838184612b77565b602081016122128284612bde565b6020808252810161220f8184612b77565b6020808252810161139981612be7565b6020808252810161139981612c20565b6020808252810161139981612c77565b6020808252810161139981612cb0565b6020808252810161139981612ce0565b6020808252810161139981612d19565b6020808252810161139981612d89565b6020808252810161139981612dbb565b6020808252810161139981612de8565b6020808252810161139981612e2d565b6020808252810161139981612e66565b6020808252810161139981612ec3565b6020808252810161139981612efc565b6020808252810161139981612f3f565b6020808252810161139981612f8b565b6020808252810161139981612ffd565b6020808252810161139981613043565b602080825281016113998161308f565b60208082528101611399816130db565b6020808252810161139981613125565b6020808252810161139981613157565b604081016135bd8285612b5d565b81810360208301526127838184612ab8565b60405181810167ffffffffffffffff811182821017156135ee57600080fd5b604052919050565b600067ffffffffffffffff82111561360d57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b60006113998261363a565b151590565b6001600160a01b031690565b63ffffffff1690565b67ffffffffffffffff1690565b6000611399825b60006113998261362a565b60005b83811015613689578181015183820152602001613671565b838111156121c75750506000910152565b601f01601f191690565b6136ad8161362a565b811461042957600080fd5b6136ad81613635565b6136ad81610541565b6136ad8161364f56fea365627a7a7231582036e510a5f05e76eb07a633f64bf7c75ab3b8af4a56a61194758faea0d712da6c6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "snxBackedDebt",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalDebtShares",
							"type": "uint256"
						}
					],
					"name": "FeePeriodClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "FinalizeSynthTransfer",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "InitiateSynthTransfer",
					"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": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "snxBackedAmount",
							"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": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "finalizeSynthTransfer",
					"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": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "initiateSynthTransfer",
					"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"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthTransferReceived",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthTransferSent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xdc3ee66982035f0e933308230ae4e99ccfd473f1d9ee4a58293b7729ac4981f9",
				"urls": [
					"bzz-raw://4aea76b3285eb729d8441ba4d7fd8b41b8d267c38bdf9cb295abbe3971344558",
					"dweb:/ipfs/QmNuSgGtpZ3GcTxJekyAp63UdCUy184dr6Tj5BkWCY9USK"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixBridgeToOptimism.sol": "SynthetixBridgeToOptimism"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixBridgeToOptimism.sol": {
						"keccak256": "0xdc3ee66982035f0e933308230ae4e99ccfd473f1d9ee4a58293b7729ac4981f9",
						"urls": [
							"bzz-raw://4aea76b3285eb729d8441ba4d7fd8b41b8d267c38bdf9cb295abbe3971344558",
							"dweb:/ipfs/QmNuSgGtpZ3GcTxJekyAp63UdCUy184dr6Tj5BkWCY9USK"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixBridgeEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516107ab3803806107ab8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506106b1806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80631627540c1461005c57806338e499cd1461008457806353a47bb7146100ba57806379ba5097146100de5780638da5cb5b146100e6575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100ee565b005b6100826004803603606081101561009a57600080fd5b506001600160a01b0381358116916020810135909116906040013561014a565b6100c26101b7565b604080516001600160a01b039092168252519081900360200190f35b6100826101c6565b6100c2610282565b6100f6610291565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610152610291565b61016c6001600160a01b038416838363ffffffff6102dc16565b604080516001600160a01b038581168252602082018490528251908516927f303c1899feacd9139708637ad42646489d4e1be45f252b25b53561e934d74712928290030190a2505050565b6001546001600160a01b031681565b6001546001600160a01b0316331461020f5760405162461bcd60e51b81526004018080602001828103825260358152602001806105b96035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000546001600160a01b031633146102da5760405162461bcd60e51b815260040180806020018281038252602f8152602001806105ee602f913960400191505060405180910390fd5b565b801580610362575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d602081101561035e57600080fd5b5051155b61039d5760405162461bcd60e51b81526004018080602001828103825260368152602001806106476036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526103ef9084906103f4565b505050565b610406826001600160a01b03166105b2565b610457576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106104955780518252601f199092019160209182019101610476565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146104f7576040519150601f19603f3d011682016040523d82523d6000602084013e6104fc565b606091505b509150915081610553576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156105ac5780806020019051602081101561056f57600080fd5b50516105ac5760405162461bcd60e51b815260040180806020018281038252602a81526020018061061d602a913960400191505060405180910390fd5b50505050565b3b15159056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a72315820f43d1ff8f69690dd2bbd01485ef6ddbf0d1be4294ad1d5ffa014a039149c402064736f6c63430005100032",
			"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": "0xd1a7b729668d9b0c09bc6923e26c4965a403762d9df1a4403f333aa8aa79ea42",
				"urls": [
					"bzz-raw://1caaf6742d65ec5a0d358f3b3dc787fb97d3a30adde78b17d2c57651ec83d01f",
					"dweb:/ipfs/Qmeid75toRWzPt9KKqUa8xTFV4Jfq3YrqB22M3K3AXXJGf"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixBridgeEscrow.sol": "SynthetixBridgeEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixBridgeEscrow.sol": {
						"keccak256": "0xd1a7b729668d9b0c09bc6923e26c4965a403762d9df1a4403f333aa8aa79ea42",
						"urls": [
							"bzz-raw://1caaf6742d65ec5a0d358f3b3dc787fb97d3a30adde78b17d2c57651ec83d01f",
							"dweb:/ipfs/Qmeid75toRWzPt9KKqUa8xTFV4Jfq3YrqB22M3K3AXXJGf"
						]
					}
				},
				"version": 1
			}
		},
		"OwnerRelayOnEthereum": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620016b3380380620016b38339810160408190526200003491620000f4565b600080546001600160a01b0319166001600160a01b038381169190911790915582908116620000805760405162461bcd60e51b81526004016200007790620001b0565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383161790556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90620000d09060009084906200018a565b60405180910390a15050506200020b565b8051620000ee81620001f1565b92915050565b600080604083850312156200010857600080fd5b6000620001168585620000e1565b92505060206200012985828601620000e1565b9150509250929050565b6200013e81620001dd565b82525050565b6200013e81620001cb565b60006200015e601983620001c2565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200019a828562000133565b620001a9602083018462000144565b9392505050565b60208082528101620000ee816200014f565b90815260200190565b60006001600160a01b038216620000ee565b6000620000ee826000620000ee82620001cb565b620001fc81620001cb565b81146200020857600080fd5b50565b611498806200021b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80637418536011610066578063741853601461011357806379ba50971461011b578063899ffef4146101235780638da5cb5b14610138578063e210f042146101405761009e565b806304f3bcec146100a35780631627540c146100c15780632af64bd3146100d65780634aeda11f146100eb57806353a47bb7146100fe575b600080fd5b6100ab610153565b6040516100b891906112e4565b60405180910390f35b6100d46100cf366004610cde565b610162565b005b6100de6101c0565b6040516100b8919061127f565b6100d46100f9366004610d8c565b6102d6565b61010661041e565b6040516100b891906111b4565b6100d461042d565b6100d4610582565b61012b61061e565b6040516100b8919061126e565b6101066106bd565b6100d461014e366004610d22565b6106cc565b6000546001600160a01b031681565b61016a6107e7565b600380546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906101b59083906111b4565b60405180910390a150565b600060606101cc61061e565b905060005b81518110156102cc5760008282815181106101e857fe5b60209081029190910181015160008181526001909252604080832054925490516321f8a72160e01b81529193506001600160a01b039283169216906321f8a7219061023790859060040161128d565b60206040518083038186803b15801561024f57600080fd5b505afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102879190810190610d04565b6001600160a01b03161415806102b257506000818152600160205260409020546001600160a01b0316155b156102c357600093505050506102d3565b506001016101d1565b5060019150505b90565b6102de6107e7565b8382146103065760405162461bcd60e51b81526004016102fd90611323565b60405180910390fd5b604051600090606090637a153de960e11b9061032c90899089908990899060240161123d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610368610813565b6001600160a01b0316633dbb202b61037e610833565b8361038887610859565b6040518463ffffffff1660e01b81526004016103a69392919061120e565b600060405180830381600087803b1580156103c057600080fd5b505af11580156103d4573d6000803e3d6000fd5b505050507faa86356fa99dddd7d5773ad300a6f8e0213a5a2f3f5dbdd4b696c6746d78ec048787878760405161040d949392919061123d565b60405180910390a150505050505050565b6003546001600160a01b031681565b606061043761061e565b905060005b815181101561057e57600082828151811061045357fe5b6020026020010151905060008060009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161049491906111a9565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016104c09291906112c4565b60206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105109190810190610d04565b6000838152600160205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061056c908490849061129b565b60405180910390a1505060010161043c565b5050565b6003546001600160a01b031633146105ac5760405162461bcd60e51b81526004016102fd90611303565b6002546003546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926105ef926001600160a01b03918216929116906111c2565b60405180910390a160038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60608061062961087f565b6040805160028082526060808301845293945090916020830190803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b8160008151811061066b57fe5b602002602001018181525050776f766d3a4f776e657252656c61794f6e4f7074696d69736d60401b816001815181106106a057fe5b6020026020010181815250506106b682826108d0565b9250505090565b6002546001600160a01b031681565b6106d46107e7565b60405160009060609063c3c79e5d60e01b906106f8908890889088906024016111e4565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610734610813565b6001600160a01b0316633dbb202b61074a610833565b8361075487610859565b6040518463ffffffff1660e01b81526004016107729392919061120e565b600060405180830381600087803b15801561078c57600080fd5b505af11580156107a0573d6000803e3d6000fd5b505050507f0ad3bed4c45a8b7f0de84c5caaea6851b93c0453c25ad26d37077fcf4feb5c448686866040516107d7939291906111e4565b60405180910390a1505050505050565b6002546001600160a01b031633146108115760405162461bcd60e51b81526004016102fd90611313565b565b600061082e6c32bc3a1d26b2b9b9b2b733b2b960991b61098c565b905090565b600061082e776f766d3a4f776e657252656c61794f6e4f7074696d69736d60401b61098c565b600063ffffffff82166108755761087060056109e9565b610877565b815b90505b919050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106108c157fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610900578160200160208202803883390190505b50905060005b83518110156109425783818151811061091b57fe5b602002602001015182828151811061092f57fe5b6020908102919091010152600101610906565b5060005b82518110156109855782818151811061095b57fe5b602002602001015182828651018151811061097257fe5b6020908102919091010152600101610946565b5092915050565b60008181526001602090815260408083205490516001600160a01b0390911691821515916109bc91869101611189565b604051602081830303815290604052906109855760405162461bcd60e51b81526004016102fd91906112f2565b60006109f3610a89565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b610a1c85610aa6565b6040518363ffffffff1660e01b8152600401610a399291906112a9565b60206040518083038186803b158015610a5157600080fd5b505afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108779190810190610e12565b600061082e6e466c657869626c6553746f7261676560881b61098c565b600080826005811115610ab557fe5b1415610ae257507f63726f7373446f6d61696e4465706f7369744761734c696d697400000000000061087a565b6001826005811115610af057fe5b1415610b1d57507f63726f7373446f6d61696e457363726f774761734c696d69740000000000000061087a565b6002826005811115610b2b57fe5b1415610b5857507f63726f7373446f6d61696e5265776172644761734c696d69740000000000000061087a565b6003826005811115610b6657fe5b1415610b9357507f63726f7373446f6d61696e5769746864726177616c4761734c696d697400000061087a565b6005826005811115610ba157fe5b1415610bce57507f63726f7373446f6d61696e52656c61794761734c696d6974000000000000000061087a565b6004826005811115610bdc57fe5b1415610c0957507f63726f7373446f6d61696e436c6f73654761734c696d6974000000000000000061087a565b60405162461bcd60e51b81526004016102fd90611333565b8035610c2c8161142c565b92915050565b8051610c2c8161142c565b60008083601f840112610c4f57600080fd5b50813567ffffffffffffffff811115610c6757600080fd5b602083019150836020820283011115610c7f57600080fd5b9250929050565b60008083601f840112610c9857600080fd5b50813567ffffffffffffffff811115610cb057600080fd5b602083019150836001820283011115610c7f57600080fd5b8051610c2c81611443565b8035610c2c8161144c565b600060208284031215610cf057600080fd5b6000610cfc8484610c21565b949350505050565b600060208284031215610d1657600080fd5b6000610cfc8484610c32565b60008060008060608587031215610d3857600080fd5b6000610d448787610c21565b945050602085013567ffffffffffffffff811115610d6157600080fd5b610d6d87828801610c86565b93509350506040610d8087828801610cd3565b91505092959194509250565b600080600080600060608688031215610da457600080fd5b853567ffffffffffffffff811115610dbb57600080fd5b610dc788828901610c3d565b9550955050602086013567ffffffffffffffff811115610de657600080fd5b610df288828901610c3d565b93509350506040610e0588828901610cd3565b9150509295509295909350565b600060208284031215610e2457600080fd5b6000610cfc8484610cc8565b6000610e3c8383610e5d565b505060200190565b6000610e3c8383610f8a565b6000610cfc848484610fa4565b610e66816113b6565b82525050565b6000610e78838561134d565b9350610e83826102d3565b8060005b85811015610eb957610e998284611356565b610ea38882610e30565b9750610eae83611343565b925050600101610e87565b509495945050505050565b6000610ecf82611349565b610ed9818561134d565b9350610ee483611343565b8060005b83811015610eb9578151610efc8882610e44565b9750610f0783611343565b925050600101610ee8565b6000610f1e838561134d565b935083602084028501610f30846102d3565b8060005b87811015610f74578484038952610f4b8284611365565b610f56868284610e50565b9550610f6184611343565b60209b909b019a93505050600101610f34565b5091979650505050505050565b610e66816113c1565b610e66816102d3565b610e66610f9f826102d3565b6102d3565b6000610fb0838561134d565b9350610fbd8385846113e6565b610fc683611422565b9093019392505050565b6000610fdb82611349565b610fe5818561134d565b9350610ff58185602086016113f2565b610fc681611422565b610e66816113db565b600061101460358361134d565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061106b60118361087a565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611098602f8361134d565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006110e960198361087a565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061112260188361134d565b7f417267756d656e74206c656e677468206d69736d617463680000000000000000815260200192915050565b600061115b60168361134d565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b610e66816113d2565b60006111948261105e565b91506111a08284610f93565b50602001919050565b6000611194826110dc565b60208101610c2c8284610e5d565b604081016111d08285610e5d565b6111dd6020830184610e5d565b9392505050565b604081016111f28286610e5d565b8181036020830152611205818486610fa4565b95945050505050565b6060810161121c8286610e5d565b818103602083015261122e8185610fd0565b9050610cfc6040830184611180565b6040808252810161124f818688610e6c565b90508181036020830152611264818486610f12565b9695505050505050565b602080825281016111dd8184610ec4565b60208101610c2c8284610f81565b60208101610c2c8284610f8a565b604081016111d08285610f8a565b604081016112b78285610f8a565b6111dd6020830184610f8a565b604081016112d28285610f8a565b8181036020830152610cfc8184610fd0565b60208101610c2c8284610ffe565b602080825281016111dd8184610fd0565b6020808252810161087781611007565b602080825281016108778161108b565b6020808252810161087781611115565b602080825281016108778161114e565b60200190565b5190565b90815260200190565b60006111dd6020840184610c21565b6000808335601e193685900301811261137d57600080fd5b83810160208101935035915067ffffffffffffffff82111561139e57600080fd5b368290038413156113ae57600080fd5b509250929050565b6000610877826113c6565b151590565b6001600160a01b031690565b63ffffffff1690565b6000610877826113b6565b82818337506000910152565b60005b8381101561140d5781810151838201526020016113f5565b8381111561141c576000848401525b50505050565b601f01601f191690565b611435816113b6565b811461144057600080fd5b50565b611435816102d3565b611435816113d256fea365627a7a723158203072b809bb562623eb0c9e3537caa18bf07d410de197cc3fd131e9bd94de7d0c6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x1e5f0c52210d9c184905f61034fea727d07954a1aeb248f2c74f8c889c821891",
				"urls": [
					"bzz-raw://e644cc94fd0c9bbb2a1818607569a84d2c12556caf5018a9071510a9c524b800",
					"dweb:/ipfs/QmRSvoGM9TkkzJnsGKk7LtAycnD7idaujPydcfwPWftD7V"
				]
			},
			"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": "0x1e5f0c52210d9c184905f61034fea727d07954a1aeb248f2c74f8c889c821891",
						"urls": [
							"bzz-raw://e644cc94fd0c9bbb2a1818607569a84d2c12556caf5018a9071510a9c524b800",
							"dweb:/ipfs/QmRSvoGM9TkkzJnsGKk7LtAycnD7idaujPydcfwPWftD7V"
						]
					}
				},
				"version": 1
			}
		},
		"DebtMigratorOnEthereum": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620024f7380380620024f7833981016040819052620000349162000100565b81818080836001600160a01b0381166200006b5760405162461bcd60e51b81526004016200006290620001bc565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b891849062000196565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550620002179350505050565b8051620000fa81620001fd565b92915050565b600080604083850312156200011457600080fd5b6000620001228585620000ed565b92505060206200013585828601620000ed565b9150509250929050565b6200014a81620001e9565b82525050565b6200014a81620001d7565b60006200016a601983620001ce565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a682856200013f565b620001b5602083018462000150565b9392505050565b60208082528101620000fa816200015b565b90815260200190565b60006001600160a01b038216620000fa565b6000620000fa826000620000fa82620001d7565b6200020881620001d7565b81146200021457600080fd5b50565b6122d080620002276000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063698a26b211610097578063899ffef411610066578063899ffef41461019c5780638da5cb5b146101b1578063c7421c12146101b9578063e0d39172146101cc576100f5565b8063698a26b21461017c578063741853601461018457806379ba50971461018c57806388c4ca6f14610194576100f5565b80632af64bd3116100d35780632af64bd3146101425780633872dda31461014a57806353a47bb714610152578063614d08f814610167576100f5565b806304f3bcec146100fa578063100be6d4146101185780631627540c1461012d575b600080fd5b6101026101d4565b60405161010f91906120cb565b60405180910390f35b6101206101e3565b60405161010f919061204b565b61014061013b36600461192b565b6101ec565b005b61012061024a565b610140610362565b61015a6103ca565b60405161010f9190611f53565b61016f6103d9565b60405161010f9190612059565b6101406103f6565b610140610459565b6101406105af565b61016f61064b565b6101a461072c565b60405161010f919061203a565b61015a610859565b6101406101c736600461192b565b610868565b61016f6108a4565b6002546001600160a01b031681565b60045460ff1681565b6101f46108d8565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061023f908390611f53565b60405180910390a150565b6000606061025661072c565b905060005b815181101561035857600082828151811061027257fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906102c3908590600401612059565b60206040518083038186803b1580156102db57600080fd5b505afa1580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103139190810190611951565b6001600160a01b031614158061033e57506000818152600360205260409020546001600160a01b0316155b1561034f576000935050505061035f565b5060010161025b565b5060019150505b90565b61036a6108d8565b60045460ff166103955760405162461bcd60e51b815260040161038c9061212a565b60405180910390fd5b6004805460ff191690556040517f43e00f2c8f8651a29db34d34fb689573423f8aaae8f9d32e3e871b4c35c6254690600090a1565b6001546001600160a01b031681565b75446562744d69677261746f724f6e457468657265756d60501b90565b6103fe6108d8565b60045460ff16156104215760405162461bcd60e51b815260040161038c906120ea565b6004805460ff191660011790556040517f7c88488c18e2ff121a34a4a2a44990557a5b76ab1ceb6bd95ebe7d419c7575f490600090a1565b606061046361072c565b905060005b81518110156105ab57600082828151811061047f57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016104c19190611f48565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016104ed9291906120ab565b60206040518083038186803b15801561050557600080fd5b505afa158015610519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061053d9190810190611951565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906105999084908490612067565b60405180910390a15050600101610468565b5050565b6001546001600160a01b031633146105d95760405162461bcd60e51b815260040161038c9061210a565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261061c926001600160a01b0391821692911690611f61565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000806b2232b13a2a3930b739b332b960a11b6314d95b9d60e21b6253445360e81b60405160200161067f93929190611ef1565b60405160208183030381529060405280519060200120905060006106a1610904565b6001600160a01b03166323257c2b6106b76103d9565b846040518363ffffffff1660e01b81526004016106d5929190612075565b60206040518083038186803b1580156106ed57600080fd5b505afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610725919081019061198d565b9250505090565b606080610737610926565b60408051600580825260c08201909252919250606091906020820160a080388339019050509050796f766d3a446562744d69677261746f724f6e4f7074696d69736d60301b8160008151811061078957fe5b602002602001018181525050692634b8bab4b230ba37b960b11b816001815181106107b057fe5b602002602001018181525050704c697175696461746f725265776172647360781b816002815181106107de57fe5b6020026020010181815250507853796e746865746978427269646765546f4f7074696d69736d60381b8160038151811061081457fe5b6020026020010181815250507153796e74686574697844656274536861726560701b8160048151811061084357fe5b60200260200101818152505061072582826109ea565b6000546001600160a01b031681565b610870610aa6565b336001600160a01b038216146108985760405162461bcd60e51b815260040161038c9061215a565b6108a181610ac8565b50565b6000806b2232b13a2a3930b739b332b960a11b632932b1bb60e11b6253445360e81b60405160200161067f93929190611ef1565b6000546001600160a01b031633146109025760405162461bcd60e51b815260040161038c9061216a565b565b60006109216e466c657869626c6553746f7261676560881b61137e565b905090565b6060806109316113e4565b60408051600480825260a0820190925291925060609190602082016080803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b8160008151811061097657fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b816001815181106109a157fe5b6020026020010181815250506524b9b9bab2b960d11b816002815181106109c457fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b8160038151811061084357fe5b60608151835101604051908082528060200260200182016040528015610a1a578160200160208202803883390190505b50905060005b8351811015610a5c57838181518110610a3557fe5b6020026020010151828281518110610a4957fe5b6020908102919091010152600101610a20565b5060005b8251811015610a9f57828181518110610a7557fe5b6020026020010151828286510181518110610a8c57fe5b6020908102919091010152600101610a60565b5092915050565b60045460ff166109025760405162461bcd60e51b815260040161038c9061214a565b610ad0611435565b6001600160a01b031663952225f38260006040518363ffffffff1660e01b8152600401610afe929190611f83565b60206040518083038186803b158015610b1657600080fd5b505afa158015610b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b4e919081019061196f565b15610b6b5760405162461bcd60e51b815260040161038c9061213a565b610b7361144d565b6001600160a01b031663c00007b0826040518263ffffffff1660e01b8152600401610b9e9190611f53565b600060405180830381600087803b158015610bb857600080fd5b505af1158015610bcc573d6000803e3d6000fd5b505050506000610bda61146c565b90506000816001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401610c0a9190611f53565b60206040518083038186803b158015610c2257600080fd5b505afa158015610c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c5a919081019061198d565b905060008111610c7c5760405162461bcd60e51b815260040161038c9061217a565b610c8d6314d95b9d60e21b8261148c565b610c956115e5565b6001600160a01b03166380aa6a9184836040518363ffffffff1660e01b8152600401610cc2929190611fcd565b600060405180830381600087803b158015610cdc57600080fd5b505af1158015610cf0573d6000803e3d6000fd5b50505050600080610d0c680a6f2dce8d0cae8d2f60bb1b61137e565b6001600160a01b03166384358843866040518263ffffffff1660e01b8152600401610d379190611f53565b6040805180830381600087803b158015610d5057600080fd5b505af1158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d8891908101906119ab565b90925090506000610d9f828463ffffffff6115f916565b905060008111610dc15760405162461bcd60e51b815260040161038c9061219a565b6002546040516321f8a72160e01b81526000916001600160a01b0316906321f8a72190610e0f90796f766d3a446562744d69677261746f724f6e4f7074696d69736d60301b90600401612059565b60206040518083038186803b158015610e2757600080fd5b505afa158015610e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e5f9190810190611951565b6001600160a01b03161415610e865760405162461bcd60e51b815260040161038c906121da565b610e8e611627565b6001600160a01b031663095ea7b3610ea461163e565b836040518363ffffffff1660e01b8152600401610ec2929190611fcd565b602060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f14919081019061196f565b50610f1d61163e565b6001600160a01b031663ffaad6a5610f33611665565b836040518363ffffffff1660e01b8152600401610f51929190611fcd565b600060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b50505050610f8b61146c565b6001600160a01b03166370a08231876040518263ffffffff1660e01b8152600401610fb69190611f53565b60206040518083038186803b158015610fce57600080fd5b505afa158015610fe2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611006919081019061198d565b156110235760405162461bcd60e51b815260040161038c9061218a565b61102b611627565b6001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016110569190611f53565b60206040518083038186803b15801561106e57600080fd5b505afa158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110a6919081019061198d565b156110c35760405162461bcd60e51b815260040161038c906121ba565b6110cb61168d565b6001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016110f69190611f53565b60206040518083038186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611146919081019061198d565b156111635760405162461bcd60e51b815260040161038c906121aa565b61116b61144d565b6001600160a01b0316628cc262876040518263ffffffff1660e01b81526004016111959190611f53565b60206040518083038186803b1580156111ad57600080fd5b505afa1580156111c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111e5919081019061198d565b156112025760405162461bcd60e51b815260040161038c906120fa565b6040516000906060906380aa6a9160e01b90611224908a908990602401611fcd565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290519091506000906060906308f40ad760e21b90611280908c908b908b908b908990602401611fe8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290506112bc6116a9565b6001600160a01b0316633dbb202b6112d2611665565b836112dd60006116c4565b6040518463ffffffff1660e01b81526004016112fb93929190611f9e565b600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b50505050896001600160a01b03167f1723685f7b2b8753c5fbe69698cf139b15c3b43321e256a9c08a60226a2c1e5e89898960405161136a93929190612083565b60405180910390a250505050505050505050565b60008181526003602090815260408083205490516001600160a01b0390911691821515916113ae91869101611f28565b604051602081830303815290604052906113db5760405162461bcd60e51b815260040161038c91906120d9565b5090505b919050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061142657fe5b60200260200101818152505090565b6000610921692634b8bab4b230ba37b960b11b61137e565b6000610921704c697175696461746f725265776172647360781b61137e565b60006109217153796e74686574697844656274536861726560701b61137e565b60006b2232b13a2a3930b739b332b960a11b836253445360e81b6040516020016114b893929190611ef1565b60405160208183030381529060405280519060200120905060006114da610904565b6001600160a01b03166323257c2b6114f06103d9565b846040518363ffffffff1660e01b815260040161150e929190612075565b60206040518083038186803b15801561152657600080fd5b505afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061155e919081019061198d565b9050611568610904565b6001600160a01b0316631d5b277f61157e6103d9565b8461158f858863ffffffff6115f916565b6040518463ffffffff1660e01b81526004016115ad93929190612083565b600060405180830381600087803b1580156115c757600080fd5b505af11580156115db573d6000803e3d6000fd5b5050505050505050565b60006109216524b9b9bab2b960d11b61137e565b60008282018381101561161e5760405162461bcd60e51b815260040161038c9061211a565b90505b92915050565b6000610921680a6f2dce8d0cae8d2f60bb1b61137e565b60006109217853796e746865746978427269646765546f4f7074696d69736d60381b61137e565b6000610921796f766d3a446562744d69677261746f724f6e4f7074696d69736d60301b61137e565b60006109216d2932bbb0b93222b9b1b937bbab1960911b61137e565b60006109216c32bc3a1d26b2b9b9b2b733b2b960991b61137e565b600063ffffffff82166116e0576116db60056116e4565b611621565b5090565b60006116ee610904565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b61171785611784565b6040518363ffffffff1660e01b8152600401611734929190612075565b60206040518083038186803b15801561174c57600080fd5b505afa158015611760573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611621919081019061198d565b60008082600581111561179357fe5b14156117c057507f63726f7373446f6d61696e4465706f7369744761734c696d69740000000000006113df565b60018260058111156117ce57fe5b14156117fb57507f63726f7373446f6d61696e457363726f774761734c696d6974000000000000006113df565b600282600581111561180957fe5b141561183657507f63726f7373446f6d61696e5265776172644761734c696d6974000000000000006113df565b600382600581111561184457fe5b141561187157507f63726f7373446f6d61696e5769746864726177616c4761734c696d69740000006113df565b600582600581111561187f57fe5b14156118ac57507f63726f7373446f6d61696e52656c61794761734c696d697400000000000000006113df565b60048260058111156118ba57fe5b14156118e757507f63726f7373446f6d61696e436c6f73654761734c696d697400000000000000006113df565b60405162461bcd60e51b815260040161038c906121ca565b803561162181612267565b805161162181612267565b80516116218161227b565b805161162181612284565b60006020828403121561193d57600080fd5b600061194984846118ff565b949350505050565b60006020828403121561196357600080fd5b6000611949848461190a565b60006020828403121561198157600080fd5b60006119498484611915565b60006020828403121561199f57600080fd5b60006119498484611920565b600080604083850312156119be57600080fd5b60006119ca8585611920565b92505060206119db85828601611920565b9150509250929050565b60006119f18383611a6a565b505060200190565b611a02816121fd565b82525050565b6000611a13826121f0565b611a1d81856121f4565b9350611a28836121ea565b8060005b83811015611a56578151611a4088826119e5565b9750611a4b836121ea565b925050600101611a2c565b509495945050505050565b611a0281612208565b611a028161035f565b611a02611a7f8261035f565b61035f565b6000611a8f826121f0565b611a9981856121f4565b9350611aa981856020860161222d565b611ab28161225d565b9093019392505050565b611a0281612222565b6000611ad26018836121f4565b7f496e6974696174696f6e206e6f742073757370656e6465640000000000000000815260200192915050565b6000611b0b601a836121f4565b7f4561726e65642062616c616e6365206973206e6f74207a65726f000000000000815260200192915050565b6000611b446035836121f4565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000611b9b601b836121f4565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611bd46014836121f4565b73125b9a5d1a585d1a5bdb881cdd5cdc195b99195960621b815260200192915050565b6000611c046026836121f4565b7f43616e6e6f74206d696772617465206966206f70656e20666f72206c697175698152653230ba34b7b760d11b602082015260400192915050565b6000611c4c6011836113df565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611c796016836121f4565b75125b9a5d1a585d1a5bdb8819195858dd1a5d985d195960521b815260200192915050565b6000611cab6019836121f4565b7f4d75737420626520746865206163636f756e74206f776e657200000000000000815260200192915050565b6000611ce4602f836121f4565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000611d356012836121f4565b714e6f206465627420746f206d69677261746560701b815260200192915050565b6000611d63601e836121f4565b7f446562742073686172652062616c616e6365206973206e6f74207a65726f0000815260200192915050565b6000611d9c601c836121f4565b7f43616e6e6f74206d696772617465207a65726f2062616c616e63657300000000815260200192915050565b6000611dd56019836113df565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000611e0e601b836121f4565b7f457363726f772062616c616e616365206973206e6f74207a65726f0000000000815260200192915050565b6000611e476017836121f4565b7f534e582062616c616e6365206973206e6f74207a65726f000000000000000000815260200192915050565b6000611e806016836121f4565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b6000611eb26021836121f4565b7f44656274204d69677261746f72204f6e204f7074696d69736d206e6f742073658152601d60fa1b602082015260400192915050565b611a0281612219565b6000611efd8286611a73565b602082019150611f0d8285611a73565b602082019150611f1d8284611a73565b506020019392505050565b6000611f3382611c3f565b9150611f3f8284611a73565b50602001919050565b6000611f3382611dc8565b6020810161162182846119f9565b60408101611f6f82856119f9565b611f7c60208301846119f9565b9392505050565b60408101611f9182856119f9565b611f7c6020830184611a61565b60608101611fac82866119f9565b8181036020830152611fbe8185611a84565b90506119496040830184611ee8565b60408101611fdb82856119f9565b611f7c6020830184611a6a565b60a08101611ff682886119f9565b6120036020830187611a6a565b6120106040830186611a6a565b61201d6060830185611a6a565b818103608083015261202f8184611a84565b979650505050505050565b60208082528101611f7c8184611a08565b602081016116218284611a61565b602081016116218284611a6a565b60408101611f6f8285611a6a565b60408101611fdb8285611a6a565b606081016120918286611a6a565b61209e6020830185611a6a565b6119496040830184611a6a565b604081016120b98285611a6a565b81810360208301526119498184611a84565b602081016116218284611abc565b60208082528101611f7c8184611a84565b6020808252810161162181611ac5565b6020808252810161162181611afe565b6020808252810161162181611b37565b6020808252810161162181611b8e565b6020808252810161162181611bc7565b6020808252810161162181611bf7565b6020808252810161162181611c6c565b6020808252810161162181611c9e565b6020808252810161162181611cd7565b6020808252810161162181611d28565b6020808252810161162181611d56565b6020808252810161162181611d8f565b6020808252810161162181611e01565b6020808252810161162181611e3a565b6020808252810161162181611e73565b6020808252810161162181611ea5565b60200190565b5190565b90815260200190565b60006116218261220d565b151590565b6001600160a01b031690565b63ffffffff1690565b6000611621826121fd565b60005b83811015612248578181015183820152602001612230565b83811115612257576000848401525b50505050565b601f01601f191690565b612270816121fd565b81146108a157600080fd5b61227081612208565b6122708161035f56fea365627a7a72315820ec4d4c574e6ed53dd90e0d5fa4498c8f8b1ed3782fed13f1c6cea65ca1b2f4b46c6578706572696d656e74616cf564736f6c63430005100040",
			"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": [],
					"name": "InitiationResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "InitiationSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalDebtSharesMigrated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalEscrowMigrated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalLiquidBalanceMigrated",
							"type": "uint256"
						}
					],
					"name": "MigrationInitiated",
					"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": "pure",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtTransferReceived",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtTransferSent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"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": "account",
							"type": "address"
						}
					],
					"name": "migrateDebt",
					"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": [],
					"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": "0x5716b457e0f2ee949da341df63b89c37b51c854391798ae0b66b8f82e22ff648",
				"urls": [
					"bzz-raw://18bc4cfa74d4e9c572e07a3bf1a1d98301b963ea71a7902816ed6611bb375721",
					"dweb:/ipfs/QmaEWgfhc1TxMX6znMqvEL5ruSuvqtrSTDACvME3XPo2Nm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DebtMigratorOnEthereum.sol": "DebtMigratorOnEthereum"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DebtMigratorOnEthereum.sol": {
						"keccak256": "0x5716b457e0f2ee949da341df63b89c37b51c854391798ae0b66b8f82e22ff648",
						"urls": [
							"bzz-raw://18bc4cfa74d4e9c572e07a3bf1a1d98301b963ea71a7902816ed6611bb375721",
							"dweb:/ipfs/QmaEWgfhc1TxMX6znMqvEL5ruSuvqtrSTDACvME3XPo2Nm"
						]
					}
				},
				"version": 1
			}
		},
		"SynthRedeemer": {
			"bytecode": "608060405234801561001057600080fd5b506040516110b03803806110b08339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561104b806100656000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806395a2251f1161007157806395a2251f146101a15780639bc3f269146101c7578063b915ece0146101ed578063d6232e8914610219578063e4dc2aa414610289578063f7888aec146102af576100b4565b806304f3bcec146100b95780632af64bd3146100dd5780633a70599c146100f9578063614d08f8146101275780637418536014610141578063899ffef414610149575b600080fd5b6100c16102dd565b604080516001600160a01b039092168252519081900360200190f35b6100e56102ec565b604080519115158252519081900360200190f35b6101256004803603604081101561010f57600080fd5b506001600160a01b0381351690602001356103f6565b005b61012f610685565b60408051918252519081900360200190f35b610125610699565b610151610864565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561018d578181015183820152602001610175565b505050509050019250505060405180910390f35b610125600480360360208110156101b757600080fd5b50356001600160a01b03166108d0565b61012f600480360360208110156101dd57600080fd5b50356001600160a01b0316610950565b6101256004803603604081101561020357600080fd5b506001600160a01b038135169060200135610962565b6101256004803603602081101561022f57600080fd5b81019060208101813564010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184602083028401116401000000008311171561027e57600080fd5b509092509050610a2b565b61012f6004803603602081101561029f57600080fd5b50356001600160a01b0316610aba565b61012f600480360360408110156102c557600080fd5b506001600160a01b0381358116916020013516610b5c565b6000546001600160a01b031681565b600060606102f8610864565b905060005b81518110156103ec57600082828151811061031457fe5b602090810291909101810151600081815260018352604080822054915481516321f8a72160e01b81526004810185905291519395506001600160a01b03928316949216926321f8a72192602480840193919291829003018186803b15801561037b57600080fd5b505afa15801561038f573d6000803e3d6000fd5b505050506040513d60208110156103a557600080fd5b50516001600160a01b03161415806103d257506000818152600160205260409020546001600160a01b0316155b156103e357600093505050506103f3565b506001016102fd565b5060019150505b90565b6103fe610bc0565b6001600160a01b03821660009081526002602052604090205482901561046b576040805162461bcd60e51b815260206004820152601b60248201527f53796e746820697320616c726561647920646570726563617465640000000000604482015290519081900360640190fd5b600082116104c0576040805162461bcd60e51b815260206004820152601b60248201527f4e6f207261746520666f722073796e746820746f2072656465656d0000000000604482015290519081900360640190fd5b6000836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104fb57600080fd5b505afa15801561050f573d6000803e3d6000fd5b505050506040513d602081101561052557600080fd5b50519050600061053b828563ffffffff610c2f16565b905080610546610c59565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d60208110156105c557600080fd5b5051101561061a576040805162461bcd60e51b815260206004820152601b60248201527f73555344206d75737420666972737420626520737570706c6965640000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526002602090815260409182902087905581519288168352820186905281810184905260608201839052517f729d5d4b6f2f5105eb1f707c4929870479e07c211953ef7014da9463fb15d88a9181900360800190a15050505050565b6c29bcb73a342932b232b2b6b2b960991b81565b60606106a3610864565b905060005b81518110156108605760008282815181106106bf57fe5b60209081029190910181015160008054604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818701526039808201869052825180830390910181526059820180845263dacb2d0160e01b9052605d8201868152607d83019384528151609d840152815196985094966001600160a01b039094169563dacb2d0195899592949093909260bd90910191908501908083838c5b83811015610778578181015183820152602001610760565b50505050905090810190601f1680156107a55780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156107c357600080fd5b505afa1580156107d7573d6000803e3d6000fd5b505050506040513d60208110156107ed57600080fd5b505160008381526001602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016106a8565b5050565b60408051600280825260608083018452926020830190803883390190505090506524b9b9bab2b960d11b8160008151811061089b57fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b816001815181106108c157fe5b60200260200101818152505090565b604080516370a0823160e01b8152336004820152905161094d9183916001600160a01b038316916370a08231916024808301926020929190829003018186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d602081101561094657600080fd5b5051610c75565b50565b60026020526000908152604090205481565b604080516370a0823160e01b8152336004820152905182916001600160a01b038516916370a0823191602480820192602092909190829003018186803b1580156109ab57600080fd5b505afa1580156109bf573d6000803e3d6000fd5b505050506040513d60208110156109d557600080fd5b50511015610a21576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6108608282610c75565b60005b81811015610ab557610aad838383818110610a4557fe5b905060200201356001600160a01b0316848484818110610a6157fe5b604080516370a0823160e01b81523360048201529051602092830294909401356001600160a01b0316936370a08231935060248083019392829003018186803b15801561091c57600080fd5b600101610a2e565b505050565b6000610b5660026000846001600160a01b03166001600160a01b0316815260200190815260200160002054836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d6020811015610b4857600080fd5b50519063ffffffff610c2f16565b92915050565b6001600160a01b0380831660008181526002602090815260408083205481516370a0823160e01b8152958716600487015290519294610bb994919391926370a0823192602480840193829003018186803b158015610b1e57600080fd5b9392505050565b610bc8610ea4565b6001600160a01b0316336001600160a01b031614610c2d576040805162461bcd60e51b815260206004820152601d60248201527f5265737472696374656420746f2049737375657220636f6e7472616374000000604482015290519081900360640190fd5b565b6000670de0b6b3a7640000610c4a848463ffffffff610eb816565b81610c5157fe5b049392505050565b6000610c706814de5b9d1a1cd554d160ba1b610f11565b905090565b6001600160a01b03821660009081526002602052604090205480610cd7576040805162461bcd60e51b815260206004820152601460248201527353796e7468206e6f742072656465656d61626c6560601b604482015290519081900360640190fd5b60008211610d2c576040805162461bcd60e51b815260206004820152601d60248201527f4e6f2062616c616e6365206f662073796e746820746f2072656465656d000000604482015290519081900360640190fd5b610d34610ea4565b604080516335a1b01b60e21b81526001600160a01b038681166004830152336024830152604482018690529151929091169163d686c06c9160648082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505050506000610dba8284610c2f90919063ffffffff16565b9050610dc4610c59565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e2357600080fd5b505af1158015610e37573d6000803e3d6000fd5b505050506040513d6020811015610e4d57600080fd5b5050604080516001600160a01b03861681523360208201528082018590526060810183905290517f8734fd5c7511ef698c61bce7dd8eefb212edea08cf7d9d4694e223c6f6121aef9181900360800190a150505050565b6000610c706524b9b9bab2b960d11b610f11565b600082610ec757506000610b56565b82820282848281610ed457fe5b0414610bb95760405162461bcd60e51b8152600401808060200182810382526021815260200180610ff66021913960400191505060405180910390fd5b600081815260016020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610fee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fb3578181015183820152602001610f9b565b50505050905090810190601f168015610fe05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582068c34be9839cb4d45897af3c91a7e9cedffb99be2180984df6a7893f31dbb8b264736f6c63430005100032",
			"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": "supplyInsUSD",
							"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": "amountInsUSD",
							"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": "balanceInsUSD",
							"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": "supplyInsUSD",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xa76ab672692076d99541cc875247ba3a8da93c0e89c4dd0edc1527c0a3cb09d1",
				"urls": [
					"bzz-raw://4bc95e3f6994630d05f81c087a9e92a5bf96420fda0f1122275a5b825d098a54",
					"dweb:/ipfs/QmXEPqzgK3Kx6QjyWKi4DtuiLC9hCf8qTSYwv2BGxMYtcE"
				]
			},
			"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": "0xa76ab672692076d99541cc875247ba3a8da93c0e89c4dd0edc1527c0a3cb09d1",
						"urls": [
							"bzz-raw://4bc95e3f6994630d05f81c087a9e92a5bf96420fda0f1122275a5b825d098a54",
							"dweb:/ipfs/QmXEPqzgK3Kx6QjyWKi4DtuiLC9hCf8qTSYwv2BGxMYtcE"
						]
					}
				},
				"version": 1
			}
		},
		"WrapperFactory": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162003ead38038062003ead8339810160408190526200003491620000fa565b80826001600160a01b038116620000685760405162461bcd60e51b81526004016200005f90620001b6565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b591849062000190565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550620002119050565b8051620000f481620001f7565b92915050565b600080604083850312156200010e57600080fd5b60006200011c8585620000e7565b92505060206200012f85828601620000e7565b9150509250929050565b6200014481620001e3565b82525050565b6200014481620001d1565b600062000164601983620001c8565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a0828562000139565b620001af60208301846200014a565b9392505050565b60208082528101620000f48162000155565b90815260200190565b60006001600160a01b038216620000f4565b6000620000f4826000620000f482620001d1565b6200020281620001d1565b81146200020e57600080fd5b50565b613c8c80620002216000396000f3fe608060405260043610620000d45760003560e01c806375d920a9116200008b5780638da5cb5b11620000615780638da5cb5b1462000232578063a106935d146200024a578063bb57ad20146200026f578063e0aa2797146200028757620000d4565b806375d920a914620001db57806379ba509714620001f3578063899ffef4146200020b57620000d4565b806304f3bcec14620000f75780631627540c14620001275780632af64bd3146200014e57806353a47bb71462000175578063614d08f8146200019c5780637418536014620001c3575b60405162461bcd60e51b8152600401620000ee90620011cf565b60405180910390fd5b3480156200010457600080fd5b506200010f620002ac565b6040516200011e919062001176565b60405180910390f35b3480156200013457600080fd5b506200014c6200014636600462000c73565b620002bb565b005b3480156200015b57600080fd5b50620001666200031d565b6040516200011e9190620010e4565b3480156200018257600080fd5b506200018d62000443565b6040516200011e91906200101d565b348015620001a957600080fd5b50620001b462000452565b6040516200011e9190620010f4565b348015620001d057600080fd5b506200014c62000467565b348015620001e857600080fd5b50620001b4620005cc565b3480156200020057600080fd5b506200014c6200065e565b3480156200021857600080fd5b5062000223620006ff565b6040516200011e9190620010d1565b3480156200023f57600080fd5b506200018d6200079d565b3480156200025757600080fd5b506200018d6200026936600462000cde565b620007ac565b3480156200027c57600080fd5b506200014c6200093b565b3480156200029457600080fd5b5062000166620002a636600462000c73565b62000a83565b6002546001600160a01b031681565b620002c562000b2f565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290620003129083906200101d565b60405180910390a150565b600060606200032b620006ff565b905060005b8151811015620004395760008282815181106200034957fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906200039c908590600401620010f4565b60206040518083038186803b158015620003b557600080fd5b505afa158015620003ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620003f0919081019062000c9c565b6001600160a01b03161415806200041c57506000818152600360205260409020546001600160a01b0316155b156200042f576000935050505062000440565b5060010162000330565b5060019150505b90565b6001546001600160a01b031681565b6d57726170706572466163746f727960901b81565b606062000473620006ff565b905060005b8151811015620005c85760008282815181106200049157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001620004d5919062001010565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200050392919062001152565b60206040518083038186803b1580156200051c57600080fd5b505afa15801562000531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000557919081019062000c9c565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890620005b5908490849062001104565b60405180910390a1505060010162000478565b5050565b6000620005d862000b5e565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016200060591906200102d565b60206040518083038186803b1580156200061e57600080fd5b505afa15801562000633573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000659919081019062000d32565b905090565b6001546001600160a01b031633146200068b5760405162461bcd60e51b8152600401620000ee9062001199565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92620006d0926001600160a01b03918216929116906200103d565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b604080516003808252608082019092526060916020820183803883390190505090506814de5b9d1a1cd554d160ba1b816000815181106200073c57fe5b6020026020010181815250506e466c657869626c6553746f7261676560881b816001815181106200076957fe5b60200260200101818152505066119959541bdbdb60ca1b816002815181106200078e57fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000620007b862000b2f565b600080546002546040516001600160a01b039283169290911690879087908790620007e39062000c11565b620007f39594939291906200105c565b604051809103906000f08015801562000810573d6000803e3d6000fd5b509050806001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200084f57600080fd5b505af115801562000864573d6000803e3d6000fd5b505050506200087262000b77565b604051631d5b277f60e01b81526001600160a01b0391821691631d5b277f91620008b9916d57726170706572466163746f727960901b919086169060019060040162001124565b600060405180830381600087803b158015620008d457600080fd5b505af1158015620008e9573d6000803e3d6000fd5b5050505083856001600160a01b03167f8aba3d0a3cbd86bcfc8d4d553823cb5030939fb35208794c1ca597046b2b561e836040516200092991906200102d565b60405180910390a390505b9392505050565b600062000947620005cc565b9050801562000a805760006200095c62000b5e565b6001600160a01b031663a9059cbb6200097462000b96565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015620009ad57600080fd5b505afa158015620009c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620009e8919081019062000c9c565b846040518363ffffffff1660e01b815260040162000a08929190620010b2565b602060405180830381600087803b15801562000a2357600080fd5b505af115801562000a38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000a5e919081019062000cbd565b905080620005c85760405162461bcd60e51b8152600401620000ee90620011ab565b50565b60008062000a9062000b77565b6040516323257c2b60e01b81526001600160a01b03918216916323257c2b9162000ad4916d57726170706572466163746f727960901b919088169060040162001114565b60206040518083038186803b15801562000aed57600080fd5b505afa15801562000b02573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000b28919081019062000d32565b1192915050565b6000546001600160a01b0316331462000b5c5760405162461bcd60e51b8152600401620000ee90620011bd565b565b6000620006596814de5b9d1a1cd554d160ba1b62000ba8565b6000620006596e466c657869626c6553746f7261676560881b62000ba8565b60006200065966119959541bdbdb60ca1b5b60008181526003602090815260408083205490516001600160a01b03909116918215159162000bda9186910162000fec565b6040516020818303038152906040529062000c0a5760405162461bcd60e51b8152600401620000ee919062001186565b5092915050565b6129a380620012a783390190565b803562000c2c816200126e565b92915050565b805162000c2c816200126e565b805162000c2c8162001285565b803562000c2c8162001290565b803562000c2c816200129b565b805162000c2c8162001290565b60006020828403121562000c8657600080fd5b600062000c94848462000c1f565b949350505050565b60006020828403121562000caf57600080fd5b600062000c94848462000c32565b60006020828403121562000cd057600080fd5b600062000c94848462000c3f565b60008060006060848603121562000cf457600080fd5b600062000d02868662000c59565b935050602062000d158682870162000c4c565b925050604062000d288682870162000c4c565b9150509250925092565b60006020828403121562000d4557600080fd5b600062000c94848462000c66565b600062000d61838362000df5565b505060200190565b62000d748162001224565b82525050565b62000d7481620011f9565b600062000d9282620011e7565b62000d9e8185620011eb565b935062000dab83620011e1565b8060005b8381101562000ddf57815162000dc6888262000d53565b975062000dd383620011e1565b92505060010162000daf565b509495945050505050565b62000d748162001206565b62000d748162000440565b62000d7462000e0f8262000440565b62000440565b62000d74816200120b565b600062000e2d82620011e7565b62000e398185620011eb565b935062000e4b81856020860162001231565b62000e568162001264565b9093019392505050565b600062000e6f603583620011eb565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600062000ec8601183620011f4565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600062000ef7601883620011eb565b7f5472616e7366657220646964206e6f7420737563636565640000000000000000815260200192915050565b600062000f32602f83620011eb565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600062000f85601983620011f4565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600062000fc0601783620011eb565b7f436f6e7472616374206973206e6f742070617961626c65000000000000000000815260200192915050565b600062000ff98262000eb9565b915062001007828462000e00565b50602001919050565b600062000ff98262000f76565b6020810162000c2c828462000d7a565b6020810162000c2c828462000d69565b604081016200104d828562000d7a565b62000934602083018462000d7a565b60a081016200106c828862000d7a565b6200107b602083018762000d7a565b6200108a604083018662000e15565b62001099606083018562000df5565b620010a8608083018462000df5565b9695505050505050565b60408101620010c2828562000d7a565b62000934602083018462000df5565b6020808252810162000934818462000d85565b6020810162000c2c828462000dea565b6020810162000c2c828462000df5565b604081016200104d828562000df5565b60408101620010c2828562000df5565b6060810162001134828662000df5565b62001143602083018562000df5565b62000c94604083018462000df5565b6040810162001162828562000df5565b818103602083015262000c94818462000e20565b6020810162000c2c828462000e15565b6020808252810162000934818462000e20565b6020808252810162000c2c8162000e60565b6020808252810162000c2c8162000ee8565b6020808252810162000c2c8162000f23565b6020808252810162000c2c8162000fb1565b60200190565b5190565b90815260200190565b919050565b600062000c2c8262001218565b151590565b600062000c2c82620011f9565b6001600160a01b031690565b600062000c2c826200120b565b60005b838110156200124e57818101518382015260200162001234565b838111156200125e576000848401525b50505050565b601f01601f191690565b6200127981620011f9565b811462000a8057600080fd5b620012798162001206565b620012798162000440565b62001279816200120b56fe60806040523480156200001157600080fd5b50604051620029a3380380620029a38339810160408190526200003491620001f7565b8380866001600160a01b038116620000695760405162461bcd60e51b8152600401620000609062000388565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000331565b60405180910390a1506000546001600160a01b0316620000ea5760405162461bcd60e51b8152600401620000609062000376565b60038054610100600160a81b0319166101006001600160a01b0393841602179055600580546001600160a01b031916868316179081905560068590556007849055600060085560405163095ea7b360e01b81529116915063095ea7b3906200015b9030906000199060040162000357565b602060405180830381600087803b1580156200017657600080fd5b505af11580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001b1919081019062000277565b50505050505062000419565b8051620001ca81620003de565b92915050565b8051620001ca81620003f8565b8051620001ca8162000403565b8051620001ca816200040e565b600080600080600060a086880312156200021057600080fd5b60006200021e8888620001bd565b95505060206200023188828901620001bd565b94505060406200024488828901620001ea565b93505060606200025788828901620001dd565b92505060806200026a88828901620001dd565b9150509295509295909350565b6000602082840312156200028a57600080fd5b6000620002988484620001d0565b949350505050565b620002ab81620003d1565b82525050565b620002ab81620003a3565b6000620002cb6011836200039a565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620002fa6019836200039a565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b620002ab81620003b5565b60408101620003418285620002a0565b620003506020830184620002b1565b9392505050565b60408101620003678285620002a0565b62000350602083018462000326565b60208082528101620001ca81620002bc565b60208082528101620001ca81620002eb565b90815260200190565b6000620001ca82620003c5565b151590565b90565b6000620001ca82620003a3565b6001600160a01b031690565b6000620001ca82620003b8565b620003e981620003a3565b8114620003f557600080fd5b50565b620003e981620003b0565b620003e981620003b5565b620003e981620003b8565b61257a80620004296000396000f3fe6080604052600436106101665760003560e01c80635c975abb116100d15780638a926d0f1161008a578063a0712d6811610064578063a0712d68146103d1578063dbd06c85146103f1578063ee5f3f5c14610406578063fc0c546a1461041b57610166565b80638a926d0f146103925780638da5cb5b146103a757806391b4ded9146103bc57610166565b80635c975abb146102fc5780635cfc1a51146103115780636ad8826914610326578063741853601461034657806379ba50971461035b578063899ffef41461037057610166565b80631f23a352116101235780631f23a352146102405780632af64bd31461025557806342966c6814610277578063509bf42a1461029757806353a47bb7146102ac5780635c095e54146102ce57610166565b806304f3bcec146101875780630902f1ac146101b25780631627540c146101d457806316c38b3c146101f657806317c943bc1461021657806318819a311461022b575b60405162461bcd60e51b815260040161017e90612393565b60405180910390fd5b34801561019357600080fd5b5061019c610430565b6040516101a99190612364565b60405180910390f35b3480156101be57600080fd5b506101c7610444565b6040516101a991906122ff565b3480156101e057600080fd5b506101f46101ef366004611c2a565b6104cb565b005b34801561020257600080fd5b506101f4610211366004611c6e565b610529565b34801561022257600080fd5b506101c761059e565b34801561023757600080fd5b506101c76105a4565b34801561024c57600080fd5b506101c76105af565b34801561026157600080fd5b5061026a6105b5565b6040516101a991906122f1565b34801561028357600080fd5b506101f4610292366004611cc8565b6106d1565b3480156102a357600080fd5b506101c7610b13565b3480156102b857600080fd5b506102c1610b1e565b6040516101a9919061223d565b3480156102da57600080fd5b506102ee6102e9366004611cc8565b610b2d565b6040516101a9929190612463565b34801561030857600080fd5b5061026a610b82565b34801561031d57600080fd5b506101c7610b8b565b34801561033257600080fd5b506102ee610341366004611cc8565b610bcd565b34801561035257600080fd5b506101f4610bda565b34801561036757600080fd5b506101f4610d30565b34801561037c57600080fd5b50610385610dcc565b6040516101a991906122e0565b34801561039e57600080fd5b506101c7610eee565b3480156103b357600080fd5b506102c1610ef9565b3480156103c857600080fd5b506101c7610f08565b3480156103dd57600080fd5b506101f46103ec366004611cc8565b610f0e565b3480156103fd57600080fd5b506101c761126d565b34801561041257600080fd5b506101c7611273565b34801561042757600080fd5b5061019c6112b7565b60035461010090046001600160a01b031681565b6005546040516370a0823160e01b81526000916001600160a01b0316906370a082319061047590309060040161224b565b60206040518083038186803b15801561048d57600080fd5b505afa1580156104a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104c59190810190611caa565b90505b90565b6104d36112c6565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061051e90839061223d565b60405180910390a150565b6105316112c6565b60035460ff16151581151514156105475761059b565b6003805460ff1916821515179081905560ff161561056457426002555b6003546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59161051e9160ff909116906122f1565b50565b60085481565b60006104c5306112f2565b60075481565b600060606105c1610dcc565b905060005b81518110156106c85760008282815181106105dd57fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b039081169361010090920416916321f8a72191610633918691016122ff565b60206040518083038186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106839190810190611c50565b6001600160a01b03161415806106ae57506000818152600460205260409020546001600160a01b0316155b156106bf57600093505050506104c8565b506001016105c6565b50600191505090565b60035460ff16156106f45760405162461bcd60e51b815260040161017e90612433565b6106fc6113cd565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561073457600080fd5b505afa158015610748573d6000803e3d6000fd5b505050506107546113e7565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040161077f919061224b565b60206040518083038186803b15801561079757600080fd5b505afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107cf9190810190611caa565b8111156107ee5760405162461bcd60e51b815260040161017e90612423565b6107f66113f4565b6001600160a01b0316632528f0fe6006546040518263ffffffff1660e01b815260040161082391906122ff565b60206040518083038186803b15801561083b57600080fd5b505afa15801561084f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108739190810190611c8c565b156108905760405162461bcd60e51b815260040161017e906123c3565b600061089a611273565b116108b75760405162461bcd60e51b815260040161017e90612453565b6000806108c5600854610bcd565b9150915060008082156109935784600854106108e157846108f4565b6008546108f4908563ffffffff61140f16565b915061098c610901610b13565b73__$b638afe8340e430a394ced2a8f566f670f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561094557600080fd5b505af4158015610959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061097d9190810190611caa565b8491900363ffffffff61143716565b9050610a60565b60085485906109a8908663ffffffff61146116565b106109b357846109c6565b6008546109c6908563ffffffff61146116565b9150610a5d6109d3610b13565b73__$b638afe8340e430a394ced2a8f566f670f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1757600080fd5b505af4158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a4f9190810190611caa565b84910163ffffffff61148d16565b90505b600083610a7c57610a77838363ffffffff61140f16565b610a7f565b60005b600554909150600090610a9d906001600160a01b03163033866114b7565b905080610abc5760405162461bcd60e51b815260040161017e906123f3565b610ac58461154f565b336001600160a01b03167f4c60206a5c1de41f3376d1d60f0949d96cb682033c90b1c2d9d9a62d4c4120c0848487604051610b0293929190612349565b60405180910390a250505050505050565b60006104c530611725565b6001546001600160a01b031681565b6000806000610b3a6105a4565b90506000811215610b6557610b5984600083900363ffffffff61177716565b60019250925050610b7d565b610b75848263ffffffff61177716565b600092509250505b915091565b60035460ff1681565b600080610b96610444565b90506000610ba2610eee565b9050808210610bb6576000925050506104c8565b610bc6818363ffffffff61140f16565b9250505090565b6000806000610b3a610b13565b6060610be4610dcc565b905060005b8151811015610d2c576000828281518110610c0057fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610c429190612232565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610c6e929190612329565b60206040518083038186803b158015610c8657600080fd5b505afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cbe9190810190611c50565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610d1a908490849061230d565b60405180910390a15050600101610be9565b5050565b6001546001600160a01b03163314610d5a5760405162461bcd60e51b815260040161017e90612383565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610d9d926001600160a01b039182169291169061228f565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610dd761178c565b60408051600680825260e08201909252919250606091906020820160c0803883390190505090506814de5b9d1a1cd554d160ba1b81600081518110610e1857fe5b60200260200101818152505060075481600181518110610e3457fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110610e5e57fe5b6020026020010181815250506844656274436163686560b81b81600381518110610e8457fe5b6020026020010181815250506b53797374656d53746174757360a01b81600481518110610ead57fe5b6020026020010181815250506d57726170706572466163746f727960901b81600581518110610ed857fe5b602002602001018181525050610bc682826117dd565b60006104c530611899565b6000546001600160a01b031681565b60025481565b60035460ff1615610f315760405162461bcd60e51b815260040161017e90612433565b610f396113cd565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015610f7157600080fd5b505afa158015610f85573d6000803e3d6000fd5b5050600554604051636eb1769f60e11b81526001600160a01b03909116925063dd62ed3e9150610fbb9033903090600401612259565b60206040518083038186803b158015610fd357600080fd5b505afa158015610fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061100b9190810190611caa565b81111561102a5760405162461bcd60e51b815260040161017e906123a3565b6005546040516370a0823160e01b81526001600160a01b03909116906370a082319061105a90339060040161224b565b60206040518083038186803b15801561107257600080fd5b505afa158015611086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110aa9190810190611caa565b8111156110c95760405162461bcd60e51b815260040161017e90612423565b6110d16113f4565b6001600160a01b0316632528f0fe6006546040518263ffffffff1660e01b81526004016110fe91906122ff565b60206040518083038186803b15801561111657600080fd5b505afa15801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061114e9190810190611c8c565b1561116b5760405162461bcd60e51b815260040161017e906123c3565b6000611175610b8b565b9050600081116111975760405162461bcd60e51b815260040161017e90612443565b60008282106111a657826111a8565b815b90506000806111b683610b2d565b915091506000816111d6576111d1848463ffffffff61140f16565b6111e6565b6111e6848463ffffffff61146116565b600554909150600090611204906001600160a01b03163330886114b7565b9050806112235760405162461bcd60e51b815260040161017e906123f3565b61122c826118e9565b337f5a3358a3d27a5373c0df2604662088d37894d56b7cfd27f315770440f4e0d919838561125a578661125d565b60005b88604051610b0293929190612349565b60065481565b600061127d6113f4565b6001600160a01b031663654a60ac600654600854631cd554d160e21b6040518463ffffffff1660e01b815260040161047593929190612349565b6005546001600160a01b031681565b6000546001600160a01b031633146112f05760405162461bcd60e51b815260040161017e90612403565b565b60006112fc611a08565b6001600160a01b031663c4f610ed6d53797374656d53657474696e677360901b71777261707065724d696e744665655261746560701b856040516020016113449291906121ec565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161137792919061231b565b60206040518083038186803b15801561138f57600080fd5b505afa1580156113a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113c79190810190611caa565b92915050565b60006104c56b53797374656d53746174757360a01b611a21565b60006104c5600754611a21565b60006104c56c45786368616e6765526174657360981b611a21565b6000828211156114315760405162461bcd60e51b815260040161017e906123d3565b50900390565b6000670de0b6b3a7640000611452848463ffffffff611a7e16565b8161145957fe5b049392505050565b6000828201838110156114865760405162461bcd60e51b815260040161017e906123b3565b9392505050565b6000611486826114ab85670de0b6b3a764000063ffffffff611a7e16565b9063ffffffff611ab816565b600060608484846040516024016114d0939291906122aa565b60408051601f19818403018152919052602080820180516001600160e01b03166323b872dd60e01b178152825160ff600090815293945092908390828b5af161151857600080fd5b60005160ff8114611536576001811461153657801561153f57600080fd5b60019350611544565b600093505b505050949350505050565b6000611559610444565b600854909150600090611572838563ffffffff61146116565b1161157e5760006115a1565b6008546115a190611595848663ffffffff61146116565b9063ffffffff61140f16565b905060006115ad6113f4565b6001600160a01b031663654a60ac60065484631cd554d160e21b6040518463ffffffff1660e01b81526004016115e593929190612349565b60206040518083038186803b1580156115fd57600080fd5b505afa158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116359190810190611caa565b905061163f6113e7565b6001600160a01b0316639dc29fac33866040518363ffffffff1660e01b815260040161166c929190612274565b600060405180830381600087803b15801561168657600080fd5b505af115801561169a573d6000803e3d6000fd5b505050506000811115611716576116af611aed565b6001600160a01b031663867904b46116c5611b04565b836040518363ffffffff1660e01b81526004016116e39291906122d2565b600060405180830381600087803b1580156116fd57600080fd5b505af1158015611711573d6000803e3d6000fd5b505050505b61171f83611b20565b50505050565b600061172f611a08565b6001600160a01b031663c4f610ed6d53797374656d53657474696e677360901b71777261707065724275726e4665655261746560701b856040516020016113449291906121ec565b60006114868383670de0b6b3a7640000611b95565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106117ce57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561180d578160200160208202803883390190505b50905060005b835181101561184f5783818151811061182857fe5b602002602001015182828151811061183c57fe5b6020908102919091010152600101611813565b5060005b82518110156118925782818151811061186857fe5b602002602001015182828651018151811061187f57fe5b6020908102919091010152600101611853565b5092915050565b60006118a3611a08565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f777261707065724d6178546f6b656e7360801b856040516020016113449291906121ec565b60006118f3610444565b9050600061190c8360085461146190919063ffffffff16565b821161191957600061193d565b60085461193d90611930908563ffffffff61146116565b839063ffffffff61140f16565b905060006119496113f4565b6001600160a01b031663654a60ac60065484631cd554d160e21b6040518463ffffffff1660e01b815260040161198193929190612349565b60206040518083038186803b15801561199957600080fd5b505afa1580156119ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119d19190810190611caa565b90506119db6113e7565b6001600160a01b031663867904b433866040518363ffffffff1660e01b815260040161166c929190612274565b60006104c56e466c657869626c6553746f7261676560881b5b60008181526004602090815260408083205490516001600160a01b039091169182151591611a5191869101612212565b604051602081830303815290604052906118925760405162461bcd60e51b815260040161017e9190612372565b600082611a8d575060006113c7565b82820282848281611a9a57fe5b04146114865760405162461bcd60e51b815260040161017e90612413565b6000808211611ad95760405162461bcd60e51b815260040161017e906123e3565b6000828481611ae457fe5b04949350505050565b60006104c56814de5b9d1a1cd554d160ba1b611a21565b60006104c56d57726170706572466163746f727960901b611a21565b611b28611bd1565b6001600160a01b0316639e3b92ca60065460085484036040518363ffffffff1660e01b8152600401611b5b92919061231b565b600060405180830381600087803b158015611b7557600080fd5b505af1158015611b89573d6000803e3d6000fd5b50505060089190915550565b600080600a8304611bac868663ffffffff611a7e16565b81611bb357fe5b0490506005600a820610611bc557600a015b600a9004949350505050565b60006104c56844656274436163686560b81b611a21565b80356113c781612511565b80516113c781612511565b80356113c781612525565b80516113c781612525565b80516113c78161252e565b80356113c78161252e565b600060208284031215611c3c57600080fd5b6000611c488484611be8565b949350505050565b600060208284031215611c6257600080fd5b6000611c488484611bf3565b600060208284031215611c8057600080fd5b6000611c488484611bfe565b600060208284031215611c9e57600080fd5b6000611c488484611c09565b600060208284031215611cbc57600080fd5b6000611c488484611c14565b600060208284031215611cda57600080fd5b6000611c488484611c1f565b6000611cf28383611d85565b505060200190565b611d03816124b2565b82525050565b611d0381612496565b611d03611d1e82612496565b6124f0565b6000611d2e82612484565b611d388185612488565b9350611d438361247e565b8060005b83811015611d71578151611d5b8882611ce6565b9750611d668361247e565b925050600101611d47565b509495945050505050565b611d03816124a1565b611d03816104c8565b611d03611d9a826104c8565b6104c8565b611d03816124b9565b6000611db382612484565b611dbd8185612488565b9350611dcd8185602086016124c4565b611dd681612501565b9093019392505050565b6000611ded603583612488565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000611e44601d83612488565b7f46616c6c6261636b2064697361626c65642c20757365206d696e742829000000815260200192915050565b6000611e7d601983612488565b7f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000815260200192915050565b6000611eb6601b83612488565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611eef601883612488565b7f43757272656e6379207261746520697320696e76616c69640000000000000000815260200192915050565b6000611f28601e83612488565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611f61601a83612488565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611f9a601183612491565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611fc7601883612488565b7f5472616e7366657220646964206e6f7420737563636565640000000000000000815260200192915050565b6000612000602f83612488565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000612051602183612488565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000612094601283612488565b7142616c616e636520697320746f6f206c6f7760701b815260200192915050565b60006120c2603c83612488565b7f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642081527f7768696c652074686520636f6e74726163742069732070617573656400000000602082015260400192915050565b6000612121601983612491565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061215a602683612488565b7f436f6e747261637420686173206e6f20737061726520636170616369747920748152651bc81b5a5b9d60d21b602082015260400192915050565b60006121a2603583612488565b7f436f6e74726163742063616e6e6f74206275726e20666f7220746f6b656e2c20815274746f6b656e2062616c616e6365206973207a65726f60581b602082015260400192915050565b60006121f88285611d8e565b6020820191506122088284611d12565b5060140192915050565b600061221d82611f8d565b91506122298284611d8e565b50602001919050565b600061221d82612114565b602081016113c78284611d09565b602081016113c78284611cfa565b604081016122678285611cfa565b6114866020830184611cfa565b604081016122828285611cfa565b6114866020830184611d85565b6040810161229d8285611d09565b6114866020830184611d09565b606081016122b88286611d09565b6122c56020830185611d09565b611c486040830184611d85565b604081016122828285611d09565b602080825281016114868184611d23565b602081016113c78284611d7c565b602081016113c78284611d85565b6040810161229d8285611d85565b604081016122828285611d85565b604081016123378285611d85565b8181036020830152611c488184611da8565b606081016123578286611d85565b6122c56020830185611d85565b602081016113c78284611d9f565b602080825281016114868184611da8565b602080825281016113c781611de0565b602080825281016113c781611e37565b602080825281016113c781611e70565b602080825281016113c781611ea9565b602080825281016113c781611ee2565b602080825281016113c781611f1b565b602080825281016113c781611f54565b602080825281016113c781611fba565b602080825281016113c781611ff3565b602080825281016113c781612044565b602080825281016113c781612087565b602080825281016113c7816120b5565b602080825281016113c78161214d565b602080825281016113c781612195565b604081016124718285611d85565b6114866020830184611d7c565b60200190565b5190565b90815260200190565b919050565b60006113c7826124a6565b151590565b6001600160a01b031690565b60006113c7825b60006113c782612496565b60005b838110156124df5781810151838201526020016124c7565b8381111561171f5750506000910152565b60006113c78260006113c78261250b565b601f01601f191690565b60601b90565b61251a81612496565b811461059b57600080fd5b61251a816124a1565b61251a816104c856fea365627a7a7231582065db8c625c3c6222195381653e5eac07af9efd57347000770d2e942952387f046c6578706572696d656e74616cf564736f6c63430005100040a365627a7a7231582005e8d213f16f30911892bc45e4eaf7a2704dddf859c4b6c557bc23e3d94306e16c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x5f29229948667775cd855c37f4da118d9eecc2e3d09639f80e1fd26ccc43e511",
				"urls": [
					"bzz-raw://6d564a65b052e6c9879f76d759b296eff676987e3b56ea0a19985e49a04bee03",
					"dweb:/ipfs/Qmepxf1mZ94gbhpdbX12YeYqbSM4DF8hjFcgqeNdc1LuSv"
				]
			},
			"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": "0x5f29229948667775cd855c37f4da118d9eecc2e3d09639f80e1fd26ccc43e511",
						"urls": [
							"bzz-raw://6d564a65b052e6c9879f76d759b296eff676987e3b56ea0a19985e49a04bee03",
							"dweb:/ipfs/Qmepxf1mZ94gbhpdbX12YeYqbSM4DF8hjFcgqeNdc1LuSv"
						]
					}
				},
				"version": 1
			}
		},
		"DirectIntegrationManager": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162001b4038038062001b408339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b61191d80620002236000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063697b659b11610066578063697b659b14610113578063741853601461013357806379ba50971461013b578063899ffef4146101435780638da5cb5b146101585761009e565b806304f3bcec146100a35780631627540c146100c15780632af64bd3146100d657806353a47bb7146100eb5780635a68456214610100575b600080fd5b6100ab610160565b6040516100b891906117c0565b60405180910390f35b6100d46100cf366004611280565b61016f565b005b6100de6101cd565b6040516100b8919061175b565b6100f36102e5565b6040516100b8919061171a565b6100d461010e3660046112c4565b6102f4565b61012661012136600461132f565b610343565b6040516100b8919061180f565b6100d46106a3565b6100d46107f9565b61014b61089e565b6040516100b8919061174a565b6100f36108ef565b6002546001600160a01b031681565b6101776108fe565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906101c290839061171a565b60405180910390a150565b600060606101d961089e565b905060005b81518110156102db5760008282815181106101f557fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610246908590600401611769565b60206040518083038186803b15801561025e57600080fd5b505afa158015610272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061029691908101906112a6565b6001600160a01b03161415806102c157506000818152600360205260409020546001600160a01b0316155b156102d257600093505050506102e2565b506001016101de565b5060019150505b90565b6001546001600160a01b031681565b6102fc6108fe565b60005b8281101561033c576103348585858481811061031757fe5b905060200201358480360361032f9190810190611369565b61092a565b6001016102ff565b5050505050565b61034b611046565b610353611046565b506001600160a01b03808416600090815260046020818152604080842087855282529283902083516101a080820186528254825260018301548716828501908152600284015488168388015260038401546060840152948301546080830152600583015460a0830152600683015460c0830152600783015460e083015260088301546101008301526009830154610120830152600a830154610140830152600b830154610160830152600c90920154610180820152845191820190945286815291519293919290830191166104d15761042a610a54565b6001600160a01b0316639ee5955a6c45786368616e6765526174657360981b713232bc283934b1b2a0b3b3b932b3b0ba37b960711b6040518363ffffffff1660e01b815260040161047c929190611785565b60206040518083038186803b15801561049457600080fd5b505afa1580156104a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104cc91908101906112a6565b6104d7565b82602001515b6001600160a01b0316815260200160006001600160a01b031683604001516001600160a01b031614156105125761050d85610a76565b610518565b82604001515b6001600160a01b0316815260200160008360600151116105405761053b85610b56565b610546565b82606001515b815260200160008360800151116105645761055f610c2e565b61056a565b82608001515b815260200160008360a001511161058857610583610cd9565b61058e565b8260a001515b815260200160008360c00151116105ad576105a885610d41565b6105b3565b8260c001515b815260200160008360e00151116105d2576105cd85610d9e565b6105d8565b8260e001515b81526020016000836101000151116105f8576105f385610dfb565b6105ff565b8261010001515b815260200160008361012001511161061e57610619610e4a565b610625565b8261012001515b81526020016000836101400151116106445761063f610eaa565b61064b565b8261014001515b815260200160008361016001511161066a57610665610f12565b610671565b8261016001515b81526020016000836101800151116106905761068b610f7a565b610697565b8261018001515b90529150505b92915050565b60606106ad61089e565b905060005b81518110156107f55760008282815181106106c957fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161070b919061170f565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016107379291906117a0565b60206040518083038186803b15801561074f57600080fd5b505afa158015610763573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061078791908101906112a6565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906107e39084908490611777565b60405180910390a150506001016106b2565b5050565b6001546001600160a01b0316331461082c5760405162461bcd60e51b8152600401610823906117df565b60405180910390fd5b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261086f926001600160a01b0391821692911690611728565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106108e057fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000546001600160a01b031633146109285760405162461bcd60e51b8152600401610823906117ef565b565b6001600160a01b0383166109505760405162461bcd60e51b8152600401610823906117ff565b6001600160a01b03808416600081815260046020818152604080842088855282529283902086518155908601516001820180549187166001600160a01b031992831617905583870151600283018054919097169116179094556060850151600385015560808501519084015560a0840151600584015560c0840151600684015560e0840151600784015561010084015160088401556101208401516009840155610140840151600a840155610160840151600b840155610180840151600c9093019290925590518391907fac520ced31ca01ad123194e41989084aeb335064dd7b37291e59a85eb9c972ec90610a4790859061180f565b60405180910390a3505050565b6000610a716e466c657869626c6553746f7261676560881b610fe2565b905090565b6000610a80610a54565b6001600160a01b0316639ee5955a6d53797374656d53657474696e677360901b7f61746f6d69634571756976616c656e74466f7244657850726963696e6700000085604051602001610ad39291906116c9565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401610b06929190611785565b60206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061069d91908101906112a6565b6000610b60610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7461746f6d696345786368616e67654665655261746560581b85604051602001610bab9291906116c9565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401610bde929190611785565b60206040518083038186803b158015610bf657600080fd5b505afa158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061069d9190810190611388565b6000610c38610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f61746f6d69635477617057696e646f7760801b6040518363ffffffff1660e01b8152600401610c89929190611785565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a719190810190611388565b6000610ce3610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d69634d6178566f6c756d65506572426c6f636b0000000000000000006040518363ffffffff1660e01b8152600401610c89929190611785565b6000610d4b610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f770000000085604051602001610bab9291906116c9565b6000610da8610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d6963566f6c5570646174655468726573686f6c64000000000000000085604051602001610bab9291906116c9565b6000610e05610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e65786368616e67654665655261746560881b85604051602001610bab9291906116c9565b6000610e54610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7465786368616e67654d617844796e616d696346656560581b6040518363ffffffff1660e01b8152600401610c89929190611785565b6000610eb4610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f65786368616e676544796e616d6963466565526f756e647300000000000000006040518363ffffffff1660e01b8152600401610c89929190611785565b6000610f1c610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f65786368616e676544796e616d69634665655468726573686f6c6400000000006040518363ffffffff1660e01b8152600401610c89929190611785565b6000610f84610a54565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f65786368616e676544796e616d696346656557656967687444656361790000006040518363ffffffff1660e01b8152600401610c89929190611785565b60008181526003602090815260408083205490516001600160a01b039091169182151591611012918691016116ef565b6040516020818303038152906040529061103f5760405162461bcd60e51b815260040161082391906117ce565b5092915050565b604051806101a001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b803561069d816118ba565b805161069d816118ba565b60008083601f8401126110eb57600080fd5b50813567ffffffffffffffff81111561110357600080fd5b60208301915083602082028301111561111b57600080fd5b9250929050565b803561069d816118d1565b60006101a0828403121561114057600080fd5b50919050565b60006101a0828403121561115957600080fd5b6111646101a061181e565b905060006111728484611122565b8252506020611183848483016110c3565b6020830152506040611197848285016110c3565b60408301525060606111ab84828501611122565b60608301525060806111bf84828501611122565b60808301525060a06111d384828501611122565b60a08301525060c06111e784828501611122565b60c08301525060e06111fb84828501611122565b60e08301525061010061121084828501611122565b6101008301525061012061122684828501611122565b6101208301525061014061123c84828501611122565b6101408301525061016061125284828501611122565b6101608301525061018061126884828501611122565b6101808301525092915050565b805161069d816118d1565b60006020828403121561129257600080fd5b600061129e84846110c3565b949350505050565b6000602082840312156112b857600080fd5b600061129e84846110ce565b6000806000806101e085870312156112db57600080fd5b60006112e787876110c3565b945050602085013567ffffffffffffffff81111561130457600080fd5b611310878288016110d9565b935093505060406113238782880161112d565b91505092959194509250565b6000806040838503121561134257600080fd5b600061134e85856110c3565b925050602061135f85828601611122565b9150509250929050565b60006101a0828403121561137c57600080fd5b600061129e8484611146565b60006020828403121561139a57600080fd5b600061129e8484611275565b60006113b2838361142b565b505060200190565b6113c38161185d565b82525050565b60006113d48261184b565b6113de818561184f565b93506113e983611845565b8060005b8381101561141757815161140188826113a6565b975061140c83611845565b9250506001016113ed565b509495945050505050565b6113c381611868565b6113c3816102e2565b6113c3611440826102e2565b6102e2565b6113c381611879565b60006114598261184b565b611463818561184f565b9350611473818560208601611884565b61147c816118b0565b9093019392505050565b600061149360358361184f565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006114ea601183611858565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611517602f8361184f565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600061156860138361184f565b720416464726573732063616e6e6f74206265203606c1b815260200192915050565b6000611597601983611858565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b80516101a08301906115d5848261142b565b5060208201516115e860208501826113ba565b5060408201516115fb60408501826113ba565b50606082015161160e606085018261142b565b506080820151611621608085018261142b565b5060a082015161163460a085018261142b565b5060c082015161164760c085018261142b565b5060e082015161165a60e085018261142b565b5061010082015161166f61010085018261142b565b5061012082015161168461012085018261142b565b5061014082015161169961014085018261142b565b506101608201516116ae61016085018261142b565b506101808201516116c361018085018261142b565b50505050565b60006116d58285611434565b6020820191506116e58284611434565b5060200192915050565b60006116fa826114dd565b91506117068284611434565b50602001919050565b60006116fa8261158a565b6020810161069d82846113ba565b6040810161173682856113ba565b61174360208301846113ba565b9392505050565b6020808252810161174381846113c9565b6020810161069d8284611422565b6020810161069d828461142b565b60408101611736828561142b565b60408101611793828561142b565b611743602083018461142b565b604081016117ae828561142b565b818103602083015261129e818461144e565b6020810161069d8284611445565b60208082528101611743818461144e565b6020808252810161069d81611486565b6020808252810161069d8161150a565b6020808252810161069d8161155b565b6101a0810161069d82846115c3565b60405181810167ffffffffffffffff8111828210171561183d57600080fd5b604052919050565b60200190565b5190565b90815260200190565b919050565b600061069d8261186d565b151590565b6001600160a01b031690565b600061069d8261185d565b60005b8381101561189f578181015183820152602001611887565b838111156116c35750506000910152565b601f01601f191690565b6118c38161185d565b81146118ce57600080fd5b50565b6118c3816102e256fea365627a7a72315820b0ec596a6e278841ba7e78edf247d01c5d00d3c25808addcc46dce4cbdc0f81c6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "integration",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "currencyKey",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "dexPriceAggregator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "atomicEquivalentForDexPricing",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "atomicExchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicTwapWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicMaxVolumePerBlock",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityConsiderationWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityUpdateThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeMaxDynamicFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeRounds",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeWeightDecay",
									"type": "uint256"
								}
							],
							"indexed": false,
							"internalType": "struct IDirectIntegrationManager.ParameterIntegrationSettings",
							"name": "overrides",
							"type": "tuple"
						}
					],
					"name": "IntegrationParametersSet",
					"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": "integration",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getExchangeParameters",
					"outputs": [
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "currencyKey",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "dexPriceAggregator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "atomicEquivalentForDexPricing",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "atomicExchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicTwapWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicMaxVolumePerBlock",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityConsiderationWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityUpdateThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeMaxDynamicFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeRounds",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeWeightDecay",
									"type": "uint256"
								}
							],
							"internalType": "struct IDirectIntegrationManager.ParameterIntegrationSettings",
							"name": "overrides",
							"type": "tuple"
						}
					],
					"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": [
						{
							"internalType": "address",
							"name": "integration",
							"type": "address"
						},
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "currencyKey",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "dexPriceAggregator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "atomicEquivalentForDexPricing",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "atomicExchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicTwapWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicMaxVolumePerBlock",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityConsiderationWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "atomicVolatilityUpdateThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeFeeRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeMaxDynamicFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeRounds",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeThreshold",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "exchangeDynamicFeeWeightDecay",
									"type": "uint256"
								}
							],
							"internalType": "struct IDirectIntegrationManager.ParameterIntegrationSettings",
							"name": "settings",
							"type": "tuple"
						}
					],
					"name": "setExchangeParameters",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xade00489e145513dce57ad2a921fff266a0cd4cac5fff1456b4d3ddf6869593d",
				"urls": [
					"bzz-raw://4221069e4c4ec630482c0c59eaeaf78efbcce14d3658e3823be9b80a9b43c22f",
					"dweb:/ipfs/QmahGxAUpMm4hK9nFHExCuvypzzbQaNrTaXUUWzhRDHNtu"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DirectIntegrationManager.sol": "DirectIntegrationManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DirectIntegrationManager.sol": {
						"keccak256": "0xade00489e145513dce57ad2a921fff266a0cd4cac5fff1456b4d3ddf6869593d",
						"urls": [
							"bzz-raw://4221069e4c4ec630482c0c59eaeaf78efbcce14d3658e3823be9b80a9b43c22f",
							"dweb:/ipfs/QmahGxAUpMm4hK9nFHExCuvypzzbQaNrTaXUUWzhRDHNtu"
						]
					}
				},
				"version": 1
			}
		},
		"TokenState": {
			"bytecode": "608060405234801561001057600080fd5b5060405161075d38038061075d8339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050506105b7806101a66000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610155578063aefc4ccb1461015d578063b46310f614610165578063da46098c14610191578063dd62ed3e146101c75761009e565b80631627540c146100a357806352f445ca146100cb57806353a47bb7146100f157806370a082311461011557806379ba50971461014d575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b03166101f5565b005b6100c9600480360360208110156100e157600080fd5b50356001600160a01b0316610251565b6100f96102ad565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603602081101561012b57600080fd5b50356001600160a01b03166102bc565b60408051918252519081900360200190f35b6100c96102ce565b6100f961038a565b6100f9610399565b6100c96004803603604081101561017b57600080fd5b506001600160a01b0381351690602001356103a8565b6100c9600480360360608110156101a757600080fd5b506001600160a01b0381358116916020810135909116906040013561040d565b61013b600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610482565b6101fd61049f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b61025961049f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b60036020526000908152604090205481565b6001546001600160a01b031633146103175760405162461bcd60e51b81526004018080602001828103825260358152602001806104eb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6002546001600160a01b031633146103f15760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b03909116600090815260036020526040902055565b6002546001600160a01b031633146104565760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b600460209081526000928352604080842090915290825290205481565b6000546001600160a01b031633146104e85760405162461bcd60e51b815260040180806020018281038252602f815260200180610520602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a72315820064ac8e5839d3ec7ef3170759424d01ba09cd8ff411a07fce9fd881fdd9a230e64736f6c63430005100032",
			"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": "0xdfffa974522614e1738093ddea8467e73e484c634fd2cb2ac4649dde497055de",
				"urls": [
					"bzz-raw://6272e6e7ae34d3c75a54ce53640f39540873761ce26961a92e3ba3bb7153b3bb",
					"dweb:/ipfs/QmNqn3WCW8CPVnYG8QsXwNHFjWNUtqt5S9YTf9GjgbmYtB"
				]
			},
			"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": "0xdfffa974522614e1738093ddea8467e73e484c634fd2cb2ac4649dde497055de",
						"urls": [
							"bzz-raw://6272e6e7ae34d3c75a54ce53640f39540873761ce26961a92e3ba3bb7153b3bb",
							"dweb:/ipfs/QmNqn3WCW8CPVnYG8QsXwNHFjWNUtqt5S9YTf9GjgbmYtB"
						]
					}
				},
				"version": 1
			}
		},
		"MultiCollateralSynth": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620037af380380620037af833981016040819052620000349162000363565b878787878787878780888888888660128a86816001600160a01b038116620000795760405162461bcd60e51b81526004016200007090620005a6565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c69184906200054a565b60405180910390a1506000546001600160a01b0316620000fa5760405162461bcd60e51b8152600401620000709062000594565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e90620001479083906200053a565b60405180910390a150600480546001600160a01b0319166001600160a01b03881617905584516200018090600590602088019062000235565b5083516200019690600690602087019062000235565b50506007919091556008805460ff191660ff90921691909117610100600160a81b0319166101006001600160a01b03978816021790555050509089169050620001f35760405162461bcd60e51b8152600401620000709062000570565b6001600160a01b0384166200021c5760405162461bcd60e51b8152600401620000709062000582565b5050600a5550620006a69b505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027857805160ff1916838001178555620002a8565b82800160010185558215620002a8579182015b82811115620002a85782518255916020019190600101906200028b565b50620002b6929150620002ba565b5090565b620002d791905b80821115620002b65760008155600101620002c1565b90565b8051620002e78162000676565b92915050565b8051620002e78162000690565b8051620002e7816200069b565b600082601f8301126200031957600080fd5b8151620003306200032a82620005df565b620005b8565b915080825260208301602083018583830111156200034d57600080fd5b6200035a83828462000643565b50505092915050565b600080600080600080600080610100898b0312156200038157600080fd5b60006200038f8b8b620002da565b9850506020620003a28b828c01620002fa565b97505060408901516001600160401b03811115620003bf57600080fd5b620003cd8b828c0162000307565b96505060608901516001600160401b03811115620003ea57600080fd5b620003f88b828c0162000307565b95505060806200040b8b828c01620002da565b94505060a06200041e8b828c01620002ed565b93505060c0620004318b828c01620002ed565b92505060e0620004448b828c01620002da565b9150509295985092959890939650565b6200045f8162000636565b82525050565b6200045f8162000610565b60006200047f60128362000607565b7105f70726f78792063616e6e6f7420626520360741b815260200192915050565b6000620004af60128362000607565b7105f6f776e65722063616e6e6f7420626520360741b815260200192915050565b6000620004df60118362000607565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b60006200050e60198362000607565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60208101620002e7828462000454565b604081016200055a828562000454565b62000569602083018462000465565b9392505050565b60208082528101620002e78162000470565b60208082528101620002e781620004a0565b60208082528101620002e781620004d0565b60208082528101620002e781620004ff565b6040518181016001600160401b0381118282101715620005d757600080fd5b604052919050565b60006001600160401b03821115620005f657600080fd5b506020601f91909101601f19160190565b90815260200190565b6000620002e7826200062a565b6000620002e78262000610565b6001600160a01b031690565b6000620002e7826200061d565b60005b838110156200066057818101518382015260200162000646565b8381111562000670576000848401525b50505050565b620006818162000610565b81146200068d57600080fd5b50565b6200068181620002d7565b62000681816200061d565b6130f980620006b66000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063d67bdd25116100ad578063e90dd9e21161007c578063e90dd9e2146103d5578063eb1edd61146103dd578063ec556889146103e5578063f7ea7a3d146103ed578063ffff51d614610400576101fb565b8063d67bdd251461039f578063dbd06c85146103a7578063dd62ed3e146103af578063e73cced3146103c2576101fb565b80639f769807116100e95780639f76980714610353578063a9059cbb14610366578063b014c3a314610379578063bc67f8321461038c576101fb565b80638da5cb5b1461031d57806395d89b411461032557806397107d6d1461032d5780639dc29fac14610340576101fb565b8063313ce56711610192578063741853601161016157806374185360146102e557806379ba5097146102ed578063867904b4146102f5578063899ffef414610308576101fb565b8063313ce567146102ad57806353a47bb7146102b5578063614d08f8146102ca57806370a08231146102d2576101fb565b806318160ddd116101ce57806318160ddd1461026857806323b872dd1461027d5780632af64bd3146102905780632e0f262514610298576101fb565b806304f3bcec1461020057806306fdde031461021e578063095ea7b3146102335780631627540c14610253575b600080fd5b610208610413565b6040516102159190612ee7565b60405180910390f35b610226610427565b6040516102159190612ef5565b610246610241366004612595565b6104b5565b6040516102159190612dbd565b6102666102613660046124ca565b610542565b005b6102706105a0565b6040516102159190612dcb565b61024661028b366004612548565b6105a6565b6102466105cf565b6102a06106ec565b6040516102159190612fe7565b6102a06106f1565b6102bd6106fa565b6040516102159190612cae565b610270610709565b6102706102e03660046124ca565b610724565b6102666107ae565b610266610904565b610266610303366004612595565b6109a9565b6103106109d8565b6040516102159190612dac565b6102bd610a9c565b610226610aab565b61026661033b3660046124ca565b610b06565b61026661034e366004612595565b610b59565b6102666103613660046125e3565b610b8d565b610246610374366004612595565b610bbc565b610246610387366004612595565b610c4d565b61026661039a3660046124ca565b610daa565b6102bd610dd4565b610270610de3565b6102706103bd36600461250e565b610de9565b6102466103d0366004612548565b610e6d565b610208610fb7565b6102bd610fc6565b610208610fde565b6102666103fb366004612601565b610fed565b61027061040e3660046124ca565b610ffa565b60085461010090046001600160a01b031681565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b505050505081565b60006104bf611139565b60035460048054604051633691826360e21b81526001600160a01b03938416939091169163da46098c916104f99185918991899101612d69565b600060405180830381600087803b15801561051357600080fd5b505af1158015610527573d6000803e3d6000fd5b50505050610536818585611179565b60019150505b92915050565b61054a611230565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610595908390612cae565b60405180910390a150565b60075481565b60006105b061125a565b6105ba84836112af565b6105c58484846113e4565b90505b9392505050565b600060606105db6109d8565b905060005b81518110156106e25760008282815181106105f757fe5b602090810291909101810151600081815260099092526040918290205460085492516321f8a72160e01b81529193506001600160a01b0390811692610100900416906321f8a7219061064d908590600401612dcb565b60206040518083038186803b15801561066557600080fd5b505afa158015610679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061069d91908101906124f0565b6001600160a01b03161415806106c857506000818152600960205260409020546001600160a01b0316155b156106d957600093505050506106e9565b506001016105e0565b5060019150505b90565b601281565b60085460ff1681565b6001546001600160a01b031681565b7309aead8e8d286ded8d8c2e8cae4c2d8a6f2dce8d60631b81565b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a082319161075691869101612cae565b60206040518083038186803b15801561076e57600080fd5b505afa158015610782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107a6919081019061261f565b90505b919050565b60606107b86109d8565b905060005b81518110156109005760008282815181106107d457fe5b602002602001015190506000600860019054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016108169190612c98565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610842929190612de7565b60206040518083038186803b15801561085a57600080fd5b505afa15801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061089291908101906124f0565b6000838152600960205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906108ee9084908490612dd9565b60405180910390a150506001016107bd565b5050565b6001546001600160a01b031633146109375760405162461bcd60e51b815260040161092e90612f16565b60405180910390fd5b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261097a926001600160a01b0391821692911690612cca565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6109b233611574565b6109ce5760405162461bcd60e51b815260040161092e90612f83565b61090082826116ba565b6060806109e36117d1565b60408051600380825260808201909252919250606091906020820183803883390190505090507021b7b63630ba32b930b626b0b730b3b2b960791b81600081518110610a2b57fe5b6020026020010181815250506b22ba3432b92bb930b83832b960a11b81600181518110610a5457fe5b6020026020010181815250506d57726170706572466163746f727960901b81600281518110610a7f57fe5b602002602001018181525050610a9582826118be565b9250505090565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104ad5780601f10610482576101008083540402835291602001916104ad565b610b0e611230565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e90610595908390612cbc565b610b6233611574565b610b7e5760405162461bcd60e51b815260040161092e90612f83565b610b88828261197a565b505050565b610b95611a41565b600480546001600160a01b0319166001600160a01b038316179055610bb981611aaf565b50565b6000610bc661125a565b600354610bdc906001600160a01b0316836112af565b6001600160a01b03831673feefeefeefeefeefeefeefeefeefeefeefeefeef1415610c1257610c0b8383611b56565b905061053c565b6001600160a01b038316610c3657600354610c0b906001600160a01b03168361197a565b6003546105c8906001600160a01b03168484611cac565b6000610c5761125a565b6000610c61611e36565b600354600a546040516306c5a00b60e21b81526001600160a01b0393841693631b16802c93610c9593911691600401612d91565b606060405180830381600087803b158015610caf57600080fd5b505af1158015610cc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ce7919081019061266d565b9250849150508115610d7857600480546003546040516370a0823160e01b81526001600160a01b03928316936370a0823193610d2593169101612cae565b60206040518083038186803b158015610d3d57600080fd5b505afa158015610d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d75919081019061261f565b90505b808411610d855783610d87565b805b600354909450610da1906001600160a01b03168686611cac565b95945050505050565b610db2611e52565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b600a5481565b60048054604051636eb1769f60e11b81526000926001600160a01b039092169163dd62ed3e91610e1d918791879101612cca565b60206040518083038186803b158015610e3557600080fd5b505afa158015610e49573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105c8919081019061261f565b6000610e7761125a565b6000610e81611e36565b6001600160a01b0316631b16802c86600a546040518363ffffffff1660e01b8152600401610eb0929190612d91565b606060405180830381600087803b158015610eca57600080fd5b505af1158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f02919081019061266d565b9250849150508115610f9057600480546040516370a0823160e01b81526001600160a01b03909116916370a0823191610f3d918a9101612cae565b60206040518083038186803b158015610f5557600080fd5b505afa158015610f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f8d919081019061261f565b90505b80841015610f9e5783610fa0565b805b9350610fad8686866113e4565b9695505050505050565b6004546001600160a01b031681565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b610ff5611a41565b600755565b600080611005611e36565b6001600160a01b03166319d5c66584600a546040518363ffffffff1660e01b8152600401611034929190612d91565b60606040518083038186803b15801561104c57600080fd5b505afa158015611060573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611084919081019061266d565b5050600480546040516370a0823160e01b81529293506000926001600160a01b03909116916370a08231916110bb91889101612cae565b60206040518083038186803b1580156110d357600080fd5b505afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061110b919081019061261f565b905080821115611120576000925050506107a9565b611130818363ffffffff611e7c16565b925050506107a9565b6002546001600160a01b0316331480159061115f57506003546001600160a01b03163314155b1561117757600380546001600160a01b031916331790555b565b6002546040516001600160a01b039091169063907dff979061119f908490602001612dcb565b60405160208183030381529060405260036040516111bc90612c77565b60405180910390206111cd88611ea4565b6111d688611ea4565b60006040518763ffffffff1660e01b81526004016111f996959493929190612ea0565b600060405180830381600087803b15801561121357600080fd5b505af1158015611227573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146111775760405162461bcd60e51b815260040161092e90612f73565b6002546001600160a01b031633141561127257611177565b61127b33611eb0565b1561129757600380546001600160a01b03191633179055611177565b60405162461bcd60e51b815260040161092e90612fca565b6112b7611e36565b6001600160a01b031663059c29ec83600a546040518363ffffffff1660e01b81526004016112e6929190612d91565b60206040518083038186803b1580156112fe57600080fd5b505afa158015611312573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611336919081019061261f565b156113535760405162461bcd60e51b815260040161092e90612fba565b8061135d83610ffa565b101561137b5760405162461bcd60e51b815260040161092e90612f53565b6113836121a7565b6001600160a01b03166342a28e21600a546040518263ffffffff1660e01b81526004016113b09190612dcb565b60006040518083038186803b1580156113c857600080fd5b505afa1580156113dc573d6000803e3d6000fd5b505050505050565b60048054600354604051636eb1769f60e11b8152600093600019936001600160a01b039081169363dd62ed3e93611421938b939092169101612cca565b60206040518083038186803b15801561143957600080fd5b505afa15801561144d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611471919081019061261f565b146115695760048054600354604051636eb1769f60e11b81526001600160a01b039283169363da46098c9389931691611518918891879163dd62ed3e916114bc918891889101612cca565b60206040518083038186803b1580156114d457600080fd5b505afa1580156114e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061150c919081019061261f565b9063ffffffff611e7c16565b6040518463ffffffff1660e01b815260040161153693929190612d69565b600060405180830381600087803b15801561155057600080fd5b505af1158015611564573d6000803e3d6000fd5b505050505b6105c5848484611cac565b600061157f826121c1565b80611608575061158d612233565b6001600160a01b031663b38988f7836040518263ffffffff1660e01b81526004016115b89190612cae565b60206040518083038186803b1580156115d057600080fd5b505afa1580156115e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061160891908101906125c5565b806116915750611616612252565b6001600160a01b031663e0aa2797836040518263ffffffff1660e01b81526004016116419190612cae565b60206040518083038186803b15801561165957600080fd5b505afa15801561166d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061169191908101906125c5565b806107a6575061169f61226e565b6001600160a01b0316826001600160a01b0316149050919050565b600480546040516370a0823160e01b81526001600160a01b039091169163b46310f691859161175591869186916370a08231916116f991879101612cae565b60206040518083038186803b15801561171157600080fd5b505afa158015611725573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611749919081019061261f565b9063ffffffff61228816565b6040518363ffffffff1660e01b8152600401611772929190612d91565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b50506007546117b8925090508263ffffffff61228816565b6007556117c7600083836122ad565b61090082826122f0565b60408051600580825260c082019092526060916020820160a0803883390190505090506b53797374656d53746174757360a01b8160008151811061181157fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061183757fe5b6020026020010181815250506524b9b9bab2b960d11b8160028151811061185a57fe5b60200260200101818152505066119959541bdbdb60ca1b8160038151811061187e57fe5b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b816004815181106118af57fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156118ee578160200160208202803883390190505b50905060005b83518110156119305783818151811061190957fe5b602002602001015182828151811061191d57fe5b60209081029190910101526001016118f4565b5060005b82518110156119735782818151811061194957fe5b602002602001015182828651018151811061196057fe5b6020908102919091010152600101611934565b5092915050565b600480546040516370a0823160e01b81526000926001600160a01b039092169163b46310f69186916119bc91879186916370a08231916114bc91879101612cae565b6040518363ffffffff1660e01b81526004016119d9929190612d91565b600060405180830381600087803b1580156119f357600080fd5b505af1158015611a07573d6000803e3d6000fd5b5050600754611a1f925090508363ffffffff611e7c16565b600755611a2e836000846122ad565b611a388383612396565b50600192915050565b6002546001600160a01b03163314801590611a6757506003546001600160a01b03163314155b15611a7f57600380546001600160a01b031916331790555b6000546003546001600160a01b039081169116146111775760405162461bcd60e51b815260040161092e90612f33565b6002546040516001600160a01b039091169063907dff9790611ad5908490602001612cae565b6040516020818303038152906040526001604051611af290612c82565b6040519081900381206001600160e01b031960e086901b168252611b2193929160009081908190600401612e07565b600060405180830381600087803b158015611b3b57600080fd5b505af1158015611b4f573d6000803e3d6000fd5b5050505050565b600080600a54631cd554d160e21b1415611b8a57506003548290611b84906001600160a01b03168583611cac565b50611c3d565b611b92611e36565b600354600a546040516327c319e960e11b81526001600160a01b0393841693634f8633d293611be893911691829190899073feefeefeefeefeefeefeefeefeefeefeefeefeef9060009081908190600401612ce5565b6040805180830381600087803b158015611c0157600080fd5b505af1158015611c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c39919081019061263d565b5090505b611c456123d9565b6001600160a01b03166322bf55ef826040518263ffffffff1660e01b8152600401611c709190612dcb565b600060405180830381600087803b158015611c8a57600080fd5b505af1158015611c9e573d6000803e3d6000fd5b506001979650505050505050565b60006001600160a01b03831615801590611ccf57506001600160a01b0383163014155b8015611ce957506002546001600160a01b03848116911614155b611d055760405162461bcd60e51b815260040161092e90612f06565b600480546040516370a0823160e01b81526001600160a01b039091169163b46310f6918791611d4491879186916370a08231916114bc91879101612cae565b6040518363ffffffff1660e01b8152600401611d61929190612d91565b600060405180830381600087803b158015611d7b57600080fd5b505af1158015611d8f573d6000803e3d6000fd5b5050600480546040516370a0823160e01b81526001600160a01b03909116935063b46310f692508691611dd291879186916370a08231916116f991879101612cae565b6040518363ffffffff1660e01b8152600401611def929190612d91565b600060405180830381600087803b158015611e0957600080fd5b505af1158015611e1d573d6000803e3d6000fd5b50505050611e2c8484846122ad565b5060019392505050565b6000611e4d6822bc31b430b733b2b960b91b6123ea565b905090565b6002546001600160a01b031633146111775760405162461bcd60e51b815260040161092e90612fca565b600082821115611e9e5760405162461bcd60e51b815260040161092e90612f63565b50900390565b6001600160a01b031690565b6008546040516321f8a72160e01b815260009161010090046001600160a01b0316906321f8a72190611ee490600401612f93565b60206040518083038186803b158015611efc57600080fd5b505afa158015611f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f3491908101906124f0565b6001600160a01b0316826001600160a01b03161480611fe557506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a72190611f8090600401612f26565b60206040518083038186803b158015611f9857600080fd5b505afa158015611fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611fd091908101906124f0565b6001600160a01b0316826001600160a01b0316145b8061208257506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a7219061201d90600401612fda565b60206040518083038186803b15801561203557600080fd5b505afa158015612049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061206d91908101906124f0565b6001600160a01b0316826001600160a01b0316145b8061211f57506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a721906120ba90600401612fa0565b60206040518083038186803b1580156120d257600080fd5b505afa1580156120e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061210a91908101906124f0565b6001600160a01b0316826001600160a01b0316145b806107a657506008546040516321f8a72160e01b81526101009091046001600160a01b0316906321f8a7219061215790600401612fad565b60206040518083038186803b15801561216f57600080fd5b505afa158015612183573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061169f91908101906124f0565b6000611e4d6b53797374656d53746174757360a01b6123ea565b60006121cb6123d9565b6001600160a01b0316826001600160a01b0316148061220257506121ed611e36565b6001600160a01b0316826001600160a01b0316145b806122255750612210612447565b6001600160a01b0316826001600160a01b0316145b806107a6575061169f61245b565b6000611e4d7021b7b63630ba32b930b626b0b730b3b2b960791b6123ea565b6000611e4d6d57726170706572466163746f727960901b6123ea565b6000611e4d6b22ba3432b92bb930b83832b960a11b6123ea565b6000828201838110156105c85760405162461bcd60e51b815260040161092e90612f43565b6002546040516001600160a01b039091169063907dff97906122d3908490602001612dcb565b60405160208183030381529060405260036040516111bc90612ca3565b6002546040516001600160a01b039091169063907dff9790612316908490602001612dcb565b604051602081830303815290604052600260405161233390612c8d565b604051809103902061234487611ea4565b6000806040518763ffffffff1660e01b815260040161236896959493929190612e66565b600060405180830381600087803b15801561238257600080fd5b505af11580156113dc573d6000803e3d6000fd5b6002546040516001600160a01b039091169063907dff97906123bc908490602001612dcb565b604051602081830303815290604052600260405161233390612c6c565b6000611e4d66119959541bdbdb60ca1b5b60008181526009602090815260408083205490516001600160a01b03909116918215159161241a91869101612c4c565b604051602081830303815290604052906119735760405162461bcd60e51b815260040161092e9190612ef5565b6000611e4d6524b9b9bab2b960d11b6123ea565b6000611e4d73233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b6123ea565b803561053c81613087565b805161053c81613087565b805161053c8161309b565b805161053c816130a4565b803561053c816130a4565b803561053c816130ad565b805161053c816130ad565b6000602082840312156124dc57600080fd5b60006124e8848461247d565b949350505050565b60006020828403121561250257600080fd5b60006124e88484612488565b6000806040838503121561252157600080fd5b600061252d858561247d565b925050602061253e8582860161247d565b9150509250929050565b60008060006060848603121561255d57600080fd5b6000612569868661247d565b935050602061257a8682870161247d565b925050604061258b868287016124b4565b9150509250925092565b600080604083850312156125a857600080fd5b60006125b4858561247d565b925050602061253e858286016124b4565b6000602082840312156125d757600080fd5b60006124e88484612493565b6000602082840312156125f557600080fd5b60006124e884846124a9565b60006020828403121561261357600080fd5b60006124e884846124b4565b60006020828403121561263157600080fd5b60006124e884846124bf565b6000806040838503121561265057600080fd5b600061265c85856124bf565b925050602061253e8582860161249e565b60008060006060848603121561268257600080fd5b600061268e86866124bf565b935050602061269f868287016124bf565b925050604061258b868287016124bf565b60006126bc838361273e565b505060200190565b6126cd81613029565b82525050565b6126cd81613008565b60006126e782612ffb565b6126f18185612fff565b93506126fc83612ff5565b8060005b8381101561272a57815161271488826126b0565b975061271f83612ff5565b925050600101612700565b509495945050505050565b6126cd81613013565b6126cd816106e9565b6126cd612753826106e9565b6106e9565b600061276382612ffb565b61276d8185612fff565b935061277d81856020860161304d565b6127868161307d565b9093019392505050565b6126cd81613018565b6126cd81613034565b6126cd81613042565b60006127b8601f83612fff565b7f43616e6e6f74207472616e7366657220746f2074686973206164647265737300815260200192915050565b60006127f1603583612fff565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6c29bcb73a342932b232b2b6b2b960991b9052565b600061285d601383612fff565b7227bbb732b91037b7363c90333ab731ba34b7b760691b815260200192915050565b600061288c601b83612fff565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006128c5602f83612fff565b7f496e73756666696369656e742062616c616e636520616674657220616e79207381526e6574746c656d656e74206f77696e6760881b602082015260400192915050565b6000612916601e83612fff565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061294f6011836107a9565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061297c6017836107a9565b7f4275726e656428616464726573732c75696e7432353629000000000000000000815260170192915050565b60006129b5602f83612fff565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000612a12601f83612fff565b7f4f6e6c7920696e7465726e616c20636f6e74726163747320616c6c6f77656400815260200192915050565b6000612a4b6021836107a9565b7f417070726f76616c28616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b6000612a8e601a836107a9565b7f546f6b656e5374617465557064617465642861646472657373290000000000008152601a0192915050565b6000612ac76017836107a9565b7f49737375656428616464726573732c75696e7432353629000000000000000000815260170192915050565b6e10dbdb1b185d195c985b14da1bdc9d608a1b9052565b712730ba34bb32a2ba3432b92bb930b83832b960711b9052565b6000612b316019836107a9565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6411195c1bdd60da1b9052565b6000612b77602583612fff565b7f43616e6e6f74207472616e7366657220647572696e672077616974696e672070815264195c9a5bd960da1b602082015260400192915050565b6000612bbe6021836107a9565b7f5472616e7366657228616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b6000612c01601783612fff565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b6d57726170706572466163746f727960901b9052565b6126cd81613023565b6000612c5782612942565b9150612c638284612747565b50602001919050565b600061053c8261296f565b600061053c82612a3e565b600061053c82612a81565b600061053c82612aba565b6000612c5782612b24565b600061053c82612bb1565b6020810161053c82846126d3565b6020810161053c82846126c4565b60408101612cd882856126d3565b6105c860208301846126d3565b6101208101612cf4828b6126d3565b612d01602083018a6126d3565b612d0e604083018961273e565b612d1b606083018861273e565b612d27608083016129f9565b612d3460a08301876126d3565b612d4160c0830186612735565b612d4e60e08301856126c4565b612d5c61010083018461273e565b9998505050505050505050565b60608101612d7782866126d3565b612d8460208301856126d3565b6124e8604083018461273e565b60408101612d9f82856126d3565b6105c8602083018461273e565b602080825281016105c881846126dc565b6020810161053c8284612735565b6020810161053c828461273e565b60408101612cd8828561273e565b60408101612df5828561273e565b81810360208301526105c58184612758565b60c08082528101612e188189612758565b9050612e2760208301886127a2565b612e34604083018761273e565b612e416060830186612799565b612e4e6080830185612799565b612e5b60a0830184612799565b979650505050505050565b60c08082528101612e778189612758565b9050612e8660208301886127a2565b612e93604083018761273e565b612e41606083018661273e565b60c08082528101612eb18189612758565b9050612ec060208301886127a2565b612ecd604083018761273e565b612eda606083018661273e565b612e4e608083018561273e565b6020810161053c8284612790565b602080825281016105c88184612758565b602080825281016107a6816127ab565b602080825281016107a6816127e4565b602081016107a98261283b565b602080825281016107a681612850565b602080825281016107a68161287f565b602080825281016107a6816128b8565b602080825281016107a681612909565b602080825281016107a6816129a8565b602080825281016107a681612a05565b602081016107a982612af3565b602081016107a982612b0a565b602081016107a982612b5d565b602080825281016107a681612b6a565b602080825281016107a681612bf4565b602081016107a982612c2d565b6020810161053c8284612c43565b60200190565b5190565b90815260200190565b60006107a682611ea4565b151590565b60006107a682613008565b60ff1690565b60006107a682613018565b60006107a6612753836106e9565b60006107a6826106e9565b60005b83811015613068578181015183820152602001613050565b83811115613077576000848401525b50505050565b601f01601f191690565b61309081613008565b8114610bb957600080fd5b61309081613013565b61309081613018565b613090816106e956fea365627a7a7231582020f6ace503dc6ee853ffc924952674cb34920a15e598daff4657e396ced660b56c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x7ac896506f0258f7ff164509a0a129cae76839546ab779d3e7d6498178df73d5",
				"urls": [
					"bzz-raw://8902afb963801b79685d68becbb36fe2c82d037d701610724161de557620af40",
					"dweb:/ipfs/QmcUYssMCK1GfiU2njbGXGhxtU6iqPsEmW7AHSmQCq7Rqb"
				]
			},
			"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": "0x7ac896506f0258f7ff164509a0a129cae76839546ab779d3e7d6498178df73d5",
						"urls": [
							"bzz-raw://8902afb963801b79685d68becbb36fe2c82d037d701610724161de557620af40",
							"dweb:/ipfs/QmcUYssMCK1GfiU2njbGXGhxtU6iqPsEmW7AHSmQCq7Rqb"
						]
					}
				},
				"version": 1
			}
		},
		"Depot": {
			"bytecode": "60806040819052630241ebdb60e61b815273__$5b1a0139898c1861867d128118276f8f0f$__9063907af6c09060849060209060048186803b1580156200004557600080fd5b505af41580156200005a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620000809190810190620002a4565b603202600c5573__$5b1a0139898c1861867d128118276f8f0f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015620000cb57600080fd5b505af4158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001069190810190620002a4565b6101f402600d553480156200011a57600080fd5b506040516200379a3803806200379a8339810160408190526200013d9162000250565b80836001600160a01b038116620001715760405162461bcd60e51b815260040162000168906200038b565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620001be91849062000353565b60405180910390a1506000546001600160a01b0316620001f25760405162461bcd60e51b8152600401620001689062000379565b6001600455600580546001600160a01b039283166001600160a01b031991821617909155600780549490921693169290921790915550620003f49050565b80516200023d81620003cf565b92915050565b80516200023d81620003e9565b6000806000606084860312156200026657600080fd5b600062000274868662000230565b9350506020620002878682870162000230565b92505060406200029a8682870162000230565b9150509250925092565b600060208284031215620002b757600080fd5b6000620002c5848462000243565b949350505050565b620002d881620003bb565b82525050565b620002d881620003a6565b6000620002f86011836200039d565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620003276019836200039d565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620003638285620002cd565b620003726020830184620002de565b9392505050565b602080825281016200023d81620002e9565b602080825281016200023d8162000318565b90815260200190565b60006001600160a01b0382166200023d565b90565b60006200023d8260006200023d82620003a6565b620003da81620003a6565b8114620003e657600080fd5b50565b620003da81620003b8565b61339680620004046000396000f3fe6080604052600436106101f95760003560e01c806381b797dc1161010d578063b0c2cb96116100a0578063c8d889f21161006f578063c8d889f214610610578063dc8fa6c214610630578063e6d76a7614610650578063f852d39314610670578063fd12167f14610690576101f9565b8063b0c2cb961461059b578063b1338cc4146105bb578063bb7df172146105d0578063c6abb7c7146105f0576101f9565b80639342c0eb116100dc5780639342c0eb1461051a578063a3d8829b1461052d578063aab483d61461054d578063b02c43d01461056d576101f9565b806381b797dc146104b9578063899ffef4146104ce5780638da5cb5b146104f057806391b4ded914610505576101f9565b80632194f3a2116101905780635c975abb1161015f5780635c975abb1461044557806364e39b871461045a5780636d5ab4a91461047a578063741853601461048f57806379ba5097146104a4576101f9565b80632194f3a2146103d75780632af64bd3146103f95780634d0387fb1461041b57806353a47bb714610430576101f9565b80630c928f05116101cc5780630c928f051461036d5780631627540c1461038d57806316c38b3c146103af5780631f930115146103cf576101f9565b8063022794381461030557806304f3bcec14610323578063080c279a146103455780630c928bc21461035a575b60048054600101908190556208aa8960eb1b6102136106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b815260040161023e91906130d5565b60206040518083038186803b15801561025657600080fd5b505afa15801561026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061028e919081019061297f565b156102b45760405162461bcd60e51b81526004016102ab906131ef565b60405180910390fd5b60035460ff16156102d75760405162461bcd60e51b81526004016102ab9061326f565b6102df6106c6565b505060045481146103025760405162461bcd60e51b81526004016102ab9061328f565b50005b61030d610e8f565b60405161031a91906130d5565b60405180910390f35b34801561032f57600080fd5b50610338611011565b60405161031a9190613111565b34801561035157600080fd5b5061030d611020565b61030d61036836600461299d565b611026565b34801561037957600080fd5b5061030d61038836600461299d565b6111a8565b34801561039957600080fd5b506103ad6103a8366004612925565b611249565b005b3480156103bb57600080fd5b506103ad6103ca366004612961565b6112a7565b61030d61131c565b3480156103e357600080fd5b506103ec611424565b60405161031a9190613013565b34801561040557600080fd5b5061040e611433565b60405161031a91906130c7565b34801561042757600080fd5b5061030d61154a565b34801561043c57600080fd5b506103ec611550565b34801561045157600080fd5b5061040e61155f565b34801561046657600080fd5b506103ad610475366004612925565b611568565b34801561048657600080fd5b5061030d6115c1565b34801561049b57600080fd5b506103ad6115c7565b3480156104b057600080fd5b506103ad61171d565b3480156104c557600080fd5b506103ad6117b9565b3480156104da57600080fd5b506104e36119c2565b60405161031a91906130b6565b3480156104fc57600080fd5b506103ec611a5d565b34801561051157600080fd5b5061030d611a6c565b61030d6105283660046129d9565b611a72565b34801561053957600080fd5b5061030d61054836600461299d565b611d44565b34801561055957600080fd5b506103ad61056836600461299d565b611ddf565b34801561057957600080fd5b5061058d61058836600461299d565b611eb6565b60405161031a929190613057565b3480156105a757600080fd5b5061030d6105b63660046129d9565b611edb565b3480156105c757600080fd5b5061030d61205f565b3480156105dc57600080fd5b506103ad6105eb36600461299d565b612065565b3480156105fc57600080fd5b5061030d61060b366004612925565b6120a2565b34801561061c57600080fd5b5061030d61062b36600461299d565b6120b4565b34801561063c57600080fd5b506103ad61064b36600461299d565b61215b565b34801561065c57600080fd5b506103ad61066b36600461299d565b61231b565b34801561067c57600080fd5b5061030d61068b36600461299d565b6123b0565b34801561069c57600080fd5b5061030d612485565b60006106c06c45786368616e6765526174657360981b61248b565b90505b90565b6000600d543411156106ea5760405162461bcd60e51b81526004016102ab9061320f565b6000806107866106f86106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b815260040161072991906130d5565b60206040518083038186803b15801561074157600080fd5b505afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061077991908101906129bb565b349063ffffffff6124ef16565b60095490915081905b6000821180156107a05750600a5481105b15610d65576107ad6128cc565b50600081815260086020908152604091829020825180840190935280546001600160a01b031680845260019091015491830191909152610803576009546107fb90600163ffffffff61251916565b600955610d5c565b8281602001511115610ab2576020810151600090610827908563ffffffff61253e16565b60408051808201825284516001600160a01b039081168252602080830185815260008981526008909252939020915182546001600160a01b03191691161781559051600190910155600b5490915061087f908561253e565b600b5561091b61088d6106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004016108be91906130d5565b60206040518083038186803b1580156108d657600080fd5b505afa1580156108ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061090e91908101906129bb565b859063ffffffff61256616565b82516040519197506001600160a01b03169087156108fc029088906000818181858888f193505050506109cd576007546040516001600160a01b039091169087156108fc029088906000818181858888f19350505050158015610982573d6000803e3d6000fd5b5081600001516001600160a01b03167ff2435d3901399daa085f8b58d2409fff9b83ce4ca97c1f144b532f5a08b1c96c876040516109c091906130d5565b60405180910390a2610a20565b8282600001516001600160a01b0316336001600160a01b03167f6d957e9e816107f67cb7118461e3c259e96896f80223c9af2972596c2fdd401c8988604051610a1792919061329f565b60405180910390a45b610a28612590565b6001600160a01b031663a9059cbb33866040518363ffffffff1660e01b8152600401610a55929190613072565b602060405180830381600087803b158015610a6f57600080fd5b505af1158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa7919081019061297f565b506000935050610d5c565b82816020015111610d5c57600082815260086020526040812080546001600160a01b0319168155600190810191909155600954610af49163ffffffff61251916565b6009556020810151600b54610b0e9163ffffffff61253e16565b600b55610bae610b1c6106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b8152600401610b4d91906130d5565b60206040518083038186803b158015610b6557600080fd5b505afa158015610b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b9d91908101906129bb565b60208301519063ffffffff61256616565b81516040519196506001600160a01b03169086156108fc029087906000818181858888f19350505050610c60576007546040516001600160a01b039091169086156108fc029087906000818181858888f19350505050158015610c15573d6000803e3d6000fd5b5080600001516001600160a01b03167ff2435d3901399daa085f8b58d2409fff9b83ce4ca97c1f144b532f5a08b1c96c86604051610c5391906130d5565b60405180910390a2610cb7565b8181600001516001600160a01b0316336001600160a01b03167f6d957e9e816107f67cb7118461e3c259e96896f80223c9af2972596c2fdd401c888560200151604051610cae92919061329f565b60405180910390a45b610cbf612590565b6001600160a01b031663a9059cbb3383602001516040518363ffffffff1660e01b8152600401610cf0929190613072565b602060405180830381600087803b158015610d0a57600080fd5b505af1158015610d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d42919081019061297f565b506020810151610d5990849063ffffffff61253e16565b92505b5060010161078f565b508015610e3357336108fc610e09610d7b6106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b8152600401610dac91906130d5565b60206040518083038186803b158015610dc457600080fd5b505afa158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dfc91908101906129bb565b849063ffffffff61256616565b6040518115909202916000818181858888f19350505050158015610e31573d6000803e3d6000fd5b505b6000610e45838363ffffffff61253e16565b90508015610e87577fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd3482604051610e7e92919061322f565b60405180910390a15b935050505090565b6000620a69cb60eb1b610ea06106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b8152600401610ecb91906130d5565b60206040518083038186803b158015610ee357600080fd5b505afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f1b919081019061297f565b15610f385760405162461bcd60e51b81526004016102ab906131ef565b6208aa8960eb1b610f476106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b8152600401610f7291906130d5565b60206040518083038186803b158015610f8a57600080fd5b505afa158015610f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fc2919081019061297f565b15610fdf5760405162461bcd60e51b81526004016102ab906131ef565b60035460ff16156110025760405162461bcd60e51b81526004016102ab9061326f565b61100a6125a7565b9250505090565b6005546001600160a01b031681565b600c5481565b60006208aa8960eb1b6110376106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b815260040161106291906130d5565b60206040518083038186803b15801561107a57600080fd5b505afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110b2919081019061297f565b156110cf5760405162461bcd60e51b81526004016102ab906131ef565b60035460ff16156110f25760405162461bcd60e51b81526004016102ab9061326f565b6110fa6106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b815260040161112b91906130d5565b60206040518083038186803b15801561114357600080fd5b505afa158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061117b91908101906129bb565b83146111995760405162461bcd60e51b81526004016102ab9061327f565b6111a16106c6565b9392505050565b60006112436111b56106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004016111e691906130d5565b60206040518083038186803b1580156111fe57600080fd5b505afa158015611212573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061123691908101906129bb565b839063ffffffff6124ef16565b92915050565b6112516126b4565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061129c908390613013565b60405180910390a150565b6112af6126b4565b60035460ff16151581151514156112c557611319565b6003805460ff1916821515179081905560ff16156112e257426002555b6003546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59161129c9160ff909116906130c7565b50565b60048054600101908190556000906208aa8960eb1b6113396106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b815260040161136491906130d5565b60206040518083038186803b15801561137c57600080fd5b505afa158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113b4919081019061297f565b156113d15760405162461bcd60e51b81526004016102ab906131ef565b60035460ff16156113f45760405162461bcd60e51b81526004016102ab9061326f565b6113fc6106c6565b92505060045481146114205760405162461bcd60e51b81526004016102ab9061328f565b5090565b6007546001600160a01b031681565b6000606061143f6119c2565b905060005b815181101561154157600082828151811061145b57fe5b602090810291909101810151600081815260069092526040918290205460055492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906114ac9085906004016130d5565b60206040518083038186803b1580156114c457600080fd5b505afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114fc9190810190612943565b6001600160a01b031614158061152757506000818152600660205260409020546001600160a01b0316155b1561153857600093505050506106c3565b50600101611444565b50600191505090565b600b5481565b6001546001600160a01b031681565b60035460ff1681565b6115706126b4565b600780546001600160a01b0319166001600160a01b0383811691909117918290556040517f4deb077bf9c4bc824cc2c989e01a5e53b0a4ecc44c5039d46abc9ffc88f8a0509261129c921690613021565b60095481565b60606115d16119c2565b905060005b81518110156117195760008282815181106115ed57fe5b602002602001015190506000600560009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161162f9190613008565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161165b9291906130f1565b60206040518083038186803b15801561167357600080fd5b505afa158015611687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116ab9190810190612943565b6000838152600660205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061170790849084906130e3565b60405180910390a150506001016115d6565b5050565b6001546001600160a01b031633146117475760405162461bcd60e51b81526004016102ab90613140565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261178a926001600160a01b039182169291169061309b565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6009546000905b600a548110156118a2576117d26128cc565b50600081815260086020908152604091829020825180840190935280546001600160a01b03168084526001909101549183019190915233141561189957602081015161182590849063ffffffff61251916565b600083815260086020908152604080832080546001600160a01b031916815560010192909255835190840151915192955084926001600160a01b03909116917f3aa2b18eace5e5727a4ab525921b9b0a1ca1afdb0f96b599e3ab2d76cb5e7f729161189091906130d5565b60405180910390a35b506001016117c0565b50600b546118b6908263ffffffff61253e16565b600b55336000908152600e60205260409020546118da90829063ffffffff61251916565b336000908152600e60205260408120559050806119095760405162461bcd60e51b81526004016102ab90613190565b611911612590565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040161193e929190613072565b602060405180830381600087803b15801561195857600080fd5b505af115801561196c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611990919081019061297f565b507faf6ec623f558c7b3527ff6c9c09432c7d81a3d38bd2e1eaaee2efe7aac23c28b338260405161129c929190613072565b604080516003808252608082019092526060916020820183803883390190505090506814de5b9d1a1cd554d160ba1b816000815181106119fe57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110611a2857fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b81600281518110611a4e57fe5b60200260200101818152505090565b6000546001600160a01b031681565b60025481565b6000620a69cb60eb1b611a836106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b8152600401611aae91906130d5565b60206040518083038186803b158015611ac657600080fd5b505afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611afe919081019061297f565b15611b1b5760405162461bcd60e51b81526004016102ab906131ef565b6208aa8960eb1b611b2a6106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b8152600401611b5591906130d5565b60206040518083038186803b158015611b6d57600080fd5b505afa158015611b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ba5919081019061297f565b15611bc25760405162461bcd60e51b81526004016102ab906131ef565b60035460ff1615611be55760405162461bcd60e51b81526004016102ab9061326f565b611bed6106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b8152600401611c1e91906130d5565b60206040518083038186803b158015611c3657600080fd5b505afa158015611c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c6e91908101906129bb565b8514611c8c5760405162461bcd60e51b81526004016102ab90613130565b611c946106a5565b6001600160a01b031663ac82f608620a69cb60eb1b6040518263ffffffff1660e01b8152600401611cc591906130d5565b60206040518083038186803b158015611cdd57600080fd5b505afa158015611cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d1591908101906129bb565b8414611d335760405162461bcd60e51b81526004016102ab90613150565b611d3b6125a7565b95945050505050565b6000611243611d516106a5565b6001600160a01b031663ac82f608620a69cb60eb1b6040518263ffffffff1660e01b8152600401611d8291906130d5565b60206040518083038186803b158015611d9a57600080fd5b505afa158015611dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dd291908101906129bb565b839063ffffffff61256616565b611de76126b4565b73__$5b1a0139898c1861867d128118276f8f0f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611e2b57600080fd5b505af4158015611e3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e6391908101906129bb565b8111611e815760405162461bcd60e51b81526004016102ab9061321f565b600c8190556040517fa39eacd162ee82c70b2b030a1bc8fe89adcccc61122fad4821a8772dbcc542679061129c9083906130d5565b600860205260009081526040902080546001909101546001600160a01b039091169082565b6000620a69cb60eb1b611eec6106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b8152600401611f1791906130d5565b60206040518083038186803b158015611f2f57600080fd5b505afa158015611f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f67919081019061297f565b15611f845760405162461bcd60e51b81526004016102ab906131ef565b60035460ff1615611fa75760405162461bcd60e51b81526004016102ab9061326f565b611faf6106a5565b6001600160a01b031663ac82f608620a69cb60eb1b6040518263ffffffff1660e01b8152600401611fe091906130d5565b60206040518083038186803b158015611ff857600080fd5b505afa15801561200c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061203091908101906129bb565b831461204e5760405162461bcd60e51b81526004016102ab9061327f565b612057846126e0565b949350505050565b600d5481565b61206d6126b4565b600d8190556040517fdc2be810a133e01cb21a41082f15b2863d96f9fe79d1f84d7e2d5b810c5c82439061129c9083906130d5565b600e6020526000908152604090205481565b6000806121506120c26106a5565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004016120f391906130d5565b60206040518083038186803b15801561210b57600080fd5b505afa15801561211f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061214391908101906129bb565b849063ffffffff6124ef16565b90506111a181611d44565b612163612590565b6001600160a01b03166323b872dd3330846040518463ffffffff1660e01b81526004016121929392919061302f565b602060405180830381600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121e4919081019061297f565b50600c5481101561226557336000908152600e602052604090205461220f908263ffffffff61251916565b336000818152600e60205260409081902092909255600c5491517fbc3a12638d840d60760c64b39c73985a6498cf6eb8176f124995b0e07236cbd2926122589291859190613080565b60405180910390a1611319565b604080518082018252338082526020808301858152600a80546000908152600890935291859020935184546001600160a01b0319166001600160a01b0390911617845551600190930192909255905491517fd9acabe6e09d178728ba5c366661c5be0621b4770f216305b059ec175b37e0b4906122e39085906130d5565b60405180910390a3600a546122ff90600163ffffffff61251916565b600a55600b54612315908263ffffffff61251916565b600b5550565b6123236126b4565b61232b612846565b60005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261235e929116908590600401613057565b602060405180830381600087803b15801561237857600080fd5b505af115801561238c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611719919081019061297f565b6000620a69cb60eb1b6123c16106a5565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004016123ec91906130d5565b60206040518083038186803b15801561240457600080fd5b505afa158015612418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061243c919081019061297f565b156124595760405162461bcd60e51b81526004016102ab906131ef565b60035460ff161561247c5760405162461bcd60e51b81526004016102ab9061326f565b6111a1836126e0565b600a5481565b60008181526006602090815260408083205490516001600160a01b0390911691821515916124bb91869101612fe8565b604051602081830303815290604052906124e85760405162461bcd60e51b81526004016102ab919061311f565b5092915050565b6000670de0b6b3a764000061250a848463ffffffff61285d16565b8161251157fe5b049392505050565b6000828201838110156111a15760405162461bcd60e51b81526004016102ab90613160565b6000828211156125605760405162461bcd60e51b81526004016102ab90613170565b50900390565b60006111a18261258485670de0b6b3a764000063ffffffff61285d16565b9063ffffffff61289716565b60006106c06814de5b9d1a1cd554d160ba1b61248b565b6000806125b3346120b4565b6007546040519192506001600160a01b0316903480156108fc02916000818181858888f193505050501580156125ed573d6000803e3d6000fd5b506125f6612846565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b8152600401612623929190613072565b602060405180830381600087803b15801561263d57600080fd5b505af1158015612651573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612675919081019061297f565b507fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd34826040516126a792919061325f565b60405180910390a1905090565b6000546001600160a01b031633146126de5760405162461bcd60e51b81526004016102ab906131a0565b565b6000806126ec83611d44565b90506126f6612590565b6007546040516323b872dd60e01b81526001600160a01b03928316926323b872dd9261272c92339290911690889060040161302f565b602060405180830381600087803b15801561274657600080fd5b505af115801561275a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061277e919081019061297f565b50612787612846565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016127b4929190613072565b602060405180830381600087803b1580156127ce57600080fd5b505af11580156127e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612806919081019061297f565b507fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd83826040516128389291906131b0565b60405180910390a192915050565b60006106c0680a6f2dce8d0cae8d2f60bb1b61248b565b60008261286c57506000611243565b8282028284828161287957fe5b04146111a15760405162461bcd60e51b81526004016102ab906131ff565b60008082116128b85760405162461bcd60e51b81526004016102ab90613180565b60008284816128c357fe5b04949350505050565b604080518082019091526000808252602082015290565b80356112438161332d565b80516112438161332d565b803561124381613341565b805161124381613341565b80356112438161334a565b80516112438161334a565b60006020828403121561293757600080fd5b600061205784846128e3565b60006020828403121561295557600080fd5b600061205784846128ee565b60006020828403121561297357600080fd5b600061205784846128f9565b60006020828403121561299157600080fd5b60006120578484612904565b6000602082840312156129af57600080fd5b6000612057848461290f565b6000602082840312156129cd57600080fd5b6000612057848461291a565b600080604083850312156129ec57600080fd5b60006129f8858561290f565b9250506020612a098582860161290f565b9150509250929050565b6000612a1f8383612aa1565b505060200190565b612a30816132e1565b82525050565b612a30816132c5565b6000612a4a826132b3565b612a5481856132b7565b9350612a5f836132ad565b8060005b83811015612a8d578151612a778882612a13565b9750612a82836132ad565b925050600101612a63565b509495945050505050565b612a30816132d0565b612a30816106c3565b612a30612ab6826106c3565b6106c3565b612a30816132e8565b6000612acf826132b3565b612ad981856132b7565b9350612ae98185602086016132f3565b612af281613323565b9093019392505050565b6000612b09602b836132b7565b7f47756172616e74656564206574686572207261746520776f756c64206e6f742081526a1899481c9958d95a5d995960aa1b602082015260400192915050565b6000612b566035836132b7565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612bad602f836132b7565b7f47756172616e746565642073796e746865746978207261746520776f756c642081526e1b9bdd081899481c9958d95a5d9959608a1b602082015260400192915050565b6000612bfe601b836132b7565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612c37601e836132b7565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000612c70601a836132b7565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000612ca96011836132c0565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000612cd66021836132b7565b7f596f752068617665206e6f206465706f7369747320746f2077697468647261778152601760f91b602082015260400192915050565b6000612d19602f836132b7565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000612d6a6004836132b7565b631cd554d160e21b815260200192915050565b6000612d8a601b836132b7565b7f5261746520696e76616c6964206f72206e6f7420612073796e74680000000000815260200192915050565b6000612dc36021836132b7565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000612e066025836132b7565b7f45544820616d6f756e742061626f7665206d61784574685075726368617365208152641b1a5b5a5d60da1b602082015260400192915050565b6000612e4d6030836132b7565b7f4d696e696d756d206465706f73697420616d6f756e74206d757374206265206781526f1c99585d195c881d1a185b881553925560821b602082015260400192915050565b6000612e9f6003836132b7565b6208aa8960eb1b815260200192915050565b6000612ebe603c836132b7565b7f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642081527f7768696c652074686520636f6e74726163742069732070617573656400000000602082015260400192915050565b6000612f1d6019836132c0565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000612f566003836132b7565b620a69cb60eb1b815260200192915050565b6000612f756025836132b7565b7f47756172616e74656564207261746520776f756c64206e6f7420626520726563815264195a5d995960da1b602082015260400192915050565b6000612fbc601f836132b7565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b6000612ff382612c9c565b9150612fff8284612aaa565b50602001919050565b6000612ff382612f10565b602081016112438284612a36565b602081016112438284612a27565b6060810161303d8286612a27565b61304a6020830185612a27565b6120576040830184612aa1565b604081016130658285612a36565b6111a16020830184612aa1565b604081016130658285612a27565b6060810161308e8286612a27565b61304a6020830185612aa1565b604081016130a98285612a36565b6111a16020830184612a36565b602080825281016111a18184612a3f565b602081016112438284612a98565b602081016112438284612aa1565b604081016130a98285612aa1565b604081016130ff8285612aa1565b81810360208301526120578184612ac4565b602081016112438284612abb565b602080825281016111a18184612ac4565b6020808252810161124381612afc565b6020808252810161124381612b49565b6020808252810161124381612ba0565b6020808252810161124381612bf1565b6020808252810161124381612c2a565b6020808252810161124381612c63565b6020808252810161124381612cc9565b6020808252810161124381612d0c565b608080825281016131c081612d5d565b90506131cf6020830185612aa1565b81810360408301526131e081612f49565b90506111a16060830184612aa1565b6020808252810161124381612d7d565b6020808252810161124381612db6565b6020808252810161124381612df9565b6020808252810161124381612e40565b6080808252810161323f81612e92565b905061324e6020830185612aa1565b81810360408301526131e081612d5d565b608080825281016131c081612e92565b6020808252810161124381612eb1565b6020808252810161124381612f68565b6020808252810161124381612faf565b604081016130658285612aa1565b60200190565b5190565b90815260200190565b919050565b6000611243826132d5565b151590565b6001600160a01b031690565b6000611243825b6000611243826132c5565b60005b8381101561330e5781810151838201526020016132f6565b8381111561331d576000848401525b50505050565b601f01601f191690565b613336816132c5565b811461131957600080fd5b613336816132d0565b613336816106c356fea365627a7a72315820d3694d5cfea1328c19bc446d63d0a1a83e3fc67686437bdf2b7c16f279fb64976c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "exchangeEtherForSNX",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "guaranteedEtherRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "guaranteedSynthetixRate",
							"type": "uint256"
						}
					],
					"name": "exchangeEtherForSNXAtRate",
					"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": "exchangeSynthsForSNX",
					"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": "exchangeSynthsForSNXAtRate",
					"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": [],
					"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": "synthetixReceivedForEther",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "synthetixReceivedForSynths",
					"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": "withdrawSynthetix",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x11811cc397dbe9100c424f3b71b2b409ebc9511f3d93d5a2566aeab36b51115f",
				"urls": [
					"bzz-raw://a0447ea9c7a8301b3674d963cc8d1fae52ca6527a4214ba6df61f1e5a311b8d1",
					"dweb:/ipfs/QmbtrFUEueWJxHppi5TNY2adY3efFndRDvTijJD52VLnUV"
				]
			},
			"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": "0x11811cc397dbe9100c424f3b71b2b409ebc9511f3d93d5a2566aeab36b51115f",
						"urls": [
							"bzz-raw://a0447ea9c7a8301b3674d963cc8d1fae52ca6527a4214ba6df61f1e5a311b8d1",
							"dweb:/ipfs/QmbtrFUEueWJxHppi5TNY2adY3efFndRDvTijJD52VLnUV"
						]
					}
				},
				"version": 1
			}
		},
		"EtherWrapper": {
			"bytecode": "60806040526000600655600060075560006008553480156200002057600080fd5b506040516200275438038062002754833981016040819052620000439162000150565b8180846001600160a01b038116620000785760405162461bcd60e51b81526004016200006f9062000262565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c59184906200022a565b60405180910390a1506000546001600160a01b0316620000f95760405162461bcd60e51b81526004016200006f9062000250565b60038054610100600160a81b0319166101006001600160a01b0393841602179055600580546001600160a01b031916939091169290921790915550620002bd915050565b80516200014a81620002a3565b92915050565b6000806000606084860312156200016657600080fd5b60006200017486866200013d565b935050602062000187868287016200013d565b92505060406200019a868287016200013d565b9150509250925092565b620001af816200028f565b82525050565b620001af816200027d565b6000620001cf60118362000274565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620001fe60198362000274565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200023a8285620001a4565b620002496020830184620001b5565b9392505050565b602080825281016200014a81620001c0565b602080825281016200014a81620001ef565b90815260200190565b60006001600160a01b0382166200014a565b60006200014a8260006200014a826200027d565b620002ae816200027d565b8114620002ba57600080fd5b50565b61248780620002cd6000396000f3fe6080604052600436106101815760003560e01c80635cfc1a51116100d1578063899ffef41161008a578063a02a76f111610064578063a02a76f1146103f3578063a0712d6814610408578063bb57ad2014610428578063ee5f3f5c1461043d57610181565b8063899ffef4146103a75780638da5cb5b146103c957806391b4ded9146103de57610181565b80635cfc1a511461031e57806368eb5e4f146103335780636ad8826914610348578063741853601461036857806375d920a91461037d57806379ba50971461039257610181565b80632af64bd31161013e578063509bf42a11610118578063509bf42a146102b257806353a47bb7146102c75780635c095e54146102e95780635c975abb1461030957610181565b80632af64bd31461025b5780633fc8cef31461027d57806342966c681461029257610181565b806302814b86146101a257806304f3bcec146101cd5780630902f1ac146101ef5780631627540c1461020457806316c38b3c1461022657806318819a3114610246575b60405162461bcd60e51b8152600401610199906122d1565b60405180910390fd5b3480156101ae57600080fd5b506101b7610452565b6040516101c4919061223d565b60405180910390f35b3480156101d957600080fd5b506101e2610462565b6040516101c491906122a2565b3480156101fb57600080fd5b506101b7610476565b34801561021057600080fd5b5061022461021f366004611bb2565b6104f7565b005b34801561023257600080fd5b50610224610241366004611bf6565b610555565b34801561025257600080fd5b506101b76105ca565b34801561026757600080fd5b506102706105d4565b6040516101c4919061222f565b34801561028957600080fd5b506101e26106f0565b34801561029e57600080fd5b506102246102ad366004611c50565b6106ff565b3480156102be57600080fd5b506101b7610833565b3480156102d357600080fd5b506102dc61083d565b6040516101c4919061217b565b3480156102f557600080fd5b506101b7610304366004611c50565b61084c565b34801561031557600080fd5b5061027061086c565b34801561032a57600080fd5b506101b7610875565b34801561033f57600080fd5b506101b76108b8565b34801561035457600080fd5b506101b7610363366004611c50565b6108be565b34801561037457600080fd5b506102246108cb565b34801561038957600080fd5b506101b7610a21565b34801561039e57600080fd5b50610224610a27565b3480156103b357600080fd5b506103bc610ac3565b6040516101c4919061221e565b3480156103d557600080fd5b506102dc610bc3565b3480156103ea57600080fd5b506101b7610bd2565b3480156103ff57600080fd5b506101b7610bd8565b34801561041457600080fd5b50610224610423366004611c50565b610bde565b34801561043457600080fd5b50610224610d8c565b34801561044957600080fd5b506101b7611146565b600061045c6111c1565b90505b90565b60035461010090046001600160a01b031681565b6005546040516370a0823160e01b81526000916001600160a01b0316906370a08231906104a7903090600401612189565b60206040518083038186803b1580156104bf57600080fd5b505afa1580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061045c9190810190611c6e565b6104ff61121e565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061054a90839061217b565b60405180910390a150565b61055d61121e565b60035460ff1615158115151415610573576105c7565b6003805460ff1916821515179081905560ff161561059057426002555b6003546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59161054a9160ff9091169061222f565b50565b600061045c61124a565b600060606105e0610ac3565b905060005b81518110156106e75760008282815181106105fc57fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b039081169361010090920416916321f8a721916106529186910161223d565b60206040518083038186803b15801561066a57600080fd5b505afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106a29190810190611bd8565b6001600160a01b03161415806106cd57506000818152600460205260409020546001600160a01b0316155b156106de576000935050505061045f565b506001016105e5565b50600191505090565b6005546001600160a01b031690565b60035460ff16156107225760405162461bcd60e51b815260040161019990612361565b600061072c610476565b90506000811161074e5760405162461bcd60e51b815260040161019990612381565b60006107f36107e661075e610833565b73__$d4f9e2232a762468832913f371b83514a4$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156107a257600080fd5b505af41580156107b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107da9190810190611c6e565b9063ffffffff6112b216565b849063ffffffff6112de16565b90508181101561080c5761080781846112f3565b61082e565b61082e8261082961081c856108be565b859063ffffffff6112b216565b6112f3565b505050565b600061045c611628565b6001546001600160a01b031681565b60006108666108596105ca565b839063ffffffff61169016565b92915050565b60035460ff1681565b600080610880610476565b905061088a610452565b811061089a57600091505061045f565b6108b2816108a6610452565b9063ffffffff6116a516565b91505090565b60065481565b6000610866610859610833565b60606108d5610ac3565b905060005b8151811015610a1d5760008282815181106108f157fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016109339190612170565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161095f929190612267565b60206040518083038186803b15801561097757600080fd5b505afa15801561098b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109af9190810190611bd8565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610a0b908490849061224b565b60405180910390a150506001016108da565b5050565b60085481565b6001546001600160a01b03163314610a515760405162461bcd60e51b8152600401610199906122c1565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610a94926001600160a01b03918216929116906121f5565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610ace6116cd565b60408051600580825260c08201909252919250606091906020820160a080388339019050509050680a6f2dce8d0e68aa8960bb1b81600081518110610b0f57fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b81600181518110610b3557fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110610b5f57fe5b6020026020010181815250506524b9b9bab2b960d11b81600381518110610b8257fe5b60200260200101818152505066119959541bdbdb60ca1b81600481518110610ba657fe5b602002602001018181525050610bbc828261171e565b9250505090565b6000546001600160a01b031681565b60025481565b60075481565b60035460ff1615610c015760405162461bcd60e51b815260040161019990612361565b600554604051636eb1769f60e11b81526001600160a01b039091169063dd62ed3e90610c339033903090600401612197565b60206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c839190810190611c6e565b811115610ca25760405162461bcd60e51b8152600401610199906122e1565b6005546040516370a0823160e01b81526001600160a01b03909116906370a0823190610cd2903390600401612189565b60206040518083038186803b158015610cea57600080fd5b505afa158015610cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d229190810190611c6e565b811115610d415760405162461bcd60e51b815260040161019990612351565b6000610d4b610875565b905060008111610d6d5760405162461bcd60e51b815260040161019990612371565b80821015610d8357610d7e826117da565b610a1d565b610a1d816117da565b610d946119b2565b6001600160a01b0316632528f0fe630e68aa8960e31b6040518263ffffffff1660e01b8152600401610dc6919061223d565b60206040518083038186803b158015610dde57600080fd5b505afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e169190810190611c14565b15610e335760405162461bcd60e51b815260040161019990612301565b6000610e3d6119b2565b6001600160a01b031663654a60ac630e68aa8960e31b600854631cd554d160e21b6040518463ffffffff1660e01b8152600401610e7c93929190612287565b60206040518083038186803b158015610e9457600080fd5b505afa158015610ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ecc9190810190611c6e565b9050610ed66119cd565b6001600160a01b0316639dc29fac306008546040518363ffffffff1660e01b8152600401610f059291906121da565b600060405180830381600087803b158015610f1f57600080fd5b505af1158015610f33573d6000803e3d6000fd5b5050505060085460065410610f5c57600854600654610f579163ffffffff6116a516565b610f5f565b60005b600655610f6a6119e4565b6001600160a01b03166332608039631cd554d160e21b6040518263ffffffff1660e01b8152600401610f9c919061223d565b60206040518083038186803b158015610fb457600080fd5b505afa158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fec9190810190611c32565b6001600160a01b031663867904b46110026119f8565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561103a57600080fd5b505afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110729190810190611bd8565b836040518363ffffffff1660e01b8152600401611090929190612210565b600060405180830381600087803b1580156110aa57600080fd5b505af11580156110be573d6000803e3d6000fd5b50506007546110d6925090508263ffffffff6112b216565b6007556110e16119f8565b6001600160a01b03166322bf55ef826040518263ffffffff1660e01b815260040161110c919061223d565b600060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b50506000600855505050565b600061045c6007546111566119b2565b6001600160a01b031663654a60ac630e68aa8960e31b600654631cd554d160e21b6040518463ffffffff1660e01b815260040161119593929190612287565b60206040518083038186803b1580156111ad57600080fd5b505afa1580156107b6573d6000803e3d6000fd5b60006111cb611a0d565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6040518363ffffffff1660e01b81526004016104a7929190612259565b6000546001600160a01b031633146112485760405162461bcd60e51b815260040161019990612331565b565b6000611254611a0d565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6574686572577261707065724d696e74466565526174650000000000000000006040518363ffffffff1660e01b81526004016104a7929190612259565b6000828201838110156112d75760405162461bcd60e51b8152600401610199906122f1565b9392505050565b60006112d78383670de0b6b3a7640000611a2a565b6000611305828463ffffffff6116a516565b905061130f6119cd565b6001600160a01b031663dd62ed3e33306040518363ffffffff1660e01b815260040161133c929190612197565b60206040518083038186803b15801561135457600080fd5b505afa158015611368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061138c9190810190611c6e565b8211156113ab5760405162461bcd60e51b8152600401610199906122e1565b6113b36119cd565b6001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016113de9190612189565b60206040518083038186803b1580156113f657600080fd5b505afa15801561140a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142e9190810190611c6e565b82111561144d5760405162461bcd60e51b815260040161019990612351565b6114556119cd565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b81526004016114829291906121da565b600060405180830381600087803b15801561149c57600080fd5b505af11580156114b0573d6000803e3d6000fd5b5050505082600654106114d5576006546114d0908463ffffffff6116a516565b6114d8565b60005b6006556114e36119cd565b6001600160a01b031663867904b430836040518363ffffffff1660e01b81526004016115109291906121da565b600060405180830381600087803b15801561152a57600080fd5b505af115801561153e573d6000803e3d6000fd5b5050600854611556925090508263ffffffff6112b216565b60085560055460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061158b90339087906004016121da565b602060405180830381600087803b1580156115a557600080fd5b505af11580156115b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115dd9190810190611c14565b50336001600160a01b03167f4c60206a5c1de41f3376d1d60f0949d96cb682033c90b1c2d9d9a62d4c4120c084838560405161161b93929190612287565b60405180910390a2505050565b6000611632611a0d565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6574686572577261707065724275726e466565526174650000000000000000006040518363ffffffff1660e01b81526004016104a7929190612259565b60006112d78383670de0b6b3a7640000611a6e565b6000828211156116c75760405162461bcd60e51b815260040161019990612311565b50900390565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061170f57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561174e578160200160208202803883390190505b50905060005b83518110156117905783818151811061176957fe5b602002602001015182828151811061177d57fe5b6020908102919091010152600101611754565b5060005b82518110156117d3578281815181106117a957fe5b60200260200101518282865101815181106117c057fe5b6020908102919091010152600101611794565b5092915050565b60006117e58261084c565b905060006117f9838363ffffffff6116a516565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061182e903390309088906004016121b2565b602060405180830381600087803b15801561184857600080fd5b505af115801561185c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118809190810190611c14565b506118896119cd565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016118b69291906121da565b600060405180830381600087803b1580156118d057600080fd5b505af11580156118e4573d6000803e3d6000fd5b505050506118f06119cd565b6001600160a01b031663867904b430846040518363ffffffff1660e01b815260040161191d9291906121da565b600060405180830381600087803b15801561193757600080fd5b505af115801561194b573d6000803e3d6000fd5b5050600854611963925090508363ffffffff6112b216565b600855600654611979908463ffffffff6112b216565b60065560405133907f5a3358a3d27a5373c0df2604662088d37894d56b7cfd27f315770440f4e0d9199061161b90849086908890612287565b600061045c6c45786368616e6765526174657360981b611a99565b600061045c680a6f2dce8d0e68aa8960bb1b611a99565b600061045c6524b9b9bab2b960d11b611a99565b600061045c66119959541bdbdb60ca1b611a99565b600061045c6e466c657869626c6553746f7261676560881b611a99565b600080611a5084611a4487600a870263ffffffff611af616565b9063ffffffff611b3016565b90506005600a825b0610611a6257600a015b600a9004949350505050565b600080600a8304611a85868663ffffffff611af616565b81611a8c57fe5b0490506005600a82611a58565b60008181526004602090815260408083205490516001600160a01b039091169182151591611ac991869101612150565b604051602081830303815290604052906117d35760405162461bcd60e51b815260040161019991906122b0565b600082611b0557506000610866565b82820282848281611b1257fe5b04146112d75760405162461bcd60e51b815260040161019990612341565b6000808211611b515760405162461bcd60e51b815260040161019990612321565b6000828481611b5c57fe5b04949350505050565b803561086681612415565b805161086681612415565b803561086681612429565b805161086681612429565b805161086681612432565b80356108668161243b565b80516108668161243b565b600060208284031215611bc457600080fd5b6000611bd08484611b65565b949350505050565b600060208284031215611bea57600080fd5b6000611bd08484611b70565b600060208284031215611c0857600080fd5b6000611bd08484611b7b565b600060208284031215611c2657600080fd5b6000611bd08484611b86565b600060208284031215611c4457600080fd5b6000611bd08484611b91565b600060208284031215611c6257600080fd5b6000611bd08484611b9c565b600060208284031215611c8057600080fd5b6000611bd08484611ba7565b6000611c988383611d1a565b505060200190565b611ca9816123d0565b82525050565b611ca9816123a9565b6000611cc382612397565b611ccd818561239b565b9350611cd883612391565b8060005b83811015611d06578151611cf08882611c8c565b9750611cfb83612391565b925050600101611cdc565b509495945050505050565b611ca9816123b4565b611ca98161045f565b611ca9611d2f8261045f565b61045f565b611ca9816123b9565b6000611d4882612397565b611d52818561239b565b9350611d628185602086016123db565b611d6b8161240b565b9093019392505050565b6000611d8260358361239b565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000611dd9601d8361239b565b7f46616c6c6261636b2064697361626c65642c20757365206d696e742829000000815260200192915050565b6000611e1260198361239b565b7f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000815260200192915050565b6000611e4b601b8361239b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611e8460188361239b565b7f43757272656e6379207261746520697320696e76616c69640000000000000000815260200192915050565b6000611ebd601e8361239b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611ef6601a8361239b565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611f2f6011836123a4565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611f5c602f8361239b565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000611fad60218361239b565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000611ff060128361239b565b7142616c616e636520697320746f6f206c6f7760701b815260200192915050565b600061201e603c8361239b565b7f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642081527f7768696c652074686520636f6e74726163742069732070617573656400000000602082015260400192915050565b600061207d6019836123a4565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006120b660268361239b565b7f436f6e747261637420686173206e6f20737061726520636170616369747920748152651bc81b5a5b9d60d21b602082015260400192915050565b60006120fe60388361239b565b7f436f6e74726163742063616e6e6f74206275726e207345544820666f7220574581527f54482c20574554482062616c616e6365206973207a65726f0000000000000000602082015260400192915050565b600061215b82611f22565b91506121678284611d23565b50602001919050565b600061215b82612070565b602081016108668284611caf565b602081016108668284611ca0565b604081016121a58285611ca0565b6112d76020830184611ca0565b606081016121c08286611ca0565b6121cd6020830185611ca0565b611bd06040830184611d1a565b604081016121e88285611ca0565b6112d76020830184611d1a565b604081016122038285611caf565b6112d76020830184611caf565b604081016121e88285611caf565b602080825281016112d78184611cb8565b602081016108668284611d11565b602081016108668284611d1a565b604081016122038285611d1a565b604081016121e88285611d1a565b604081016122758285611d1a565b8181036020830152611bd08184611d3d565b606081016122958286611d1a565b6121cd6020830185611d1a565b602081016108668284611d34565b602080825281016112d78184611d3d565b6020808252810161086681611d75565b6020808252810161086681611dcc565b6020808252810161086681611e05565b6020808252810161086681611e3e565b6020808252810161086681611e77565b6020808252810161086681611eb0565b6020808252810161086681611ee9565b6020808252810161086681611f4f565b6020808252810161086681611fa0565b6020808252810161086681611fe3565b6020808252810161086681612011565b60208082528101610866816120a9565b60208082528101610866816120f1565b60200190565b5190565b90815260200190565b919050565b6000610866826123c4565b151590565b6000610866826123a9565b6001600160a01b031690565b6000610866826123b9565b60005b838110156123f65781810151838201526020016123de565b83811115612405576000848401525b50505050565b601f01601f191690565b61241e816123a9565b81146105c757600080fd5b61241e816123b4565b61241e816123b9565b61241e8161045f56fea365627a7a72315820f8efc17dab3155057d699d2274354d1f9ac183315200d1ccbd5fb0379416fc716c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "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": true,
					"inputs": [],
					"name": "sUSDIssued",
					"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": "0x4735736d28262746d6c4905976ced7ff056cd347c6d9dd1d68105099c498d706",
				"urls": [
					"bzz-raw://ada00f693c127b04ffb0f3a82956f09d15379b893c6e5875a37ea8e05711f8ee",
					"dweb:/ipfs/QmTDLykZJcqW5X8H1FBREy1V91tzfdnPnW24Rzp6Qr3bjc"
				]
			},
			"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": "0x4735736d28262746d6c4905976ced7ff056cd347c6d9dd1d68105099c498d706",
						"urls": [
							"bzz-raw://ada00f693c127b04ffb0f3a82956f09d15379b893c6e5875a37ea8e05711f8ee",
							"dweb:/ipfs/QmTDLykZJcqW5X8H1FBREy1V91tzfdnPnW24Rzp6Qr3bjc"
						]
					}
				},
				"version": 1
			}
		},
		"NativeEtherWrapper": {
			"bytecode": "608060405234801561001057600080fd5b506040516110703803806110708339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050610f4c806101246000396000f3fe6080604052600436106100915760003560e01c806353a47bb71161005957806353a47bb714610152578063741853601461016757806379ba50971461017c578063899ffef4146101915780638da5cb5b146101f657610091565b806304f3bcec146100935780631249c58b146100c45780631627540c146100cc5780632af64bd3146100ff57806342966c6814610128575b005b34801561009f57600080fd5b506100a861020b565b604080516001600160a01b039092168252519081900360200190f35b61009161021a565b3480156100d857600080fd5b50610091600480360360208110156100ef57600080fd5b50356001600160a01b031661051c565b34801561010b57600080fd5b50610114610578565b604080519115158252519081900360200190f35b34801561013457600080fd5b506100916004803603602081101561014b57600080fd5b5035610683565b34801561015e57600080fd5b506100a86109c2565b34801561017357600080fd5b506100916109d1565b34801561018857600080fd5b50610091610b99565b34801561019d57600080fd5b506101a6610c55565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101e25781810151838201526020016101ca565b505050509050019250505060405180910390f35b34801561020257600080fd5b506100a8610ccc565b6002546001600160a01b031681565b348061026d576040805162461bcd60e51b815260206004820181905260248201527f6d73672e76616c7565206d7573742062652067726561746572207468616e2030604482015290519081900360640190fd5b610275610cdb565b6001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156102af57600080fd5b505af11580156102c3573d6000803e3d6000fd5b50505050506102d0610cdb565b6001600160a01b031663095ea7b36102e6610d4e565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b505050506040513d602081101561036057600080fd5b5061036b9050610d4e565b6001600160a01b031663a0712d68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050506103d0610d6d565b6001600160a01b031663a9059cbb336103e7610d6d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561043c57600080fd5b505afa158015610450573d6000803e3d6000fd5b505050506040513d602081101561046657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156104b757600080fd5b505af11580156104cb573d6000803e3d6000fd5b505050506040513d60208110156104e157600080fd5b505060408051828152905133917f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe919081900360200190a250565b610524610d84565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006060610584610c55565b905060005b81518110156106795760008282815181106105a057fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561060857600080fd5b505afa15801561061c573d6000803e3d6000fd5b505050506040513d602081101561063257600080fd5b50516001600160a01b031614158061065f57506000818152600360205260409020546001600160a01b0316155b156106705760009350505050610680565b50600101610589565b5060019150505b90565b600081116106d8576040805162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b60006106e2610cdb565b90506106ec610d6d565b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b505050506040513d602081101561076e57600080fd5b506107799050610d6d565b6001600160a01b031663095ea7b361078f610d4e565b846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107df57600080fd5b505af11580156107f3573d6000803e3d6000fd5b505050506040513d602081101561080957600080fd5b506108149050610d4e565b6001600160a01b03166342966c68836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516001600160a01b0385169350632e1a7d4d925083916370a08231916024808301926020929190829003018186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d60208110156108e957600080fd5b5051604080516001600160e01b031960e085901b168152600481019290925251602480830192600092919082900301818387803b15801561092957600080fd5b505af115801561093d573d6000803e3d6000fd5b5050604051339250479150600081818185875af1925050503d8060008114610981576040519150601f19603f3d011682016040523d82523d6000602084013e610986565b606091505b50506040805184815290513392507f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df79181900360200190a25050565b6001546001600160a01b031681565b60606109db610c55565b905060005b8151811015610b955760008282815181106109f757fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610aad578181015183820152602001610a95565b50505050905090810190601f168015610ada5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610af857600080fd5b505afa158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016109e0565b5050565b6001546001600160a01b03163314610be25760405162461bcd60e51b8152600401808060200182810382526035815260200180610eb46035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6040805160028082526060808301845292839291906020830190803883390190505090506b22ba3432b92bb930b83832b960a11b81600081518110610c9657fe5b602002602001018181525050680a6f2dce8d0e68aa8960bb1b81600181518110610cbc57fe5b6020908102919091010152905090565b6000546001600160a01b031681565b6000610ce5610d4e565b6001600160a01b0316633fc8cef36040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1d57600080fd5b505afa158015610d31573d6000803e3d6000fd5b505050506040513d6020811015610d4757600080fd5b5051905090565b6000610d686b22ba3432b92bb930b83832b960a11b610dcf565b905090565b6000610d68680a6f2dce8d0e68aa8960bb1b610dcf565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ee9602f913960400191505060405180910390fd5b565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610eac5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e71578181015183820152602001610e59565b50505050905090810190601f168015610e9e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820a845e285e9335ba73874c9644be641516eaa7097ef7ec9fcdf67e4c2ff68e53164736f6c63430005100032",
			"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": "0xa87ce7a4d5987770096e9972580096ac0912ccf1fa4a2117f606e0fd324006cc",
				"urls": [
					"bzz-raw://c71482cb0e1fbabe3328112f8a07b9209ffc461d6712c1d7356dbfbde4de9483",
					"dweb:/ipfs/QmPbA8jai2hzUYPDfMyqZMqbyk7GEgdm6VCWFdszp3DVmx"
				]
			},
			"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": "0xa87ce7a4d5987770096e9972580096ac0912ccf1fa4a2117f606e0fd324006cc",
						"urls": [
							"bzz-raw://c71482cb0e1fbabe3328112f8a07b9209ffc461d6712c1d7356dbfbde4de9483",
							"dweb:/ipfs/QmPbA8jai2hzUYPDfMyqZMqbyk7GEgdm6VCWFdszp3DVmx"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralUtil": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200160f3803806200160f83398101604081905262000034916200006d565b600080546001600160a01b0319166001600160a01b0392909216919091179055620000c2565b80516200006781620000a8565b92915050565b6000602082840312156200008057600080fd5b60006200008e84846200005a565b949350505050565b60006001600160a01b03821662000067565b620000b38162000096565b8114620000bf57600080fd5b50565b61153d80620000d26000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063899ffef41161005b578063899ffef4146100ea5780638a739975146100ff578063e99f964714610112578063fbfeca401461012557610088565b806304f3bcec1461008d5780632af64bd3146100ab5780633c4aa0f3146100c057806374185360146100e0575b600080fd5b610095610138565b6040516100a29190611402565b60405180910390f35b6100b3610147565b6040516100a29190611349565b6100d36100ce366004610f52565b61025d565b6040516100a29190611357565b6100e861039a565b005b6100f26104ef565b6040516100a29190611338565b6100d361010d36600461103f565b61055b565b6100d3610120366004610f9f565b61068f565b6100d3610133366004610fdb565b6107ee565b6000546001600160a01b031681565b600060606101536104ef565b905060005b815181101561025357600082828151811061016f57fe5b60209081029190910181015160008181526001909252604080832054925490516321f8a72160e01b81529193506001600160a01b039283169216906321f8a721906101be908590600401611357565b60206040518083038186803b1580156101d657600080fd5b505afa1580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061020e9190810190610f34565b6001600160a01b031614158061023957506000818152600160205260409020546001600160a01b0316155b1561024a576000935050505061025a565b50600101610158565b5060019150505b90565b600080610268610acb565b9050610272610b7d565b6001600160a01b031663654a60ac8686866040518463ffffffff1660e01b81526004016102a1939291906113da565b60206040518083038186803b1580156102b957600080fd5b505afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102f19190810190611021565b915061038f6103828273__$97b3e989cac6f491ef7ec53236026bc2c9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561033e57600080fd5b505af4158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103769190810190611021565b9063ffffffff610c0e16565b839063ffffffff610c3c16565b9150505b9392505050565b60606103a46104ef565b905060005b81518110156104eb5760008282815181106103c057fe5b6020026020010151905060008060009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610401919061132d565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161042d92919061139b565b60206040518083038186803b15801561044557600080fd5b505afa158015610459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061047d9190810190610f34565b6000838152600160205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906104d99084908490611365565b60405180910390a150506001016103a9565b5050565b6060806104fa610c66565b60408051600180825281830190925291925060609190602080830190803883390190505090506c45786368616e6765526174657360981b8160008151811061053e57fe5b6020026020010181815250506105548282610cb7565b9250505090565b6000806105ea8473__$97b3e989cac6f491ef7ec53236026bc2c9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156105a657600080fd5b505af41580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105de9190810190611021565b9063ffffffff610d7316565b90506106836105f7610b7d565b6001600160a01b031663654a60ac8589896040518463ffffffff1660e01b8152600401610626939291906113da565b60206040518083038186803b15801561063e57600080fd5b505afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106769190810190611021565b829063ffffffff610c3c16565b9150505b949350505050565b60008061069a610b7d565b6001600160a01b031663654a60ac848660400135631cd554d160e21b6040518463ffffffff1660e01b81526004016106d4939291906113da565b60206040518083038186803b1580156106ec57600080fd5b505afa158015610700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107249190810190611021565b90506000610730610b7d565b6001600160a01b031663654a60ac606087013561075b608089013560c08a013563ffffffff610c0e16565b631cd554d160e21b6040518463ffffffff1660e01b8152600401610781939291906113da565b60206040518083038186803b15801561079957600080fd5b505afa1580156107ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107d19190810190611021565b90506107e3828263ffffffff610d8816565b925050505b92915050565b6000806107f9610acb565b90506000610805610b7d565b6001600160a01b031663654a60ac606088013561083060808a013560c08b013563ffffffff610c0e16565b631cd554d160e21b6040518463ffffffff1660e01b8152600401610856939291906113da565b60206040518083038186803b15801561086e57600080fd5b505afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108a69190810190611021565b905060006108b2610b7d565b6001600160a01b031663654a60ac868960400135631cd554d160e21b6040518463ffffffff1660e01b81526004016108ec939291906113da565b60206040518083038186803b15801561090457600080fd5b505afa158015610918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061093c9190810190611021565b9050600073__$97b3e989cac6f491ef7ec53236026bc2c9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561098457600080fd5b505af4158015610998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bc9190810190611021565b905060006109e06109d3848a63ffffffff610d8816565b859063ffffffff610db216565b90506000610a14610a078a6109fb868a63ffffffff610c0e16565b9063ffffffff610d8816565b849063ffffffff610db216565b90506000610a28838363ffffffff610d8816565b9050610a32610b7d565b6001600160a01b031663654a60ac631cd554d160e21b838e606001356040518463ffffffff1660e01b8152600401610a6c939291906113da565b60206040518083038186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610abc9190810190611021565b9b9a5050505050505050505050565b6000610ad5610dda565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401610b28929190611380565b60206040518083038186803b158015610b4057600080fd5b505afa158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b789190810190611021565b905090565b6000805460405163dacb2d0160e01b81526001600160a01b039091169063dacb2d0190610bbe906c45786368616e6765526174657360981b906004016113bb565b60206040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b789190810190610f34565b6000828201838110156103935760405162461bcd60e51b8152600401610c3390611421565b60405180910390fd5b6000670de0b6b3a7640000610c57848463ffffffff610df716565b81610c5e57fe5b049392505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110610ca857fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610ce7578160200160208202803883390190505b50905060005b8351811015610d2957838181518110610d0257fe5b6020026020010151828281518110610d1657fe5b6020908102919091010152600101610ced565b5060005b8251811015610d6c57828181518110610d4257fe5b6020026020010151828286510181518110610d5957fe5b6020908102919091010152600101610d2d565b5092915050565b60006103938383670de0b6b3a7640000610e31565b600061039382610da685670de0b6b3a764000063ffffffff610df716565b9063ffffffff610e6816565b600082821115610dd45760405162461bcd60e51b8152600401610c3390611431565b50900390565b6000610b786e466c657869626c6553746f7261676560881b610e9d565b600082610e06575060006107e8565b82820282848281610e1357fe5b04146103935760405162461bcd60e51b8152600401610c3390611451565b600080610e4b84610da687600a870263ffffffff610df716565b90506005600a820610610e5c57600a015b600a9004949350505050565b6000808211610e895760405162461bcd60e51b8152600401610c3390611441565b6000828481610e9457fe5b04949350505050565b60008181526001602090815260408083205490516001600160a01b039091169182151591610ecd9186910161130d565b60405160208183030381529060405290610d6c5760405162461bcd60e51b8152600401610c339190611410565b80516107e8816114da565b80356107e8816114f1565b60006101208284031215610f2357600080fd5b50919050565b80516107e8816114f1565b600060208284031215610f4657600080fd5b60006106878484610efa565b600080600060608486031215610f6757600080fd5b6000610f738686610f05565b9350506020610f8486828701610f05565b9250506040610f9586828701610f05565b9150509250925092565b6000806101408385031215610fb357600080fd5b6000610fbf8585610f10565b925050610120610fd185828601610f05565b9150509250929050565b60008060006101608486031215610ff157600080fd5b6000610ffd8686610f10565b93505061012061100f86828701610f05565b925050610140610f9586828701610f05565b60006020828403121561103357600080fd5b60006106878484610f29565b6000806000806080858703121561105557600080fd5b60006110618787610f05565b945050602061107287828801610f05565b935050604061108387828801610f05565b925050606061109487828801610f05565b91505092959194509250565b60006110ac8383611125565b505060200190565b6110bd81611479565b82525050565b60006110ce82611467565b6110d8818561146b565b93506110e383611461565b8060005b838110156111115781516110fb88826110a0565b975061110683611461565b9250506001016110e7565b509495945050505050565b6110bd81611484565b6110bd8161025a565b6110bd61113a8261025a565b61025a565b6110bd81611495565b600061115382611467565b61115d818561146b565b935061116d8185602086016114a0565b611176816114d0565b9093019392505050565b600061118d601b8361146b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006111c6601e8361146b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006111ff601a8361146b565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611238601183611474565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061126560218361146b565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006112a8601e8361146b565b7f4d697373696e672045786368616e6765526174657320636f6e74726163740000815260200192915050565b60006112e1601983611474565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006113188261122b565b9150611324828461112e565b50602001919050565b6000611318826112d4565b6020808252810161039381846110c3565b602081016107e8828461111c565b602081016107e88284611125565b604081016113738285611125565b61039360208301846110b4565b6040810161138e8285611125565b6103936020830184611125565b604081016113a98285611125565b81810360208301526106878184611148565b604081016113c98284611125565b81810360208301526103938161129b565b606081016113e88286611125565b6113f56020830185611125565b6106876040830184611125565b602081016107e8828461113f565b602080825281016103938184611148565b602080825281016107e881611180565b602080825281016107e8816111b9565b602080825281016107e8816111f2565b602080825281016107e881611258565b60200190565b5190565b90815260200190565b919050565b60006107e882611489565b151590565b6001600160a01b031690565b60006107e882611479565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b601f01601f191690565b6114e381611479565b81146114ee57600080fd5b50565b6114e38161025a56fea365627a7a72315820aa9a338e4c0257d23c1fe3767298d94250205af31cf5d3ee05ecf637b7ce25b16c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x978d216055398bfc8b47ee5213c51af4635e5eb3356ce1d599fdf8b0dc4b3a7c",
				"urls": [
					"bzz-raw://b06b94917f3ea1b35416cff947d0b117592dab41d5a58d0b6e993062b3ef7065",
					"dweb:/ipfs/QmS4ZEaiEFS5imthQE8Ziso9C7qCxmV7Sv7HFcsJ3wyjEP"
				]
			},
			"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": "0x978d216055398bfc8b47ee5213c51af4635e5eb3356ce1d599fdf8b0dc4b3a7c",
						"urls": [
							"bzz-raw://b06b94917f3ea1b35416cff947d0b117592dab41d5a58d0b6e993062b3ef7065",
							"dweb:/ipfs/QmS4ZEaiEFS5imthQE8Ziso9C7qCxmV7Sv7HFcsJ3wyjEP"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManagerState": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620011b2380380620011b2833981016040819052620000349162000190565b80826001600160a01b038116620000685760405162461bcd60e51b81526004016200005f906200029d565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b591849062000265565b60405180910390a1506000546001600160a01b0316620000e95760405162461bcd60e51b81526004016200005f906200028b565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03906200013690839062000255565b60405180910390a150506004805460018101825560009182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01555042600555620002f8565b80516200018a81620002de565b92915050565b60008060408385031215620001a457600080fd5b6000620001b285856200017d565b9250506020620001c5858286016200017d565b9150509250929050565b620001da81620002ca565b82525050565b620001da81620002b8565b6000620001fa601183620002af565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b600062000229601983620002af565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200018a8284620001e0565b60408101620002758285620001cf565b620002846020830184620001e0565b9392505050565b602080825281016200018a81620001eb565b602080825281016200018a816200021a565b90815260200190565b60006001600160a01b0382166200018a565b60006200018a8260006200018a82620002b8565b620002e981620002b8565b8114620002f557600080fd5b50565b610eaa80620003086000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638c58250311610104578063cc952b57116100a2578063e50a31b311610071578063e50a31b31461038f578063eb94bbde146103a2578063ed039154146103b5578063f53037b6146103c8576101cf565b8063cc952b571461034e578063d2f0047514610356578063e31f27c114610369578063e32261fe1461037c576101cf565b8063a29fe7b8116100de578063a29fe7b81461030d578063aefc4ccb14610320578063af07aa9d14610328578063b52e0dc81461033b576101cf565b80638c582503146102ea5780638da5cb5b146102f2578063a0356f6e146102fa576101cf565b806352f445ca116101715780636431e0bd1161014b5780636431e0bd146102a6578063781dc0e2146102b957806379ba5097146102c157806383d625d4146102c9576101cf565b806352f445ca1461026b57806353a47bb71461027e5780635537479914610293576101cf565b806322e07b7a116101ad57806322e07b7a14610235578063246206391461023d578063381c5cb5146102505780635246f2b914610258576101cf565b806303f048b0146101d45780631627540c14610200578063173fcb4114610215575b600080fd5b6101e76101e2366004610b70565b6103db565b6040516101f79493929190610df2565b60405180910390f35b61021361020e366004610b4a565b610415565b005b610228610223366004610b8e565b610473565b6040516101f79190610dc9565b6102286104a1565b61021361024b366004610b8e565b6104a7565b61022861050d565b610213610266366004610b8e565b610514565b610213610279366004610b4a565b610579565b6102866105cc565b6040516101f79190610d50565b6102286102a1366004610b70565b6105db565b6102136102b4366004610b70565b6105ed565b610228610631565b610213610637565b6102dc6102d7366004610b70565b6106d3565b6040516101f7929190610dd7565b6102286106ec565b610286610737565b610228610308366004610b70565b610746565b61022861031b366004610b70565b610758565b610286610776565b6101e7610336366004610b8e565b610785565b610228610349366004610b70565b6107c5565b6102286107e6565b610228610364366004610b70565b6107ec565b610213610377366004610b8e565b61082c565b61022861038a366004610b70565b610878565b61021361039d366004610b8e565b6108bb565b6102136103b0366004610b8e565b61091a565b6102136103c3366004610b70565b610963565b6102136103d6366004610b70565b6109d6565b6000806000806103e961050d565b90506103f4856107c5565b9350610402600182036107c5565b925061040c610631565b91509193509193565b61041d610a39565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610468908390610d50565b60405180910390a150565b6006602052816000526040600020818154811061048c57fe5b90600052602060002001600091509150505481565b60055481565b6002546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d190610db9565b60405180910390fd5b60008281526006602090815260408083208054600181018255908452828420019390935592815260079092529020429055565b6004545b90565b6002546001600160a01b0316331461053e5760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a6516565b6000928352600860205260409092206001019190915550565b610581610a39565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390610468908390610d50565b6001546001600160a01b031681565b60076020526000908152604090205481565b6002546001600160a01b031633146106175760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040812061062e91610afd565b50565b60055490565b6001546001600160a01b031633146106615760405162461bcd60e51b81526004016104d190610d79565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926106a4926001600160a01b0391821692911690610d5e565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6008602052600090815260409020805460019091015482565b6002546000906001600160a01b031633146107195760405162461bcd60e51b81526004016104d190610db9565b60035461072d90600163ffffffff610a9216565b6003819055905090565b6000546001600160a01b031681565b60009081526006602052604090205490565b6004818154811061076557fe5b600091825260209091200154905081565b6002546001600160a01b031681565b60008060008061079486610746565b90506107a08686610abe565b93506107af8660018303610abe565b92506107ba86610aeb565b915092959194509250565b6000600482815481106107d457fe5b90600052602060002001549050919050565b60035481565b6002546000906001600160a01b031633146108195760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090205490565b6002546001600160a01b031633146108565760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a9216565b6002546000906001600160a01b031633146108a55760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090206001015490565b6002546001600160a01b031633146108e55760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a6516565b6000928352600860205260409092209190915550565b6002546001600160a01b031633146109445760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a9216565b6002546001600160a01b0316331461098d5760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040902054156109a65761062e565b60008181526006602090815260408083208054600181018255908452828420018390559282526007905220429055565b6002546001600160a01b03163314610a005760405162461bcd60e51b81526004016104d190610db9565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015542600555565b6000546001600160a01b03163314610a635760405162461bcd60e51b81526004016104d190610da9565b565b600082821115610a875760405162461bcd60e51b81526004016104d190610d99565b508082035b92915050565b600082820183811015610ab75760405162461bcd60e51b81526004016104d190610d89565b9392505050565b6000828152600660205260408120805483908110610ad857fe5b9060005260206000200154905092915050565b60009081526007602052604090205490565b508054600082559060005260206000209081019061062e919061051191905b80821115610b305760008155600101610b1c565b5090565b8035610a8c81610e4a565b8035610a8c81610e5e565b600060208284031215610b5c57600080fd5b6000610b688484610b34565b949350505050565b600060208284031215610b8257600080fd5b6000610b688484610b3f565b60008060408385031215610ba157600080fd5b6000610bad8585610b3f565b9250506020610bbe85828601610b3f565b9150509250929050565b610bd181610e39565b82525050565b6000610be4603583610e30565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610c3b601b83610e30565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610c74601e83610e30565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000610cad602f83610e30565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000610cfe603483610e30565b7f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e815273103832b93337b936903a3434b99030b1ba34b7b760611b602082015260400192915050565b610bd181610511565b60208101610a8c8284610bc8565b60408101610d6c8285610bc8565b610ab76020830184610bc8565b60208082528101610a8c81610bd7565b60208082528101610a8c81610c2e565b60208082528101610a8c81610c67565b60208082528101610a8c81610ca0565b60208082528101610a8c81610cf1565b60208101610a8c8284610d47565b60408101610de58285610d47565b610ab76020830184610d47565b60808101610e008287610d47565b610e0d6020830186610d47565b610e1a6040830185610d47565b610e276060830184610d47565b95945050505050565b90815260200190565b60006001600160a01b038216610a8c565b610e5381610e39565b811461062e57600080fd5b610e538161051156fea365627a7a7231582009384d6489f1be096a571a2758589e54df76892d2b553f667dccda20c27506eb6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x80734661fd13d743fa41b2a232238e2ce828dccf6a3f3bb14cc7f12ffe7ed5b6",
				"urls": [
					"bzz-raw://032fdb2fc6d72b1c272f6ce51786a78f4ac68811253f94a71d69598e055de9e3",
					"dweb:/ipfs/QmXWs8ggrQ2wrw9JY1uU1e34xWtNgMb1YED735peqyH7RM"
				]
			},
			"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": "0x80734661fd13d743fa41b2a232238e2ce828dccf6a3f3bb14cc7f12ffe7ed5b6",
						"urls": [
							"bzz-raw://032fdb2fc6d72b1c272f6ce51786a78f4ac68811253f94a71d69598e055de9e3",
							"dweb:/ipfs/QmXWs8ggrQ2wrw9JY1uU1e34xWtNgMb1YED735peqyH7RM"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManager": {
			"bytecode": "670de0b6b3a764000060105560c06040526524b9b9bab2b960d11b60809081526c45786368616e6765526174657360981b60a0526200004390601590600262000369565b503480156200005157600080fd5b5060405162004093380380620040938339810160408190526200007491620003f9565b84866001600160a01b038116620000a85760405162461bcd60e51b81526004016200009f906200061f565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000f5918490620005c3565b60405180910390a1506000546001600160a01b0316620001295760405162461bcd60e51b81526004016200009f906200060d565b60038054610100600160a81b0319166101006001600160a01b039384160217905560008054336001600160a01b031991821617909155600580549091169189169190911790556200017a84620001e4565b6200018e836001600160e01b036200025c16565b620001a2826001600160e01b03620002a616565b620001b6816001600160e01b03620002f016565b5050600080546001600160a01b0319166001600160a01b03959095169490941790935550620006ad92505050565b620001f76001600160e01b036200033a16565b600081116200021a5760405162461bcd60e51b81526004016200009f90620005e9565b60118190556040517f3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f906200025190839062000631565b60405180910390a150565b6200026f6001600160e01b036200033a16565b60128190556040517f465c1047eec44dfecb260ee7e6187823a7cbdd80f19082eb56c35967b16d8e26906200025190839062000631565b620002b96001600160e01b036200033a16565b60138190556040517f08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004906200025190839062000631565b620003036001600160e01b036200033a16565b60148190556040517fe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9906200025190839062000631565b6000546001600160a01b03163314620003675760405162461bcd60e51b81526004016200009f90620005fb565b565b82601881019282156200039a579160200282015b828111156200039a5782518255916020019190600101906200037d565b50620003a8929150620003ac565b5090565b620003c991905b80821115620003a85760008155600101620003b3565b90565b8051620003d9816200067d565b92915050565b8051620003d98162000697565b8051620003d981620006a2565b600080600080600080600060e0888a0312156200041557600080fd5b6000620004238a8a620003df565b9750506020620004368a828b01620003cc565b9650506040620004498a828b01620003cc565b95505060606200045c8a828b01620003ec565b94505060806200046f8a828b01620003ec565b93505060a0620004828a828b01620003ec565b92505060c0620004958a828b01620003ec565b91505092959891949750929550565b620004af8162000670565b82525050565b620004af816200064a565b6000620004cf60168362000641565b7f4d7573742062652067726561746572207468616e203000000000000000000000815260200192915050565b60006200050a602f8362000641565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006200055d60118362000641565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b60006200058c60198362000641565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b620004af81620003c9565b60408101620005d38285620004a4565b620005e26020830184620004b5565b9392505050565b60208082528101620003d981620004c0565b60208082528101620003d981620004fb565b60208082528101620003d9816200054e565b60208082528101620003d9816200057d565b60208101620003d98284620005b8565b90815260200190565b6000620003d98262000664565b6000620003d9826200064a565b6001600160a01b031690565b6000620003d98262000657565b62000688816200064a565b81146200069457600080fd5b50565b620006888162000657565b6200068881620003c9565b6139d680620006bd6000396000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c80638da5cb5b116101b8578063bbb601cd11610104578063e31f27c1116100a2578063eb94bbde1161007c578063eb94bbde146106a7578063edc77dc2146106ba578063ee81f790146106c2578063ffa749cd146106d557610342565b8063e31f27c11461066e578063e32261fe14610681578063e50a31b31461069457610342565b8063c9e18015116100de578063c9e1801514610638578063ca969f2314610640578063d0064c0014610653578063d2f004751461065b57610342565b8063bbb601cd14610615578063bf38668214610628578063c19d93fb1461063057610342565b8063af07aa9d11610171578063b4d6cb401161014b578063b4d6cb40146105c6578063b9e2451c146105e7578063ba1c5e80146105fa578063baa380361461060257610342565b8063af07aa9d14610598578063b38988f7146105ab578063b3b46732146105be57610342565b80638da5cb5b1461054757806391b4ded91461054f57806393a72fbe146105575780639f7eac371461056a578063a894a14b1461057d578063ad79a8581461059057610342565b8063614d08f81161029257806379ba509711610230578063899ffef41161020a578063899ffef4146105045780638b173e81146105195780638d1341901461052c5780638d6ad02d1461053f57610342565b806379ba5097146104c857806380054666146104d05780638471db13146104f157610342565b806372e18b6a1161026c57806372e18b6a14610487578063741853601461049a578063744d646e146104a25780637687402a146104b557610342565b8063614d08f8146104595780636526941b14610461578063710388d11461047457610342565b806323d60e2e116102ff5780634db7764c116102d95780634db7764c146104215780635246f2b91461042957806353a47bb71461043c5780635c975abb1461045157610342565b806323d60e2e146103d95780632af64bd3146103ec578063382453771461040157610342565b806303f048b01461034757806304f3bcec146103735780630c9c81a1146103885780631627540c1461039d57806316c38b3c146103b05780631e33fc6b146103c3575b600080fd5b61035a61035536600461317d565b6106e8565b60405161036a9493929190613877565b60405180910390f35b61037b61077f565b60405161036a91906137a8565b61039b61039636600461317d565b610793565b005b61039b6103ab366004612fcd565b6107db565b61039b6103be366004613141565b61082e565b6103cb6108a3565b60405161036a929190613737565b61039b6103e7366004613080565b610b1e565b6103f4610c4e565b60405161036a91906136f2565b61041461040f36600461317d565b610d6b565b60405161036a919061371b565b610414610d7d565b61039b6104373660046131b9565b610d83565b610444610e16565b60405161036a91906136b8565b6103f4610e25565b610414610e2e565b61039b61046f36600461317d565b610e46565b61039b610482366004613080565b610ea3565b6103f4610495366004613080565b610fb7565b61039b611051565b6103f46104b036600461304b565b6111a7565b61039b6104c33660046131b9565b6111f1565b61039b61124d565b6104e36104de366004613208565b6112e9565b60405161036a929190613765565b6103f46104ff36600461317d565b611414565b61050c611428565b60405161036a91906136e1565b61039b61052736600461317d565b611595565b61039b61053a36600461317d565b6115d2565b610414611662565b610444611668565b610414611677565b6103f4610565366004613080565b61167d565b61039b61057836600461317d565b611760565b61039b61058b366004613080565b6117bd565b6103cb61190c565b61035a6105a63660046131b9565b611afa565b6103f46105b9366004612fcd565b611b95565b610414611bae565b6105d96105d43660046131b9565b611c67565b60405161036a929190613700565b6104146105f536600461317d565b611d2f565b6103cb611d41565b61039b61061036600461317d565b611e64565b61039b610623366004613009565b611ea1565b610414611f81565b61037b611f87565b610414611f96565b61039b61064e366004613009565b611f9c565b610414612155565b61041461066936600461317d565b61215b565b61039b61067c3660046131b9565b6121dc565b61041461068f36600461317d565b612238565b61039b6106a23660046131b9565b612269565b61039b6106b53660046131b9565b6122c5565b6103cb612321565b6103cb6106d036600461317d565b612515565b61039b6106e3366004613009565b612745565b600554604051623f048b60e41b81526000918291829182916001600160a01b03909116906303f048b09061072090889060040161371b565b60806040518083038186803b15801561073857600080fd5b505afa15801561074c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107709190810190613255565b92989197509550909350915050565b60035461010090046001600160a01b031681565b61079b6127fe565b60138190556040517f08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004906107d090839061371b565b60405180910390a150565b6107e36127fe565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107d09083906136b8565b6108366127fe565b60035460ff161515811515141561084c576108a0565b6003805460ff1916821515179081905560ff161561086957426002555b6003546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916107d09160ff909116906136f2565b50565b600880546040805160208084028201810190925282815260009384936060938301828280156108f157602002820191906000526020600020905b8154815260200190600101908083116108dd575b50505050509050600081511115610b195760005b8151811015610b1757600082828151811061091c57fe5b60200260200101519050631cd554d160e21b8114156109cb5760055460405163d2f0047560e01b81526109c4916001600160a01b03169063d2f004759061096790859060040161371b565b60206040518083038186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109b7919081019061319b565b869063ffffffff61282a16565b9450610b0e565b6000806109d6612856565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401610a01919061371b565b604080518083038186803b158015610a1857600080fd5b505afa158015610a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a5091908101906131e9565b60055460405163d2f0047560e01b8152929450909250600091610aeb9185916001600160a01b039091169063d2f0047590610a8f90899060040161371b565b60206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610adf919081019061319b565b9063ffffffff61287616565b9050610afd888263ffffffff61282a16565b97508115610b0a57600196505b5050505b50600101610905565b505b509091565b610b266127fe565b828114610b4e5760405162461bcd60e51b8152600401610b45906137c7565b60405180910390fd5b60005b83811015610c3f57610b7f858583818110610b6857fe5b90506020020135600a6128a090919063ffffffff16565b610c37576000858583818110610b9157fe5b905060200201359050610bae81600a6128f090919063ffffffff16565b610bd4848484818110610bbd57fe5b9050602002013560086128f090919063ffffffff16565b80600c6000868686818110610be557fe5b905060200201358152602001908152602001600020819055507f87f8a613724bd8be7a9139e4c83bc8d58fedee7206e2d7077849f5988d78759981604051610c2d919061371b565b60405180910390a1505b600101610b51565b50610c48611051565b50505050565b60006060610c5a611428565b905060005b8151811015610d61576000828281518110610c7657fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b039081169361010090920416916321f8a72191610ccc9186910161371b565b60206040518083038186803b158015610ce457600080fd5b505afa158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d1c9190810190612feb565b6001600160a01b0316141580610d4757506000818152600460205260409020546001600160a01b0316155b15610d585760009350505050610d68565b50600101610c5f565b5060019150505b90565b600c6020526000908152604090205481565b60145481565b6000610d8e33611b95565b905080610dad5760405162461bcd60e51b8152600401610b4590613857565b600554604051635246f2b960e01b81526001600160a01b0390911690635246f2b990610ddf9086908690600401613765565b600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b031681565b60035460ff1681565b7021b7b63630ba32b930b626b0b730b3b2b960791b81565b610e4e6127fe565b60008111610e6e5760405162461bcd60e51b8152600401610b4590613827565b60118190556040517f3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f906107d090839061371b565b610eab6127fe565b828114610eca5760405162461bcd60e51b8152600401610b45906137c7565b60005b83811015610fb057610ee4858583818110610b6857fe5b15610fa857610f0f858583818110610ef857fe5b90506020020135600a61292890919063ffffffff16565b610f35838383818110610f1e57fe5b90506020020135600861292890919063ffffffff16565b600c6000848484818110610f4557fe5b905060200201358152602001908152602001600020600090557f788aff97f65e6ddeee9246c47d08b819813066c87876a912c79baddffb138f0a858583818110610f8b57fe5b90506020020135604051610f9f919061371b565b60405180910390a15b600101610ecd565b5050505050565b600a546000908414610fcb57506000611049565b60005b8481101561104357610fe5868683818110610b6857fe5b610ff3576000915050611049565b858582818110610fff57fe5b90506020020135600c600086868581811061101657fe5b905060200201358152602001908152602001600020541461103b576000915050611049565b600101610fce565b50600190505b949350505050565b606061105b611428565b905060005b81518110156111a357600082828151811061107757fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016110b991906136ad565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016110e5929190613745565b60206040518083038186803b1580156110fd57600080fd5b505afa158015611111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111359190810190612feb565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906111919084908490613729565b60405180910390a15050600101611060565b5050565b6000805b82518110156111e6576111d08382815181106111c357fe5b6020026020010151611b95565b6111de5760009150506111ec565b6001016111ab565b50600190505b919050565b60006111fc33611b95565b90508061121b5760405162461bcd60e51b8152600401610b4590613857565b600554604051632462063960e01b81526001600160a01b0390911690632462063990610ddf9086908690600401613765565b6001546001600160a01b031633146112775760405162461bcd60e51b8152600401610b45906137d7565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926112ba926001600160a01b03918216929116906136c6565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60008060006112f733611b95565b9050806113165760405162461bcd60e51b8152600401610b4590613857565b6000806000808761132f5761132a8a6106e8565b611339565b611339898b611afa565b93509350935093506000808961135657611351611d41565b61135f565b61135f8b612515565b9150915080156113815760405162461bcd60e51b8152600401610b4590613867565b60006113ab670de0b6b3a764000061139f428863ffffffff6129fc16565b9063ffffffff612a2416565b905060006113cf6113c2858463ffffffff61287616565b889063ffffffff61282a16565b90506113e1818963ffffffff6129fc16565b9a508499508b6113f9576113f481612a5e565b611403565b6114038d82612abc565b505050505050505050935093915050565b6000908152600c6020526040902054151590565b6040805160028082526060808301845292839291906020830190803883390190505090506524b9b9bab2b960d11b8160008151811061146357fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061148d57fe5b6020908102919091010152600d54606090801561151657806040519080825280602002602001820160405280156114ce578160200160208202803883390190505b50915060005b8181101561151457600d8054829081106114ea57fe5b906000526020600020015483828151811061150157fe5b60209081029190910101526001016114d4565b505b600a80546040805160208084028201810190925282815260609361156f93879383018282801561156557602002820191906000526020600020905b815481526020019060010190808311611551575b5050505050612aee565b80519091501561158a576115838185612aee565b945061158e565b8394505b5050505090565b61159d6127fe565b60148190556040517fe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9906107d090839061371b565b60006115dd33611b95565b9050806115fc5760405162461bcd60e51b8152600401610b4590613857565b600554604051637a981bdb60e11b81526001600160a01b039091169063f53037b69061162c90859060040161371b565b600060405180830381600087803b15801561164657600080fd5b505af115801561165a573d6000803e3d6000fd5b505050505050565b60125481565b6000546001600160a01b031681565b60025481565b600083821461169e5760405162461bcd60e51b8152600401610b45906137c7565b600d5484146116af57506000611049565b60005b82811015611043576005546001600160a01b031663a0356f6e8585848181106116d757fe5b905060200201356040518263ffffffff1660e01b81526004016116fa919061371b565b60206040518083038186803b15801561171257600080fd5b505afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174a919081019061319b565b611758576000915050611049565b6001016116b2565b6117686127fe565b600081116117885760405162461bcd60e51b8152600401610b4590613827565b60108190556040517fcf53b24098da84a81615c6450c76443db743815230079981717af7ff9d647fd4906107d090839061371b565b6117c56127fe565b8281146117e45760405162461bcd60e51b8152600401610b45906137c7565b60005b83811015610c3f5760008585838181106117fd57fe5b90506020020135905061181a81600d6128a090919063ffffffff16565b6119035761182f600d8263ffffffff6128f016565b80600f600086868681811061184057fe5b905060200201358152602001908152602001600020819055507fa71e21d8a72d99830e0d382f042d37e6a20c8a33ec3185affcaf6586e9a0187a81604051611888919061371b565b60405180910390a16005546001600160a01b031663ed0391548585858181106118ad57fe5b905060200201356040518263ffffffff1660e01b81526004016118d0919061371b565b600060405180830381600087803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b505050505b506001016117e7565b600d805460408051602080840282018101909252828152600093849360609383018282801561195a57602002820191906000526020600020905b815481526020019060010190808311611946575b50505050509050600081511115610b195760005b8151811015610b1757600061199583838151811061198857fe5b6020026020010151612baa565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156119cd57600080fd5b505afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a05919081019061319b565b9050600080611a12612856565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401611a3d919061371b565b604080518083038186803b158015611a5457600080fd5b505afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a8c91908101906131e9565b60055460405163719130ff60e11b8152929450909250600091611acb9185916001600160a01b039091169063e32261fe90610a8f90899060040161371b565b9050611add888263ffffffff61282a16565b97508115611aea57600196505b50506001909201915061196e9050565b60055460405163af07aa9d60e01b81526000918291829182916001600160a01b039091169063af07aa9d90611b359089908990600401613765565b60806040518083038186803b158015611b4d57600080fd5b505afa158015611b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b859190810190613255565b9299919850965090945092505050565b6000611ba860068363ffffffff612bb516565b92915050565b600080611bba33611b95565b905080611bd95760405162461bcd60e51b8152600401610b4590613857565b600560009054906101000a90046001600160a01b03166001600160a01b0316638c5825036040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c61919081019061319b565b91505090565b6000806000611c74612856565b6001600160a01b031663654a60ac8587631cd554d160e21b6040518463ffffffff1660e01b8152600401611caa93929190613780565b60206040518083038186803b158015611cc257600080fd5b505afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cfa919081019061319b565b9050600080611d07612321565b6011549193509150611d1f838563ffffffff61282a16565b11159450925050505b9250929050565b600f6020526000908152604090205481565b6000806000611d4e612c22565b6001600160a01b0316637b1001b7631cd554d160e21b60016040518363ffffffff1660e01b8152600401611d83929190613737565b60206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dd3919081019061319b565b9050600080611de06108a3565b90925090506000611df7848463ffffffff61282a16565b90506000611e266a1a1a7062e5185d7e380000611e1a868563ffffffff612c3616565b9063ffffffff612c3616565b90506000611e3f6010548361287690919063ffffffff16565b9050611e566013548261282a90919063ffffffff16565b989397509295505050505050565b611e6c6127fe565b60128190556040517f465c1047eec44dfecb260ee7e6187823a7cbdd80f19082eb56c35967b16d8e26906107d090839061371b565b611ea96127fe565b60005b81811015611f7c57611ee6838383818110611ec357fe5b9050602002016020611ed89190810190612fcd565b60069063ffffffff612bb516565b611f7457611f1c838383818110611ef957fe5b9050602002016020611f0e9190810190612fcd565b60069063ffffffff612c6016565b7f7db05e63d635a68c62fd7fd8f3107ae8ab584a383e102d1bd8a40f4c977e465f838383818110611f4957fe5b9050602002016020611f5e9190810190612fcd565b604051611f6b91906136b8565b60405180910390a15b600101611eac565b505050565b60135481565b6005546001600160a01b031681565b60105481565b611fa46127fe565b60005b81811015611f7c57611fd5838383818110611fbe57fe5b90506020020135600d6128a090919063ffffffff16565b1561214d57612000838383818110611fe957fe5b90506020020135600d61292890919063ffffffff16565b600061201d84848481811061201157fe5b90506020020135612baa565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561205557600080fd5b505afa158015612069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061208d919081019061319b565b6000818152600f6020526040808220919091556005549051636431e0bd60e01b81529192506001600160a01b031690636431e0bd906120d090849060040161371b565b600060405180830381600087803b1580156120ea57600080fd5b505af11580156120fe573d6000803e3d6000fd5b505050507f23caa21d7c1015aa7051e1ae4a09f99de36dab4545dfec5f4dde3a54173a123b84848481811061212f57fe5b90506020020135604051612143919061371b565b60405180910390a1505b600101611fa7565b60115481565b60055460405163d2f0047560e01b81526000916001600160a01b03169063d2f004759061218c90859060040161371b565b60206040518083038186803b1580156121a457600080fd5b505afa1580156121b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ba8919081019061319b565b60006121e733611b95565b9050806122065760405162461bcd60e51b8152600401610b4590613857565b60055460405163e31f27c160e01b81526001600160a01b039091169063e31f27c190610ddf9086908690600401613765565b60055460405163719130ff60e11b81526000916001600160a01b03169063e32261fe9061218c90859060040161371b565b600061227433611b95565b9050806122935760405162461bcd60e51b8152600401610b4590613857565b60055460405163e50a31b360e01b81526001600160a01b039091169063e50a31b390610ddf9086908690600401613765565b60006122d033611b95565b9050806122ef5760405162461bcd60e51b8152600401610b4590613857565b6005546040516375ca5def60e11b81526001600160a01b039091169063eb94bbde90610ddf9086908690600401613765565b6008805460408051602080840282018101909252828152600093849360609383018282801561236f57602002820191906000526020600020905b81548152602001906001019080831161235b575b50505050509050600081511115610b19576060600061238c612856565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004016123b791906136e1565b60006040518083038186803b1580156123cf57600080fd5b505afa1580156123e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261240b91908101906130f0565b909250905060005b825181101561250d57600061248984838151811061242d57fe5b6020026020010151600560009054906101000a90046001600160a01b03166001600160a01b031663d2f0047588868151811061246557fe5b60200260200101516040518263ffffffff1660e01b8152600401610a8f919061371b565b905060006124d485848151811061249c57fe5b6020026020010151600560009054906101000a90046001600160a01b03166001600160a01b031663e32261fe89878151811061246557fe5b90506124f6816124ea8a8563ffffffff61282a16565b9063ffffffff61282a16565b9750831561250357600196505b5050600101612413565b505050509091565b600080612520612856565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b815260040161254b919061371b565b60206040518083038186803b15801561256357600080fd5b505afa158015612577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061259b919081019061315f565b6000848152600f6020526040812054919250906125b790612baa565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125ef57600080fd5b505afa158015612603573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612627919081019061319b565b60055460405163719130ff60e11b81529192506000916001600160a01b039091169063e32261fe9061265d90889060040161371b565b60206040518083038186803b15801561267557600080fd5b505afa158015612689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126ad919081019061319b565b9050808211156126c35750600092506127409050565b60006126d5828463ffffffff6129fc16565b905060006127086a1a1a7062e5185d7e380000611e1a6126fb878763ffffffff61282a16565b859063ffffffff612c3616565b905060006127216012548361287690919063ffffffff16565b90506127386014548261282a90919063ffffffff16565b965050505050505b915091565b61274d6127fe565b60005b81811015611f7c57612767838383818110611ec357fe5b156127f65761279e83838381811061277b57fe5b90506020020160206127909190810190612fcd565b60069063ffffffff612cb216565b7fd89d2ee68ab04dca0193f48a4aff55e20fa5ec0429a8a8c1c51b8dad6178a5938383838181106127cb57fe5b90506020020160206127e09190810190612fcd565b6040516127ed91906136b8565b60405180910390a15b600101612750565b6000546001600160a01b031633146128285760405162461bcd60e51b8152600401610b4590613837565b565b60008282018381101561284f5760405162461bcd60e51b8152600401610b45906137e7565b9392505050565b60006128716c45786368616e6765526174657360981b612dc8565b905090565b6000670de0b6b3a7640000612891848463ffffffff612a2416565b8161289857fe5b049392505050565b81546000906128b157506000611ba8565b600082815260018401602052604090205480151580611049575082846000016000815481106128dc57fe5b906000526020600020015414949350505050565b6128fa82826128a0565b6111a35781546000828152600180850160209081526040832084905590830185558482529020018190555050565b61293282826128a0565b61294e5760405162461bcd60e51b8152600401610b45906137f7565b60008181526001830160205260409020548254600019018082146129bc57600084600001828154811061297d57fe5b906000526020600020015490508085600001848154811061299a57fe5b6000918252602080832090910192909255918252600186019052604090208290555b83548490806129c757fe5b600190038181906000526020600020016000905590558360010160008481526020019081526020016000206000905550505050565b600082821115612a1e5760405162461bcd60e51b8152600401610b4590613807565b50900390565b600082612a3357506000611ba8565b82820282848281612a4057fe5b041461284f5760405162461bcd60e51b8152600401610b4590613847565b600554604051637a981bdb60e11b81526001600160a01b039091169063f53037b690612a8e90849060040161371b565b600060405180830381600087803b158015612aa857600080fd5b505af1158015610fb0573d6000803e3d6000fd5b600554604051632462063960e01b81526001600160a01b039091169063246206399061162c9085908590600401613765565b60608151835101604051908082528060200260200182016040528015612b1e578160200160208202803883390190505b50905060005b8351811015612b6057838181518110612b3957fe5b6020026020010151828281518110612b4d57fe5b6020908102919091010152600101612b24565b5060005b8251811015612ba357828181518110612b7957fe5b6020026020010151828286510181518110612b9057fe5b6020908102919091010152600101612b64565b5092915050565b6000611ba882612dc8565b8154600090612bc657506000611ba8565b6001600160a01b0382166000908152600184016020526040902054801515806110495750826001600160a01b031684600001600081548110612c0457fe5b6000918252602090912001546001600160a01b031614949350505050565b60006128716524b9b9bab2b960d11b612dc8565b600061284f82612c5485670de0b6b3a764000063ffffffff612a2416565b9063ffffffff612e2516565b612c6a8282612bb5565b6111a35781546001600160a01b038216600081815260018086016020908152604083208590559084018655858252902090910180546001600160a01b03191690911790555050565b612cbc8282612bb5565b612cd85760405162461bcd60e51b8152600401610b45906137f7565b6001600160a01b0381166000908152600183016020526040902054825460001901808214612d77576000846000018281548110612d1157fe5b60009182526020909120015485546001600160a01b0390911691508190869085908110612d3a57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018601909152604090208290555b8354849080612d8257fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0394909416815260019490940190925250506040812055565b60008181526004602090815260408083205490516001600160a01b039091169182151591612df89186910161368d565b60405160208183030381529060405290612ba35760405162461bcd60e51b8152600401610b4591906137b6565b6000808211612e465760405162461bcd60e51b8152600401610b4590613817565b6000828481612e5157fe5b04949350505050565b8035611ba88161396d565b8051611ba88161396d565b60008083601f840112612e8257600080fd5b50813567ffffffffffffffff811115612e9a57600080fd5b602083019150836020820283011115611d2857600080fd5b600082601f830112612ec357600080fd5b8135612ed6612ed1826138dc565b6138b5565b91508181835260208401935060208101905083856020840282011115612efb57600080fd5b60005b83811015612f275781612f118882612e5a565b8452506020928301929190910190600101612efe565b5050505092915050565b600082601f830112612f4257600080fd5b8151612f50612ed1826138dc565b91508181835260208401935060208101905083856020840282011115612f7557600080fd5b60005b83811015612f275781612f8b8882612fc2565b8452506020928301929190910190600101612f78565b8035611ba881613981565b8051611ba881613981565b8035611ba88161398a565b8051611ba88161398a565b600060208284031215612fdf57600080fd5b60006110498484612e5a565b600060208284031215612ffd57600080fd5b60006110498484612e65565b6000806020838503121561301c57600080fd5b823567ffffffffffffffff81111561303357600080fd5b61303f85828601612e70565b92509250509250929050565b60006020828403121561305d57600080fd5b813567ffffffffffffffff81111561307457600080fd5b61104984828501612eb2565b6000806000806040858703121561309657600080fd5b843567ffffffffffffffff8111156130ad57600080fd5b6130b987828801612e70565b9450945050602085013567ffffffffffffffff8111156130d857600080fd5b6130e487828801612e70565b95989497509550505050565b6000806040838503121561310357600080fd5b825167ffffffffffffffff81111561311a57600080fd5b61312685828601612f31565b925050602061313785828601612fac565b9150509250929050565b60006020828403121561315357600080fd5b60006110498484612fa1565b60006020828403121561317157600080fd5b60006110498484612fac565b60006020828403121561318f57600080fd5b60006110498484612fb7565b6000602082840312156131ad57600080fd5b60006110498484612fc2565b600080604083850312156131cc57600080fd5b60006131d88585612fb7565b925050602061313785828601612fb7565b600080604083850312156131fc57600080fd5b60006131268585612fc2565b60008060006060848603121561321d57600080fd5b60006132298686612fb7565b935050602061323a86828701612fb7565b925050604061324b86828701612fa1565b9150509250925092565b6000806000806080858703121561326b57600080fd5b60006132778787612fc2565b945050602061328887828801612fc2565b935050604061329987828801612fc2565b92505060606132aa87828801612fc2565b91505092959194509250565b60006132c2838361333b565b505060200190565b6132d381613910565b82525050565b60006132e482613903565b6132ee8185613907565b93506132f9836138fd565b8060005b8381101561332757815161331188826132b6565b975061331c836138fd565b9250506001016132fd565b509495945050505050565b6132d38161391b565b6132d381610d68565b6132d361335082610d68565b610d68565b6132d38161392c565b600061336982613903565b6133738185613907565b9350613383818560208601613937565b61338c81613963565b9093019392505050565b60006133a3601b83613907565b7f496e707574206172726179206c656e677468206d69736d617463680000000000815260200192915050565b60006133dc603583613907565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613433601b83613907565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061346c601383613907565b7222b632b6b2b73a103737ba1034b71039b2ba1760691b815260200192915050565b600061349b601e83613907565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006134d4601a83613907565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061350d6011836111ec565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061353a601683613907565b7504d7573742062652067726561746572207468616e20360541b815260200192915050565b600061356c602f83613907565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006135bd602183613907565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613600601983613907565b7f4f6e6c7920636f6c6c61746572616c20636f6e74726163747300000000000000815260200192915050565b60006136396019836111ec565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613672600c83613907565b6b496e76616c6964207261746560a01b815260200192915050565b600061369882613500565b91506136a48284613344565b50602001919050565b60006136988261362c565b60208101611ba882846132ca565b604081016136d482856132ca565b61284f60208301846132ca565b6020808252810161284f81846132d9565b60208101611ba88284613332565b6040810161370e8285613332565b61284f6020830184613332565b60208101611ba8828461333b565b604081016136d4828561333b565b6040810161370e828561333b565b60408101613753828561333b565b8181036020830152611049818461335e565b60408101613773828561333b565b61284f602083018461333b565b6060810161378e828661333b565b61379b602083018561333b565b611049604083018461333b565b60208101611ba88284613355565b6020808252810161284f818461335e565b60208082528101611ba881613396565b60208082528101611ba8816133cf565b60208082528101611ba881613426565b60208082528101611ba88161345f565b60208082528101611ba88161348e565b60208082528101611ba8816134c7565b60208082528101611ba88161352d565b60208082528101611ba88161355f565b60208082528101611ba8816135b0565b60208082528101611ba8816135f3565b60208082528101611ba881613665565b60808101613885828761333b565b613892602083018661333b565b61389f604083018561333b565b6138ac606083018461333b565b95945050505050565b60405181810167ffffffffffffffff811182821017156138d457600080fd5b604052919050565b600067ffffffffffffffff8211156138f357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000611ba882613920565b151590565b6001600160a01b031690565b6000611ba882613910565b60005b8381101561395257818101518382015260200161393a565b83811115610c485750506000910152565b601f01601f191690565b61397681613910565b81146108a057600080fd5b6139768161391b565b61397681610d6856fea365627a7a7231582027cb9b291e8d4d7b3e4351bb46496b268bea060b81fae2021192e156a0c03a556c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x97a20ec5a60ec2e90cc7843b3a2bbbb250177ae5185127b15765b01368d63857",
				"urls": [
					"bzz-raw://bb03552e3ee76578e37557ceb434507845234c53f183bfd198af409d8069f2e8",
					"dweb:/ipfs/QmdXGWk7qRMtoqdbmzdC7ijL8WdfZHtajwrRm9r1TbAcrp"
				]
			},
			"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": "0x97a20ec5a60ec2e90cc7843b3a2bbbb250177ae5185127b15765b01368d63857",
						"urls": [
							"bzz-raw://bb03552e3ee76578e37557ceb434507845234c53f183bfd198af409d8069f2e8",
							"dweb:/ipfs/QmdXGWk7qRMtoqdbmzdC7ijL8WdfZHtajwrRm9r1TbAcrp"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralEth": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b506040516200476938038062004769833981016040819052620000419162000150565b8585858585858380876001600160a01b0381166200007c5760405162461bcd60e51b8152600401620000739062000261565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c99184906200023b565b60405180910390a150600280546001600160a01b039283166001600160a01b0319918216179091556006805498909216971696909617909555600492909255600a55600b5550506001600e5550620002e295505050505050565b80516200013081620002b2565b92915050565b80516200013081620002cc565b80516200013081620002d7565b60008060008060008060c087890312156200016a57600080fd5b600062000178898962000123565b96505060206200018b89828a0162000143565b95505060406200019e89828a0162000123565b9450506060620001b189828a0162000136565b9350506080620001c489828a0162000136565b92505060a0620001d789828a0162000136565b9150509295509295509295565b620001ef81620002a5565b82525050565b620001ef816200027c565b60006200020f60198362000273565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200024b8285620001e4565b6200025a6020830184620001f5565b9392505050565b60208082528101620001308162000200565b90815260200190565b6000620001308262000299565b90565b600062000130826200027c565b6001600160a01b031690565b600062000130826200028c565b620002bd816200027c565b8114620002c957600080fd5b50565b620002bd8162000289565b620002bd816200028c565b61447780620002f26000396000f3fe60806040526004361061020f5760003560e01c806372e18b6a11610118578063925ead11116100a0578063ba2de9bc1161006f578063ba2de9bc146105b0578063d2b8035a146105c5578063de81eda9146105e5578063e1ec3c6814610605578063f3f437031461063a5761020f565b8063925ead1114610546578063a76cdfa51461055b578063aa2d8ce31461057b578063b562a1ab1461059b5761020f565b8063846321a4116100e7578063846321a4146104af578063899ffef4146104cf5780638cd2e0c7146104f15780638da5cb5b1461051157806390abb4d9146105265761020f565b806372e18b6a14610445578063741853601461046557806379ba50971461047a5780637e1323551461048f5761020f565b8063379607f51161019b578063441a3e701161016a578063441a3e70146103bb57806347e7ef24146103db578063481c6a75146103ee57806353a47bb7146104035780635eb2ad01146104255761020f565b8063379607f51461034657806338245377146103665780634065b81b1461038657806341c738011461039b5761020f565b80631627540c116101e25780631627540c146102af57806323d60e2e146102cf5780632af64bd3146102ef57806330edd96114610311578063361e2086146103315761020f565b806304f3bcec1461021457806306c19e3f1461023f5780630710285c1461025f5780630aebeb4e14610281575b600080fd5b34801561022057600080fd5b5061022961065a565b6040516102369190614009565b60405180910390f35b61025261024d3660046136c0565b610669565b6040516102369190613f97565b34801561026b57600080fd5b5061027f61027a36600461355b565b61067f565b005b34801561028d57600080fd5b506102a161029c366004613684565b6106c5565b604051610236929190613fb3565b3480156102bb57600080fd5b5061027f6102ca3660046134e5565b61070e565b3480156102db57600080fd5b5061027f6102ea3660046135a8565b61076c565b3480156102fb57600080fd5b5061030461083b565b6040516102369190613f89565b34801561031d57600080fd5b5061025261032c366004613684565b610953565b34801561033d57600080fd5b50610252610971565b34801561035257600080fd5b5061027f610361366004613684565b610977565b34801561037257600080fd5b50610252610381366004613684565b610a4c565b34801561039257600080fd5b50610304610a5e565b3480156103a757600080fd5b506102526103b6366004613684565b610a67565b3480156103c757600080fd5b506102a16103d63660046136c0565b610b7f565b6102a16103e9366004613521565b610bca565b3480156103fa57600080fd5b50610229610be3565b34801561040f57600080fd5b50610418610bf2565b6040516102369190613f26565b34801561043157600080fd5b5061027f610440366004613521565b610c01565b34801561045157600080fd5b506103046104603660046135a8565b610c37565b34801561047157600080fd5b5061027f610cfb565b34801561048657600080fd5b5061027f610e4d565b34801561049b57600080fd5b506102526104aa3660046136c0565b610ee9565b3480156104bb57600080fd5b5061027f6104ca366004613684565b610f2e565b3480156104db57600080fd5b506104e4610f6b565b6040516102369190613f78565b3480156104fd57600080fd5b506102a161050c36600461355b565b6110fb565b34801561051d57600080fd5b50610418611116565b34801561053257600080fd5b5061027f610541366004613618565b611125565b34801561055257600080fd5b50610252611171565b34801561056757600080fd5b5061027f610576366004613684565b611177565b34801561058757600080fd5b50610252610596366004613684565b6111b4565b3480156105a757600080fd5b50610252611278565b3480156105bc57600080fd5b5061025261127e565b3480156105d157600080fd5b506102a16105e03660046136c0565b611284565b3480156105f157600080fd5b50610418610600366004613684565b611291565b34801561061157600080fd5b50610625610620366004613684565b6112ac565b604051610236999897969594939291906141ee565b34801561064657600080fd5b506102526106553660046134e5565b611306565b6002546001600160a01b031681565b60006106783484846000611318565b9392505050565b600061068c8484846119c0565b336000908152600f60205260409020549091506106af908263ffffffff611d2716565b336000908152600f602052604090205550505050565b6000806106d23384611d4c565b336000908152600f602052604090205491935091506106f7908263ffffffff611d2716565b336000908152600f60205260409020559092909150565b610716611e42565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610761908390613f26565b60405180910390a150565b610774611e42565b82811461079c5760405162461bcd60e51b815260040161079390614048565b60405180910390fd5b60005b8381101561082c5760008585838181106107b557fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061080957fe5b60209081029290920135835250810191909152604001600020555060010161079f565b50610835610cfb565b50505050565b60006060610847610f6b565b905060005b815181101561094957600082828151811061086357fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906108b4908590600401613f97565b60206040518083038186803b1580156108cc57600080fd5b505afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109049190810190613503565b6001600160a01b031614158061092f57506000818152600360205260409020546001600160a01b0316155b156109405760009350505050610950565b5060010161084c565b5060019150505b90565b6007818154811061096057fe5b600091825260209091200154905081565b600c5481565b600e805460010190819055336000908152600f60205260409020546109a2908363ffffffff611e6e16565b336000818152600f602052604080822093909355915184906109c390613f1b565b60006040518083038185875af1925050503d8060008114610a00576040519150601f19603f3d011682016040523d82523d6000602084013e610a05565b606091505b5050905080610a265760405162461bcd60e51b815260040161079390614058565b50600e548114610a485760405162461bcd60e51b815260040161079390614168565b5050565b60086020526000908152604090205481565b600d5460ff1681565b6000610a71613407565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152610afc611e96565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b8152600401610b2f939291906141a5565b60206040518083038186803b158015610b4757600080fd5b505afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067891908101906136a2565b600080610b8c8484611eb7565b336000908152600f60205260409020549193509150610bb1908463ffffffff611d2716565b336000908152600f602052604090205590939092509050565b600080610bd8848434611f5c565b909590945092505050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610c09611e42565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610c4b57506000610cf3565b60005b84811015610ced576000868683818110610c6457fe5b9050602002013590508060078381548110610c7b57fe5b906000526020600020015414610c9657600092505050610cf3565b60078281548110610ca357fe5b906000526020600020015460086000878786818110610cbe57fe5b9050602002013581526020019081526020016000205414610ce457600092505050610cf3565b50600101610c4e565b50600190505b949350505050565b6060610d05610f6b565b905060005b8151811015610a48576000828281518110610d2157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d639190613f10565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d8f929190613fc1565b60206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ddf9190810190613503565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610e3b9084908490613fa5565b60405180910390a15050600101610d0a565b6001546001600160a01b03163314610e775760405162461bcd60e51b815260040161079390614038565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610eba926001600160a01b0391821692911690613f4f565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610ef3611e96565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610b2f94939291906142da565b92915050565b610f36611e42565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d90610761908390613f97565b606080610f7661202d565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610fb557fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610fdf57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061100557fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061102e57fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b8160048151811061105457fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b8160058151811061107f57fe5b6020026020010181815250506060611097838361207e565b90506110f38160078054806020026020016040519081016040528092919081815260200182805480156110e957602002820191906000526020600020905b8154815260200190600101908083116110d5575b505050505061207e565b935050505090565b60008061110a8533868661213a565b90969095509350505050565b6000546001600160a01b031681565b61112d611e42565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916107619160ff90911690613f89565b600a5481565b61117f611e42565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c90610761908390613f97565b60006111be613407565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152611249611e96565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b8152600401610b2f929190614188565b60045481565b600b5481565b600080610bd884846122e9565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b600f6020526000908152604090205481565b600061132261272b565b61132a6127cd565b600d5460ff1661134c5760405162461bcd60e51b815260040161079390614118565b6000838152600860205260409020546113775760405162461bcd60e51b815260040161079390614068565b61137f612821565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016113aa9190613f97565b60206040518083038186803b1580156113c257600080fd5b505afa1580156113d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113fa9190810190613636565b156114175760405162461bcd60e51b8152600401610793906140f8565b600b548510156114395760405162461bcd60e51b815260040161079390614148565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb40906114709089908990600401613fb3565b604080518083038186803b15801561148757600080fd5b505afa15801561149b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114bf9190810190613654565b915091508180156114ce575080155b6114ea5760405162461bcd60e51b8152600401610793906140d8565b6114f48786610ee9565b8611156115135760405162461bcd60e51b815260040161079390614138565b600061152a600c548861283c90919063ffffffff16565b9050600061153e888363ffffffff611e6e16565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115c891908101906136a2565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff191692151592909217909155905160068301555160078201559051600882015590955061169290612851565b61169c8288612943565b851561188f576116aa612b2f565b6001600160a01b031663867904b4336116c1612821565b6001600160a01b031663654a60ac8b86631cd554d160e21b6040518463ffffffff1660e01b81526004016116f793929190613fe1565b60206040518083038186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174791908101906136a2565b6040518363ffffffff1660e01b8152600401611764929190613f34565b600060405180830381600087803b15801561177e57600080fd5b505af1158015611792573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c191506117c8908a908c90600401613fb3565b600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b031615905061188a576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906118579033908c90600401613f34565b600060405180830381600087803b15801561187157600080fd5b505af1158015611885573d6000803e3d6000fd5b505050505b61196b565b6000878152600860205260409020546118a790612b46565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016118d4929190613f34565b600060405180830381600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde9150611938908a908c90600401613fb3565b600060405180830381600087803b15801561195257600080fd5b505af1158015611966573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b876040516119ac9594939291906142f5565b60405180910390a250505050949350505050565b60006119ca61272b565b6119d26127cd565b600082116119f25760405162461bcd60e51b815260040161079390614178565b60006119fe8486612b51565b9050611a0f33826003015485612ba5565b600a54611a1a611e96565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b8152600401611a499291906141d0565b60206040518083038186803b158015611a6157600080fd5b505afa158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a9991908101906136a2565b10611ab65760405162461bcd60e51b815260040161079390614158565b6000611ac0611e96565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b8152600401611af3939291906141df565b60206040518083038186803b158015611b0b57600080fd5b505afa158015611b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b4391908101906136a2565b90506000848210611b545784611b56565b815b90506000611b7584600601548560040154611d2790919063ffffffff16565b9050808210611b9657611b89883386612c5d565b9550610678945050505050565b611ba533856003015484612ba5565b611baf8483612cce565b611bb7611e96565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b8152600401611bec93929190613fe1565b60206040518083038186803b158015611c0457600080fd5b505afa158015611c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c3c91908101906136a2565b6002850154909550611c54908663ffffffff611e6e16565b60028501556003840154600090815260086020526040902054611c7690612b46565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b8152600401611ca3929190613f34565b600060405180830381600087803b158015611cbd57600080fd5b505af1158015611cd1573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c588338589604051611d149493929190614274565b60405180910390a2505050509392505050565b6000828201838110156106785760405162461bcd60e51b815260040161079390614078565b600080611d5761272b565b611d5f6127cd565b6000611d6b8486612b51565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611de790612ebd565b611df2858683612f0a565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f90611e32908790613f97565b60405180910390a2509250929050565b6000546001600160a01b03163314611e6c5760405162461bcd60e51b8152600401610793906140b8565b565b600082821115611e905760405162461bcd60e51b815260040161079390614098565b50900390565b6000611eb26d10dbdb1b185d195c985b155d1a5b60921b613170565b905090565b600080611ec261272b565b611eca6127cd565b6000611ed68533612b51565b6002810154909150611eee908563ffffffff611e6e16565b6002820155611efc816131cd565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611f3d93929190613fe1565b60405180910390a28060040154816002015492509250505b9250929050565b600080611f6761272b565b611f6f6127cd565b60008311611f8f5760405162461bcd60e51b815260040161079390614128565b60008481526005602052604090206007810154611fab90613206565b611fb481612851565b6002810154611fc9908563ffffffff611d2716565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c9161200e918991899190613fe1565b60405180910390a2806004015481600201549250925050935093915050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061206f57fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156120ae578160200160208202803883390190505b50905060005b83518110156120f0578381815181106120c957fe5b60200260200101518282815181106120dd57fe5b60209081029190910101526001016120b4565b5060005b82518110156121335782818151811061210957fe5b602002602001015182828651018151811061212057fe5b60209081029190910101526001016120f4565b5092915050565b60008061214561272b565b61214d6127cd565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e082015260088201546101008201526121d790612ebd565b6121e686826003015486612ba5565b6121ef81612851565b6121f98185612cce565b600381015460009081526008602052604090205461221690612b46565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401612243929190613f6a565b600060405180830381600087803b15801561225d57600080fd5b505af1158015612271573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f878785600401546040516122c993929190613fe1565b60405180910390a380600401548160020154925092505094509492505050565b6000806122f461272b565b6122fc6127cd565b60006123088533612b51565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061238490612ebd565b6004810154612399908563ffffffff611d2716565b60048201556123a7816131cd565b60006123be600c548661283c90919063ffffffff16565b905060006123d2868363ffffffff611e6e16565b600584015490915060ff16156125df57600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c191612417918a90600401613fb3565b600060405180830381600087803b15801561243157600080fd5b505af1158015612445573d6000803e3d6000fd5b50505050612451612b2f565b6001600160a01b031663867904b433612468612821565b6001600160a01b031663654a60ac876003015486631cd554d160e21b6040518463ffffffff1660e01b81526004016124a293929190613fe1565b60206040518083038186803b1580156124ba57600080fd5b505afa1580156124ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124f291908101906136a2565b6040518363ffffffff1660e01b815260040161250f929190613f34565b600060405180830381600087803b15801561252957600080fd5b505af115801561253d573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b0316156125da5760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906125a79033908a90600401613f34565b600060405180830381600087803b1580156125c157600080fd5b505af11580156125d5573d6000803e3d6000fd5b505050505b6126c3565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde91612614918a90600401613fb3565b600060405180830381600087803b15801561262e57600080fd5b505af1158015612642573d6000803e3d6000fd5b50505060038401546000908152600860205260409020546126639150612b46565b6001600160a01b031663867904b433836040518363ffffffff1660e01b8152600401612690929190613f34565b600060405180830381600087803b1580156126aa57600080fd5b505af11580156126be573d6000803e3d6000fd5b505050505b6126d1828460030154612943565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf3583106549061270b908a908a90613fb3565b60405180910390a282600401548360020154945094505050509250929050565b612733612821565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b81526004016127609190613f97565b60206040518083038186803b15801561277857600080fd5b505afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127b09190810190613636565b15611e6c5760405162461bcd60e51b8152600401610793906140f8565b6127d5613223565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561280d57600080fd5b505afa158015610835573d6000803e3d6000fd5b6000611eb26c45786368616e6765526174657360981b613170565b60006106788383670de0b6b3a764000061323d565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b03909116936380054666936128999360ff909116906004016142b2565b6040805180830381600087803b1580156128b257600080fd5b505af11580156128c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128ea91908101906136df565b9150915060008360070154600014612916576004840154612911908463ffffffff61327916565b612919565b60005b6006850154909150612931908263ffffffff611d2716565b60068501555060079092019190915550565b8115610a4857631cd554d160e21b81146129e85761295f612821565b6001600160a01b031663654a60ac8284631cd554d160e21b6040518463ffffffff1660e01b815260040161299593929190613fe1565b60206040518083038186803b1580156129ad57600080fd5b505afa1580156129c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129e591908101906136a2565b91505b6129f0612b2f565b6001600160a01b031663867904b4612a066132a3565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015612a3e57600080fd5b505afa158015612a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a769190810190613503565b846040518363ffffffff1660e01b8152600401612a94929190613f6a565b600060405180830381600087803b158015612aae57600080fd5b505af1158015612ac2573d6000803e3d6000fd5b50505050612ace6132a3565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b8152600401612af99190613f97565b600060405180830381600087803b158015612b1357600080fd5b505af1158015612b27573d6000803e3d6000fd5b505050505050565b6000611eb26814de5b9d1a1cd554d160ba1b613170565b6000610f2882613170565b60008281526005602052604090206007810154612b6d90613206565b60018101546001600160a01b03838116911614612b9c5760405162461bcd60e51b815260040161079390614108565b610f2881612851565b6000828152600860205260409020548190612bbf90612b46565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401612bea9190613f26565b60206040518083038186803b158015612c0257600080fd5b505afa158015612c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c3a91908101906136a2565b1015612c585760405162461bcd60e51b8152600401610793906140a8565b505050565b600080612c6b858585612f0a565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612cbe93929190613fe1565b60405180910390a3935093915050565b60008111612cee5760405162461bcd60e51b815260040161079390614178565b600682015415612d5057600082600601548211612d0b5781612d11565b82600601545b6006840154909150612d29908263ffffffff611e6e16565b6006840155612d3e828263ffffffff611e6e16565b9150612d4e818460030154612943565b505b8015610a48576004820154612d6b908263ffffffff611e6e16565b6004830155600582015460ff1615612e88576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612db2918590600401613fb3565b600060405180830381600087803b158015612dcc57600080fd5b505af1158015612de0573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612e8357600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612e50929116908590600401613f34565b600060405180830381600087803b158015612e6a57600080fd5b505af1158015612e7e573d6000803e3d6000fd5b505050505b610a48565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b391612af9918590600401613fb3565b612eca8160e00151613206565b42612ee9612ed7306132b8565b6101008401519063ffffffff611d2716565b1115612f075760405162461bcd60e51b8152600401610793906140e8565b50565b6000806000612f2a84600601548560040154611d2790919063ffffffff16565b90508360040154925083600201549150612f4985856003015483612ba5565b6003840154600090815260086020526040902054612f6690612b46565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b8152600401612f93929190613f6a565b600060405180830381600087803b158015612fad57600080fd5b505af1158015612fc1573d6000803e3d6000fd5b50505050600584015460ff16156130df576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b99361300c9390929101613fb3565b600060405180830381600087803b15801561302657600080fd5b505af115801561303a573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b0316156130da5760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a3926130a7928b929101613f6a565b600060405180830381600087803b1580156130c157600080fd5b505af11580156130d5573d6000803e3d6000fd5b505050505b61314c565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b3936131199390929101613fb3565b600060405180830381600087803b15801561313357600080fd5b505af1158015613147573d6000803e3d6000fd5b505050505b61315e84600601548560030154612943565b6131678461338b565b50935093915050565b60008181526003602090815260408083205490516001600160a01b0390911691821515916131a091869101613ef0565b604051602081830303815290604052906121335760405162461bcd60e51b81526004016107939190614017565b60048101546131db57612f07565b600a5481546131e9906111b4565b11612f075760405162461bcd60e51b815260040161079390614028565b80612f075760405162461bcd60e51b815260040161079390614088565b6000611eb26b53797374656d53746174757360a01b613170565b600080600a8304613254868663ffffffff6133b016565b8161325b57fe5b0490506005600a82061061326d57600a015b600a9004949350505050565b6000670de0b6b3a7640000613294848463ffffffff6133b016565b8161329b57fe5b049392505050565b6000611eb266119959541bdbdb60ca1b613170565b60006132c26133ea565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b85604051602001613308929190613eca565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161333b929190613fb3565b60206040518083038186803b15801561335357600080fd5b505afa158015613367573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f2891908101906136a2565b6000600482018190556002820181905560068201819055600782015542600890910155565b6000826133bf57506000610f28565b828202828482816133cc57fe5b04146106785760405162461bcd60e51b8152600401610793906140c8565b6000611eb26e466c657869626c6553746f7261676560881b613170565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610f288161440e565b8051610f288161440e565b60008083601f84011261348957600080fd5b50813567ffffffffffffffff8111156134a157600080fd5b602083019150836020820283011115611f5557600080fd5b8035610f2881614422565b8051610f2881614422565b8035610f288161442b565b8051610f288161442b565b6000602082840312156134f757600080fd5b6000610cf38484613461565b60006020828403121561351557600080fd5b6000610cf3848461346c565b6000806040838503121561353457600080fd5b60006135408585613461565b9250506020613551858286016134cf565b9150509250929050565b60008060006060848603121561357057600080fd5b600061357c8686613461565b935050602061358d868287016134cf565b925050604061359e868287016134cf565b9150509250925092565b600080600080604085870312156135be57600080fd5b843567ffffffffffffffff8111156135d557600080fd5b6135e187828801613477565b9450945050602085013567ffffffffffffffff81111561360057600080fd5b61360c87828801613477565b95989497509550505050565b60006020828403121561362a57600080fd5b6000610cf384846134b9565b60006020828403121561364857600080fd5b6000610cf384846134c4565b6000806040838503121561366757600080fd5b600061367385856134c4565b9250506020613551858286016134c4565b60006020828403121561369657600080fd5b6000610cf384846134cf565b6000602082840312156136b457600080fd5b6000610cf384846134da565b600080604083850312156136d357600080fd5b600061354085856134cf565b600080604083850312156136f257600080fd5b60006136fe85856134da565b9250506020613551858286016134da565b600061371b83836137ae565b505060200190565b61372c8161437b565b82525050565b61372c8161436b565b61372c6137478261436b565b6143ed565b600061375782614347565b613761818561434b565b935061376c83614341565b8060005b8381101561379a578151613784888261370f565b975061378f83614341565b925050600101613770565b509495945050505050565b61372c81614376565b61372c81610950565b61372c6137c382610950565b610950565b61372c81614382565b60006137dc82614347565b6137e6818561434b565b93506137f681856020860161438d565b6137ff816143fe565b9093019392505050565b6000613816600e8361434b565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b600061384060358361434b565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061389760158361434b565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b60006138c8600f8361434b565b6e151c985b9cd9995c8819985a5b1959608a1b815260200192915050565b60006138f360148361434b565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613923601b8361434b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061395c600e8361434b565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613986601e8361434b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006139bf601183614354565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006139ec60128361434b565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613a1a602f8361434b565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613a6b60218361434b565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613aae601a8361434b565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000613ae760138361434b565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000613b16601983614354565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613b4f600c8361434b565b6b496e76616c6964207261746560a01b815260200192915050565b6000613b7760108361434b565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b6000610f28600083614354565b6000613bb0600d8361434b565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000613bd960178361434b565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000613c1260178361434b565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b6000613c4b60158361434b565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b6000613c7c60168361434b565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b6000613cae601f8361434b565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b6000613ce760178361434b565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b8051610120830190613d2584826137ae565b506020820151613d386020850182613732565b506040820151613d4b60408501826137ae565b506060820151613d5e60608501826137ae565b506080820151613d7160808501826137ae565b5060a0820151613d8460a08501826137a5565b5060c0820151613d9760c08501826137ae565b5060e0820151613daa60e08501826137ae565b506101008201516108356101008501826137ae565b8054610120830190613dd0816143df565b613dda85826137ae565b50506001820154613dea816143b9565b613df76020860182613732565b50506002820154613e07816143df565b613e1460408601826137ae565b50506003820154613e24816143df565b613e3160608601826137ae565b50506004820154613e41816143df565b613e4e60808601826137ae565b50506005820154613e5e816143cc565b613e6b60a08601826137a5565b50506006820154613e7b816143df565b613e8860c08601826137ae565b50506007820154613e98816143df565b613ea560e08601826137ae565b50506008820154613eb5816143df565b613ec36101008601826137ae565b5050505050565b6000613ed682856137b7565b602082019150613ee6828461373b565b5060140192915050565b6000613efb826139b2565b9150613f0782846137b7565b50602001919050565b6000613efb82613b09565b6000610f2882613b96565b60208101610f288284613732565b60408101613f428285613723565b61067860208301846137ae565b60408101613f5d8285613732565b6106786020830184613732565b60408101613f428285613732565b60208082528101610678818461374c565b60208101610f2882846137a5565b60208101610f2882846137ae565b60408101613f5d82856137ae565b60408101613f4282856137ae565b60408101613fcf82856137ae565b8181036020830152610cf381846137d1565b60608101613fef82866137ae565b613ffc60208301856137ae565b610cf360408301846137ae565b60208101610f2882846137c8565b6020808252810161067881846137d1565b60208082528101610f2881613809565b60208082528101610f2881613833565b60208082528101610f288161388a565b60208082528101610f28816138bb565b60208082528101610f28816138e6565b60208082528101610f2881613916565b60208082528101610f288161394f565b60208082528101610f2881613979565b60208082528101610f28816139df565b60208082528101610f2881613a0d565b60208082528101610f2881613a5e565b60208082528101610f2881613aa1565b60208082528101610f2881613ada565b60208082528101610f2881613b42565b60208082528101610f2881613b6a565b60208082528101610f2881613ba3565b60208082528101610f2881613bcc565b60208082528101610f2881613c05565b60208082528101610f2881613c3e565b60208082528101610f2881613c6f565b60208082528101610f2881613ca1565b60208082528101610f2881613cda565b61014081016141978285613d13565b6106786101208301846137ae565b61016081016141b48286613d13565b6141c26101208301856137ae565b610cf36101408301846137ae565b61014081016141978285613dbf565b61016081016141b48286613dbf565b61012081016141fd828c6137ae565b61420a602083018b613732565b614217604083018a6137ae565b61422460608301896137ae565b61423160808301886137ae565b61423e60a08301876137a5565b61424b60c08301866137ae565b61425860e08301856137ae565b6142666101008301846137ae565b9a9950505050505050505050565b6080810161428282876137ae565b61428f6020830186613723565b61429c60408301856137ae565b6142a960608301846137ae565b95945050505050565b606081016142c082866137ae565b6142cd60208301856137ae565b610cf360408301846137a5565b608081016142e882876137ae565b61428f60208301866137ae565b60a0810161430382886137ae565b61431060208301876137ae565b61431d60408301866137ae565b61432a60608301856137ae565b61433760808301846137ae565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610f2882614359565b151590565b6000610f28825b6000610f288261436b565b60005b838110156143a8578181015183820152602001614390565b838111156108355750506000910152565b6000610f286143c783610950565b614359565b6000610f286143da83610950565b614365565b6000610f286137c383610950565b6000610f28826000610f2882614408565b601f01601f191690565b60601b90565b6144178161436b565b8114612f0757600080fd5b61441781614376565b6144178161095056fea365627a7a7231582060c617b90cf011d3f145e005c84c9aab24989a750a30f05a1b8b7436e55071ec6c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x928811ad95a551b8199a4c7c48cf06c5525fa474b74dd771204cc89292d7e792",
				"urls": [
					"bzz-raw://b2b600e7bc2e1d0e4d2cf9dd343b2bffd845f0033e1338d641ffbc7fafdd3629",
					"dweb:/ipfs/QmXPbwwbsV8LVqE7EfkMU7GkYeR6m9QdhrbFQFRWhuxUtq"
				]
			},
			"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": "0x928811ad95a551b8199a4c7c48cf06c5525fa474b74dd771204cc89292d7e792",
						"urls": [
							"bzz-raw://b2b600e7bc2e1d0e4d2cf9dd343b2bffd845f0033e1338d641ffbc7fafdd3629",
							"dweb:/ipfs/QmXPbwwbsV8LVqE7EfkMU7GkYeR6m9QdhrbFQFRWhuxUtq"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralErc20": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b5060405162004aa538038062004aa583398101604081905262000041916200016c565b8787878787878380876001600160a01b0381166200007c5760405162461bcd60e51b81526004016200007390620002aa565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c991849062000284565b60405180910390a150600280546001600160a01b03199081166001600160a01b0393841617909155600680549091169782169790971790965550600492909255600a55600b5550600d8054610100600160a81b031916610100959092169490940217909255600e55506200032b95505050505050565b80516200014c81620002fb565b92915050565b80516200014c8162000315565b80516200014c8162000320565b600080600080600080600080610100898b0312156200018a57600080fd5b6000620001988b8b6200013f565b9850506020620001ab8b828c016200015f565b9750506040620001be8b828c016200013f565b9650506060620001d18b828c0162000152565b9550506080620001e48b828c0162000152565b94505060a0620001f78b828c0162000152565b93505060c06200020a8b828c016200013f565b92505060e06200021d8b828c0162000152565b9150509295985092959890939650565b6200023881620002ee565b82525050565b6200023881620002c5565b600062000258601983620002bc565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200029482856200022d565b620002a360208301846200023e565b9392505050565b602080825281016200014c8162000249565b90815260200190565b60006200014c82620002e2565b90565b60006200014c82620002c5565b6001600160a01b031690565b60006200014c82620002d5565b6200030681620002c5565b81146200031257600080fd5b50565b6200030681620002d2565b6200030681620002d5565b61476a806200033b6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637418536011610130578063925ead11116100b8578063ba2de9bc1161007c578063ba2de9bc1461046a578063d2b8035a14610472578063de81eda914610485578063e1ec3c6814610498578063f93451ed146104c057610232565b8063925ead1114610421578063a76cdfa514610429578063aa2d8ce31461043c578063b094f2c41461044f578063b562a1ab1461046257610232565b8063883a2209116100ff578063883a2209146103cb578063899ffef4146103de5780638cd2e0c7146103f35780638da5cb5b1461040657806390abb4d91461040e57610232565b8063741853601461039557806379ba50971461039d5780637e132355146103a5578063846321a4146103b857610232565b8063361e2086116101be578063441a3e7011610182578063441a3e701461034c578063481c6a751461035f57806353a47bb7146103675780635eb2ad011461036f57806372e18b6a1461038257610232565b8063361e20861461030e57806338245377146103165780633cc3ffc7146103295780634065b81b1461033157806341c738011461033957610232565b806310cfe9061161020557806310cfe9061461029e5780631627540c146102b357806323d60e2e146102c65780632af64bd3146102d957806330edd961146102ee57610232565b806304f3bcec146102375780630710285c146102555780630aebeb4e1461026a5780630efe6a8b1461028b575b600080fd5b61023f6104d3565b60405161024c91906142d5565b60405180910390f35b6102686102633660046136f5565b6104e2565b005b61027d61027836600461381e565b610522565b60405161024c92919061428c565b61027d6102993660046136f5565b610564565b6102a6610659565b60405161024c91906141c9565b6102686102c136600461367f565b61066d565b6102686102d4366004613742565b6106cb565b6102e1610791565b60405161024c9190614262565b6103016102fc36600461381e565b6108a9565b60405161024c9190614270565b6103016108c7565b61030161032436600461381e565b6108cd565b6103016108df565b6102e16108e5565b61030161034736600461381e565b6108ee565b61027d61035a36600461385a565b610a0d565b61023f610a5f565b6102a6610a6e565b61026861037d3660046136bb565b610a7d565b6102e1610390366004613742565b610ab3565b610268610b77565b610268610ccd565b6103016103b336600461385a565b610d69565b6102686103c636600461381e565b610e01565b6103016103d936600461381e565b610e3e565b6103e6610e63565b60405161024c9190614251565b61027d6104013660046136f5565b610ff3565b6102a661100e565b61026861041c3660046137b2565b61101d565b610301611069565b61026861043736600461381e565b61106f565b61030161044a36600461381e565b6110ac565b61030161045d36600461381e565b611170565b610301611195565b61030161119b565b61027d61048036600461385a565b6111a1565b6102a661049336600461381e565b6111b9565b6104ab6104a636600461381e565b6111d4565b60405161024c999897969594939291906144ea565b6103016104ce3660046138a9565b61122e565b6002546001600160a01b031681565b60006104ef848484611315565b905060006104fc82611170565b600d5490915061051b9061010090046001600160a01b0316338361167c565b5050505050565b60008061052f33846116da565b9092509050600061053f82611170565b600d5490915061055e9061010090046001600160a01b0316338361167c565b50915091565b600d54604051636eb1769f60e11b815260009182916101009091046001600160a01b03169063dd62ed3e9061059f90339030906004016141d7565b60206040518083038186803b1580156105b757600080fd5b505afa1580156105cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105ef919081019061383c565b8311156106175760405162461bcd60e51b815260040161060e90614324565b60405180910390fd5b600d546106349061010090046001600160a01b03163330866117d0565b600061063f84610e3e565b905061064c8686836117f4565b9097909650945050505050565b600d5461010090046001600160a01b031681565b6106756118c5565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906106c09083906141c9565b60405180910390a150565b6106d36118c5565b8281146106f25760405162461bcd60e51b815260040161060e90614314565b60005b8381101561078257600085858381811061070b57fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061075f57fe5b6020908102929092013583525081019190915260400160002055506001016106f5565b5061078b610b77565b50505050565b6000606061079d610e63565b905060005b815181101561089f5760008282815181106107b957fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a7219061080a908590600401614270565b60206040518083038186803b15801561082257600080fd5b505afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085a919081019061369d565b6001600160a01b031614158061088557506000818152600360205260409020546001600160a01b0316155b1561089657600093505050506108a6565b506001016107a2565b5060019150505b90565b600781815481106108b657fe5b600091825260209091200154905081565b600c5481565b60086020526000908152604090205481565b600e5481565b600d5460ff1681565b60006108f86135a1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008909101546101008201526109836118f1565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b81526004016109b6939291906144a1565b60206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a06919081019061383c565b9392505050565b6000806000610a1b84610e3e565b9050610a278582611912565b90935091506000610a3783611170565b600d54909150610a569061010090046001600160a01b0316338361167c565b50509250929050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610a856118c5565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610ac757506000610b6f565b60005b84811015610b69576000868683818110610ae057fe5b9050602002013590508060078381548110610af757fe5b906000526020600020015414610b1257600092505050610b6f565b60078281548110610b1f57fe5b906000526020600020015460086000878786818110610b3a57fe5b9050602002013581526020019081526020016000205414610b6057600092505050610b6f565b50600101610aca565b50600190505b949350505050565b6060610b81610e63565b905060005b8151811015610cc9576000828281518110610b9d57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610bdf91906141be565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610c0b92919061429a565b60206040518083038186803b158015610c2357600080fd5b505afa158015610c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c5b919081019061369d565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610cb7908490849061427e565b60405180910390a15050600101610b86565b5050565b6001546001600160a01b03163314610cf75760405162461bcd60e51b815260040161060e90614304565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610d3a926001600160a01b039182169291169061420d565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610d736118f1565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610da894939291906145cd565b60206040518083038186803b158015610dc057600080fd5b505afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610df8919081019061383c565b90505b92915050565b610e096118c5565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d906106c0908390614270565b600080610e4e6012600e546119b7565b600a0a9050610a06838263ffffffff6119df16565b606080610e6e611a19565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610ead57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610ed757fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600281518110610efd57fe5b6020026020010181815250506b53797374656d53746174757360a01b81600381518110610f2657fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b81600481518110610f4c57fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b81600581518110610f7757fe5b6020026020010181815250506060610f8f8383611a6a565b9050610feb816007805480602002602001604051908101604052809291908181526020018280548015610fe157602002820191906000526020600020905b815481526020019060010190808311610fcd575b5050505050611a6a565b935050505090565b60008061100285338686611b26565b90969095509350505050565b6000546001600160a01b031681565b6110256118c5565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916106c09160ff90911690614262565b600a5481565b6110776118c5565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c906106c0908390614270565b60006110b66135a1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008909101546101008201526111416118f1565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b81526004016109b6929190614484565b6000806111806012600e546119b7565b600a0a9050610a06838263ffffffff611cd516565b60045481565b600b5481565b6000806111ae8484611d0a565b909590945092505050565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b600d54604051636eb1769f60e11b815260009161010090046001600160a01b03169063dd62ed3e9061126690339030906004016141d7565b60206040518083038186803b15801561127e57600080fd5b505afa158015611292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112b6919081019061383c565b8411156112d55760405162461bcd60e51b815260040161060e90614324565b600d546112f29061010090046001600160a01b03163330876117d0565b60006112fd85610e3e565b905061130c818585600061214c565b95945050505050565b600061131f6127f4565b611327612896565b600082116113475760405162461bcd60e51b815260040161060e90614474565b600061135384866128ea565b90506113643382600301548561293e565b600a5461136f6118f1565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b815260040161139e9291906144cc565b60206040518083038186803b1580156113b657600080fd5b505afa1580156113ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113ee919081019061383c565b1061140b5760405162461bcd60e51b815260040161060e90614454565b60006114156118f1565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b8152600401611448939291906144db565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611498919081019061383c565b905060008482106114a957846114ab565b815b905060006114ca846006015485600401546129f190919063ffffffff16565b90508082106114eb576114de883386612a16565b9550610a06945050505050565b6114fa3385600301548461293e565b6115048483612a87565b61150c6118f1565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b8152600401611541939291906142ba565b60206040518083038186803b15801561155957600080fd5b505afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611591919081019061383c565b60028501549095506115a9908663ffffffff6119b716565b600285015560038401546000908152600860205260409020546115cb90612cac565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b81526004016115f89291906141f2565b600060405180830381600087803b15801561161257600080fd5b505af1158015611626573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5883385896040516116699493929190614570565b60405180910390a2505050509392505050565b6040516116d590849063a9059cbb60e01b9061169e9086908690602401614243565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612cb7565b505050565b6000806116e56127f4565b6116ed612896565b60006116f984866128ea565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061177590612d9c565b611780858683612de9565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f906117c0908790614270565b60405180910390a2509250929050565b60405161078b9085906323b872dd60e01b9061169e9087908790879060240161421b565b6000806117ff6127f4565b611807612896565b600083116118275760405162461bcd60e51b815260040161060e90614414565b600084815260056020526040902060078101546118439061304f565b61184c8161306c565b6002810154611861908563ffffffff6129f116565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c916118a69189918991906142ba565b60405180910390a2806004015481600201549250925050935093915050565b6000546001600160a01b031633146118ef5760405162461bcd60e51b815260040161060e906143a4565b565b600061190d6d10dbdb1b185d195c985b155d1a5b60921b61315e565b905090565b60008061191d6127f4565b611925612896565b600061193185336128ea565b6002810154909150611949908563ffffffff6119b716565b6002820155611957816131bb565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611998939291906142ba565b60405180910390a28060040154816002015492509250505b9250929050565b6000828211156119d95760405162461bcd60e51b815260040161060e90614374565b50900390565b6000826119ee57506000610dfb565b828202828482816119fb57fe5b0414610df85760405162461bcd60e51b815260040161060e906143b4565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611a5b57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611a9a578160200160208202803883390190505b50905060005b8351811015611adc57838181518110611ab557fe5b6020026020010151828281518110611ac957fe5b6020908102919091010152600101611aa0565b5060005b8251811015611b1f57828181518110611af557fe5b6020026020010151828286510181518110611b0c57fe5b6020908102919091010152600101611ae0565b5092915050565b600080611b316127f4565b611b39612896565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152611bc390612d9c565b611bd28682600301548661293e565b611bdb8161306c565b611be58185612a87565b6003810154600090815260086020526040902054611c0290612cac565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401611c2f929190614243565b600060405180830381600087803b158015611c4957600080fd5b505af1158015611c5d573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f87878560040154604051611cb5939291906142ba565b60405180910390a380600401548160020154925092505094509492505050565b6000808211611cf65760405162461bcd60e51b815260040161060e90614384565b6000828481611d0157fe5b04949350505050565b600080611d156127f4565b611d1d612896565b6000611d2985336128ea565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611da590612d9c565b6004810154611dba908563ffffffff6129f116565b6004820155611dc8816131bb565b6000611ddf600c54866131f490919063ffffffff16565b90506000611df3868363ffffffff6119b716565b600584015490915060ff161561200057600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c191611e38918a9060040161428c565b600060405180830381600087803b158015611e5257600080fd5b505af1158015611e66573d6000803e3d6000fd5b50505050611e72613209565b6001600160a01b031663867904b433611e89613220565b6001600160a01b031663654a60ac876003015486631cd554d160e21b6040518463ffffffff1660e01b8152600401611ec3939291906142ba565b60206040518083038186803b158015611edb57600080fd5b505afa158015611eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f13919081019061383c565b6040518363ffffffff1660e01b8152600401611f309291906141f2565b600060405180830381600087803b158015611f4a57600080fd5b505af1158015611f5e573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b031615611ffb5760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a5190611fc89033908a906004016141f2565b600060405180830381600087803b158015611fe257600080fd5b505af1158015611ff6573d6000803e3d6000fd5b505050505b6120e4565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde91612035918a9060040161428c565b600060405180830381600087803b15801561204f57600080fd5b505af1158015612063573d6000803e3d6000fd5b50505060038401546000908152600860205260409020546120849150612cac565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016120b19291906141f2565b600060405180830381600087803b1580156120cb57600080fd5b505af11580156120df573d6000803e3d6000fd5b505050505b6120f282846003015461323b565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf3583106549061212c908a908a9061428c565b60405180910390a282600401548360020154945094505050509250929050565b60006121566127f4565b61215e612896565b600d5460ff166121805760405162461bcd60e51b815260040161060e90614404565b6000838152600860205260409020546121ab5760405162461bcd60e51b815260040161060e90614334565b6121b3613220565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016121de9190614270565b60206040518083038186803b1580156121f657600080fd5b505afa15801561220a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061222e91908101906137d0565b1561224b5760405162461bcd60e51b815260040161060e906143e4565b600b5485101561226d5760405162461bcd60e51b815260040161060e90614444565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb40906122a4908990899060040161428c565b604080518083038186803b1580156122bb57600080fd5b505afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122f391908101906137ee565b91509150818015612302575080155b61231e5760405162461bcd60e51b815260040161060e906143c4565b6123288786610d69565b8611156123475760405162461bcd60e51b815260040161060e90614434565b600061235e600c54886131f490919063ffffffff16565b90506000612372888363ffffffff6119b716565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156123c457600080fd5b505af11580156123d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123fc919081019061383c565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff19169215159290921790915590516006830155516007820155905160088201559095506124c69061306c565b6124d0828861323b565b85156126c3576124de613209565b6001600160a01b031663867904b4336124f5613220565b6001600160a01b031663654a60ac8b86631cd554d160e21b6040518463ffffffff1660e01b815260040161252b939291906142ba565b60206040518083038186803b15801561254357600080fd5b505afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061257b919081019061383c565b6040518363ffffffff1660e01b81526004016125989291906141f2565b600060405180830381600087803b1580156125b257600080fd5b505af11580156125c6573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c191506125fc908a908c9060040161428c565b600060405180830381600087803b15801561261657600080fd5b505af115801561262a573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b03161590506126be576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a519061268b9033908c906004016141f2565b600060405180830381600087803b1580156126a557600080fd5b505af11580156126b9573d6000803e3d6000fd5b505050505b61279f565b6000878152600860205260409020546126db90612cac565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016127089291906141f2565b600060405180830381600087803b15801561272257600080fd5b505af1158015612736573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde915061276c908a908c9060040161428c565b600060405180830381600087803b15801561278657600080fd5b505af115801561279a573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b876040516127e09594939291906145e8565b60405180910390a250505050949350505050565b6127fc613220565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b81526004016128299190614270565b60206040518083038186803b15801561284157600080fd5b505afa158015612855573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061287991908101906137d0565b156118ef5760405162461bcd60e51b815260040161060e906143e4565b61289e6133f1565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156128d657600080fd5b505afa15801561078b573d6000803e3d6000fd5b600082815260056020526040902060078101546129069061304f565b60018101546001600160a01b038381169116146129355760405162461bcd60e51b815260040161060e906143f4565b610dfb8161306c565b600082815260086020526040902054819061295890612cac565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161298391906141c9565b60206040518083038186803b15801561299b57600080fd5b505afa1580156129af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129d3919081019061383c565b10156116d55760405162461bcd60e51b815260040161060e90614394565b600082820183811015610df85760405162461bcd60e51b815260040161060e90614344565b600080612a24858585612de9565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612a77939291906142ba565b60405180910390a3935093915050565b60008111612aa75760405162461bcd60e51b815260040161060e90614474565b600682015415612b0957600082600601548211612ac45781612aca565b82600601545b6006840154909150612ae2908263ffffffff6119b716565b6006840155612af7828263ffffffff6119b716565b9150612b0781846003015461323b565b505b8015610cc9576004820154612b24908263ffffffff6119b716565b6004830155600582015460ff1615612c41576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612b6b91859060040161428c565b600060405180830381600087803b158015612b8557600080fd5b505af1158015612b99573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612c3c57600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612c099291169085906004016141f2565b600060405180830381600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050505b610cc9565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b391612c7691859060040161428c565b600060405180830381600087803b158015612c9057600080fd5b505af1158015612ca4573d6000803e3d6000fd5b505050505050565b6000610dfb8261315e565b612cc9826001600160a01b031661340b565b612ce55760405162461bcd60e51b815260040161060e90614464565b60006060836001600160a01b031683604051612d019190614192565b6000604051808303816000865af19150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509150915081612d655760405162461bcd60e51b815260040161060e90614364565b80511561078b5780806020019051612d8091908101906137d0565b61078b5760405162461bcd60e51b815260040161060e90614424565b612da98160e0015161304f565b42612dc8612db630613411565b6101008401519063ffffffff6129f116565b1115612de65760405162461bcd60e51b815260040161060e906143d4565b50565b6000806000612e09846006015485600401546129f190919063ffffffff16565b90508360040154925083600201549150612e288585600301548361293e565b6003840154600090815260086020526040902054612e4590612cac565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b8152600401612e72929190614243565b600060405180830381600087803b158015612e8c57600080fd5b505af1158015612ea0573d6000803e3d6000fd5b50505050600584015460ff1615612fbe576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b993612eeb939092910161428c565b600060405180830381600087803b158015612f0557600080fd5b505af1158015612f19573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b031615612fb95760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a392612f86928b929101614243565b600060405180830381600087803b158015612fa057600080fd5b505af1158015612fb4573d6000803e3d6000fd5b505050505b61302b565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b393612ff8939092910161428c565b600060405180830381600087803b15801561301257600080fd5b505af1158015613026573d6000803e3d6000fd5b505050505b61303d8460060154856003015461323b565b613046846134e4565b50935093915050565b80612de65760405162461bcd60e51b815260040161060e90614354565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b03909116936380054666936130b49360ff909116906004016145a5565b6040805180830381600087803b1580156130cd57600080fd5b505af11580156130e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131059190810190613879565b915091506000836007015460001461313157600484015461312c908463ffffffff61350916565b613134565b60005b600685015490915061314c908263ffffffff6129f116565b60068501555060079092019190915550565b60008181526003602090815260408083205490516001600160a01b03909116918215159161318e9186910161419e565b60405160208183030381529060405290611b1f5760405162461bcd60e51b815260040161060e91906142e3565b60048101546131c957612de6565b600a5481546131d7906110ac565b11612de65760405162461bcd60e51b815260040161060e906142f4565b6000610df88383670de0b6b3a7640000613533565b600061190d6814de5b9d1a1cd554d160ba1b61315e565b600061190d6c45786368616e6765526174657360981b61315e565b8115610cc957631cd554d160e21b81146132e057613257613220565b6001600160a01b031663654a60ac8284631cd554d160e21b6040518463ffffffff1660e01b815260040161328d939291906142ba565b60206040518083038186803b1580156132a557600080fd5b505afa1580156132b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506132dd919081019061383c565b91505b6132e8613209565b6001600160a01b031663867904b46132fe61356f565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561333657600080fd5b505afa15801561334a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061336e919081019061369d565b846040518363ffffffff1660e01b815260040161338c929190614243565b600060405180830381600087803b1580156133a657600080fd5b505af11580156133ba573d6000803e3d6000fd5b505050506133c661356f565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b8152600401612c769190614270565b600061190d6b53797374656d53746174757360a01b61315e565b3b151590565b600061341b613584565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b8560405160200161346192919061416c565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161349492919061428c565b60206040518083038186803b1580156134ac57600080fd5b505afa1580156134c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dfb919081019061383c565b6000600482018190556002820181905560068201819055600782015542600890910155565b6000670de0b6b3a7640000613524848463ffffffff6119df16565b8161352b57fe5b049392505050565b600080600a830461354a868663ffffffff6119df16565b8161355157fe5b0490506005600a82061061356357600a015b600a9004949350505050565b600061190d66119959541bdbdb60ca1b61315e565b600061190d6e466c657869626c6553746f7261676560881b61315e565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610dfb81614701565b8051610dfb81614701565b60008083601f84011261362357600080fd5b50813567ffffffffffffffff81111561363b57600080fd5b6020830191508360208202830111156119b057600080fd5b8035610dfb81614715565b8051610dfb81614715565b8035610dfb8161471e565b8051610dfb8161471e565b60006020828403121561369157600080fd5b6000610b6f84846135fb565b6000602082840312156136af57600080fd5b6000610b6f8484613606565b600080604083850312156136ce57600080fd5b60006136da85856135fb565b92505060206136eb85828601613669565b9150509250929050565b60008060006060848603121561370a57600080fd5b600061371686866135fb565b935050602061372786828701613669565b925050604061373886828701613669565b9150509250925092565b6000806000806040858703121561375857600080fd5b843567ffffffffffffffff81111561376f57600080fd5b61377b87828801613611565b9450945050602085013567ffffffffffffffff81111561379a57600080fd5b6137a687828801613611565b95989497509550505050565b6000602082840312156137c457600080fd5b6000610b6f8484613653565b6000602082840312156137e257600080fd5b6000610b6f848461365e565b6000806040838503121561380157600080fd5b600061380d858561365e565b92505060206136eb8582860161365e565b60006020828403121561383057600080fd5b6000610b6f8484613669565b60006020828403121561384e57600080fd5b6000610b6f8484613674565b6000806040838503121561386d57600080fd5b60006136da8585613669565b6000806040838503121561388c57600080fd5b60006138988585613674565b92505060206136eb85828601613674565b6000806000606084860312156138be57600080fd5b60006137168686613669565b60006138d68383613969565b505060200190565b6138e78161466e565b82525050565b6138e78161465e565b6138e76139028261465e565b6146e0565b60006139128261463a565b61391c818561463e565b935061392783614634565b8060005b8381101561395557815161393f88826138ca565b975061394a83614634565b92505060010161392b565b509495945050505050565b6138e781614669565b6138e7816108a6565b6138e761397e826108a6565b6108a6565b600061398e8261463a565b6139988185614647565b93506139a8818560208601614680565b9290920192915050565b6138e781614675565b60006139c68261463a565b6139d0818561463e565b93506139e0818560208601614680565b6139e9816146f1565b9093019392505050565b6000613a00600e8361463e565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b6000613a2a60358361463e565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613a8160158361463e565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b6000613ab260198361463e565b7f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000815260200192915050565b6000613aeb60148361463e565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613b1b601b8361463e565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613b54600e8361463e565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613b7e60208361463e565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000613bb7601e8361463e565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613bf0601a8361463e565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000613c29601183614647565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000613c5660128361463e565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613c84602f8361463e565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613cd560218361463e565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613d18601a8361463e565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000613d5160138361463e565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000613d80601983614647565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613db9600c8361463e565b6b496e76616c6964207261746560a01b815260200192915050565b6000613de160108361463e565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b6000613e0d600d8361463e565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000613e3660178361463e565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000613e6f602a8361463e565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000613ebb60178361463e565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b6000613ef460158361463e565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b6000613f2560168361463e565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b6000613f57601f8361463e565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b6000613f9060178361463e565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b8051610120830190613fce8482613969565b506020820151613fe160208501826138ed565b506040820151613ff46040850182613969565b5060608201516140076060850182613969565b50608082015161401a6080850182613969565b5060a082015161402d60a0850182613960565b5060c082015161404060c0850182613969565b5060e082015161405360e0850182613969565b5061010082015161078b610100850182613969565b8054610120830190614079816146d2565b6140838582613969565b50506001820154614093816146ac565b6140a060208601826138ed565b505060028201546140b0816146d2565b6140bd6040860182613969565b505060038201546140cd816146d2565b6140da6060860182613969565b505060048201546140ea816146d2565b6140f76080860182613969565b50506005820154614107816146bf565b61411460a0860182613960565b50506006820154614124816146d2565b61413160c0860182613969565b50506007820154614141816146d2565b61414e60e0860182613969565b5050600882015461415e816146d2565b61051b610100860182613969565b60006141788285613972565b60208201915061418882846138f6565b5060140192915050565b6000610a068284613983565b60006141a982613c1c565b91506141b58284613972565b50602001919050565b60006141a982613d73565b60208101610dfb82846138ed565b604081016141e582856138de565b610a0660208301846138ed565b6040810161420082856138de565b610a066020830184613969565b604081016141e582856138ed565b6060810161422982866138ed565b61423660208301856138ed565b610b6f6040830184613969565b6040810161420082856138ed565b60208082528101610df88184613907565b60208101610dfb8284613960565b60208101610dfb8284613969565b604081016141e58285613969565b604081016142008285613969565b604081016142a88285613969565b8181036020830152610b6f81846139bb565b606081016142c88286613969565b6142366020830185613969565b60208101610dfb82846139b2565b60208082528101610df881846139bb565b60208082528101610dfb816139f3565b60208082528101610dfb81613a1d565b60208082528101610dfb81613a74565b60208082528101610dfb81613aa5565b60208082528101610dfb81613ade565b60208082528101610dfb81613b0e565b60208082528101610dfb81613b47565b60208082528101610dfb81613b71565b60208082528101610dfb81613baa565b60208082528101610dfb81613be3565b60208082528101610dfb81613c49565b60208082528101610dfb81613c77565b60208082528101610dfb81613cc8565b60208082528101610dfb81613d0b565b60208082528101610dfb81613d44565b60208082528101610dfb81613dac565b60208082528101610dfb81613dd4565b60208082528101610dfb81613e00565b60208082528101610dfb81613e29565b60208082528101610dfb81613e62565b60208082528101610dfb81613eae565b60208082528101610dfb81613ee7565b60208082528101610dfb81613f18565b60208082528101610dfb81613f4a565b60208082528101610dfb81613f83565b61014081016144938285613fbc565b610a06610120830184613969565b61016081016144b08286613fbc565b6144be610120830185613969565b610b6f610140830184613969565b61014081016144938285614068565b61016081016144b08286614068565b61012081016144f9828c613969565b614506602083018b6138ed565b614513604083018a613969565b6145206060830189613969565b61452d6080830188613969565b61453a60a0830187613960565b61454760c0830186613969565b61455460e0830185613969565b614562610100830184613969565b9a9950505050505050505050565b6080810161457e8287613969565b61458b60208301866138de565b6145986040830185613969565b61130c6060830184613969565b606081016145b38286613969565b6145c06020830185613969565b610b6f6040830184613960565b608081016145db8287613969565b61458b6020830186613969565b60a081016145f68288613969565b6146036020830187613969565b6146106040830186613969565b61461d6060830185613969565b61462a6080830184613969565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610dfb8261464c565b151590565b6000610dfb825b6000610dfb8261465e565b60005b8381101561469b578181015183820152602001614683565b8381111561078b5750506000910152565b6000610dfb6146ba836108a6565b61464c565b6000610dfb6146cd836108a6565b614658565b6000610dfb61397e836108a6565b6000610dfb826000610dfb826146fb565b601f01601f191690565b60601b90565b61470a8161465e565b8114612de657600080fd5b61470a81614669565b61470a816108a656fea365627a7a72315820cf0ec59ebf8a813644a3759f7e44903b12116e4e55200d97c2a8bda61ce17fb06c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0x0a993d6852fdf7504af98b8a355d8e5e19348de6e782adc3f7ff6fdc08df02c4",
				"urls": [
					"bzz-raw://148211ec2a88be0c832f00b42a9f69708e9df872324c51820d69b7e302f35ff4",
					"dweb:/ipfs/QmVG5VW4uXEcGLtnE9xgNjNCAmvULEkTx5g2h9CdmP4b6H"
				]
			},
			"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": "0x0a993d6852fdf7504af98b8a355d8e5e19348de6e782adc3f7ff6fdc08df02c4",
						"urls": [
							"bzz-raw://148211ec2a88be0c832f00b42a9f69708e9df872324c51820d69b7e302f35ff4",
							"dweb:/ipfs/QmVG5VW4uXEcGLtnE9xgNjNCAmvULEkTx5g2h9CdmP4b6H"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralShort": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b5060405162004c7138038062004c7183398101604081905262000041916200014b565b8585858585858380876001600160a01b0381166200007c5760405162461bcd60e51b815260040162000073906200025c565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c991849062000236565b60405180910390a150600280546001600160a01b039283166001600160a01b0319918216179091556006805498909216971696909617909555600492909255600a55600b5550620002dd975050505050505050565b80516200012b81620002ad565b92915050565b80516200012b81620002c7565b80516200012b81620002d2565b60008060008060008060c087890312156200016557600080fd5b60006200017389896200011e565b96505060206200018689828a016200013e565b95505060406200019989828a016200011e565b9450506060620001ac89828a0162000131565b9350506080620001bf89828a0162000131565b92505060a0620001d289828a0162000131565b9150509295509295509295565b620001ea81620002a0565b82525050565b620001ea8162000277565b60006200020a6019836200026e565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620002468285620001df565b620002556020830184620001f0565b9392505050565b602080825281016200012b81620001fb565b90815260200190565b60006200012b8262000294565b90565b60006200012b8262000277565b6001600160a01b031690565b60006200012b8262000287565b620002b88162000277565b8114620002c457600080fd5b50565b620002b88162000284565b620002b88162000287565b61498480620002ed6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806379ba509711610130578063981bddf2116100b8578063c799bd5c1161007c578063c799bd5c14610457578063d2b8035a1461046a578063de81eda91461047d578063e1ec3c6814610490578063f93451ed146104b857610227565b8063981bddf21461040e578063a76cdfa514610421578063aa2d8ce314610434578063b562a1ab14610447578063ba2de9bc1461044f57610227565b8063899ffef4116100ff578063899ffef4146103c35780638cd2e0c7146103d85780638da5cb5b146103eb57806390abb4d9146103f3578063925ead111461040657610227565b806379ba5097146103825780637e1323551461038a5780637e9c9b741461039d578063846321a4146103b057610227565b806338245377116101b3578063481c6a7511610182578063481c6a751461033757806353a47bb71461033f5780635eb2ad011461035457806372e18b6a14610367578063741853601461037a57610227565b806338245377146102f65780634065b81b1461030957806341c7380114610311578063441a3e701461032457610227565b80631627540c116101fa5780631627540c1461029357806323d60e2e146102a65780632af64bd3146102b957806330edd961146102ce578063361e2086146102ee57610227565b806304f3bcec1461022c5780630710285c1461024a5780630aebeb4e1461025f5780630efe6a8b14610280575b600080fd5b6102346104cb565b6040516102419190614516565b60405180910390f35b61025d610258366004613a05565b6104da565b005b61027261026d366004613b2e565b610577565b6040516102419291906144cd565b61027261028e366004613a05565b610616565b61025d6102a136600461398f565b610767565b61025d6102b4366004613a52565b6107c5565b6102c161088b565b60405161024191906144a3565b6102e16102dc366004613b2e565b6109a3565b60405161024191906144b1565b6102e16109c1565b6102e1610304366004613b2e565b6109c7565b6102c16109d9565b6102e161031f366004613b2e565b6109e2565b610272610332366004613b6a565b610b01565b610234610ba2565b610347610bb1565b604051610241919061440a565b61025d6103623660046139cb565b610bc0565b6102c1610375366004613a52565b610bf6565b61025d610cba565b61025d610e10565b6102e1610398366004613b6a565b610eac565b6102726103ab366004613b6a565b610f44565b61025d6103be366004613b2e565b610f5d565b6103cb610f9a565b6040516102419190614492565b6102726103e6366004613a05565b61112a565b610347611139565b61025d610401366004613ac2565b611148565b6102e1611194565b61027261041c3660046139cb565b61119a565b61025d61042f366004613b2e565b611233565b6102e1610442366004613b2e565b611270565b6102e1611334565b6102e161133a565b610272610465366004613b2e565b611340565b610272610478366004613b6a565b611365565b61034761048b366004613b2e565b611372565b6104a361049e366004613b2e565b61138d565b604051610241999897969594939291906146fb565b6102e16104c6366004613bb9565b6113e7565b6002546001600160a01b031681565b60006104e7848484611480565b90506104f16117e7565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040161051e92919061445b565b602060405180830381600087803b15801561053857600080fd5b505af115801561054c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105709190810190613ae0565b5050505050565b6000806105843384611803565b90925090506105916117e7565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016105be92919061445b565b602060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106109190810190613ae0565b50915091565b6000806106216117e7565b6001600160a01b031663dd62ed3e33306040518363ffffffff1660e01b815260040161064e929190614418565b60206040518083038186803b15801561066657600080fd5b505afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061069e9190810190613b4c565b8311156106c65760405162461bcd60e51b81526004016106bd906145e5565b60405180910390fd5b6106ce6117e7565b6001600160a01b03166323b872dd3330866040518463ffffffff1660e01b81526004016106fd93929190614433565b602060405180830381600087803b15801561071757600080fd5b505af115801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061074f9190810190613ae0565b5061075b8585856118f9565b90969095509350505050565b61076f6119ca565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107ba90839061440a565b60405180910390a150565b6107cd6119ca565b8281146107ec5760405162461bcd60e51b81526004016106bd90614555565b60005b8381101561087c57600085858381811061080557fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061085957fe5b6020908102929092013583525081019190915260400160002055506001016107ef565b50610885610cba565b50505050565b60006060610897610f9a565b905060005b81518110156109995760008282815181106108b357fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906109049085906004016144b1565b60206040518083038186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061095491908101906139ad565b6001600160a01b031614158061097f57506000818152600360205260409020546001600160a01b0316155b1561099057600093505050506109a0565b5060010161089c565b5060019150505b90565b600781815481106109b057fe5b600091825260209091200154905081565b600c5481565b60086020526000908152604090205481565b600d5460ff1681565b60006109ec6138b1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152610a776119f6565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b8152600401610aaa939291906146b2565b60206040518083038186803b158015610ac257600080fd5b505afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610afa9190810190613b4c565b9392505050565b600080610b0e8484611a12565b9092509050610b1b6117e7565b6001600160a01b031663a9059cbb33856040518363ffffffff1660e01b8152600401610b4892919061445b565b602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b9a9190810190613ae0565b509250929050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610bc86119ca565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610c0a57506000610cb2565b60005b84811015610cac576000868683818110610c2357fe5b9050602002013590508060078381548110610c3a57fe5b906000526020600020015414610c5557600092505050610cb2565b60078281548110610c6257fe5b906000526020600020015460086000878786818110610c7d57fe5b9050602002013581526020019081526020016000205414610ca357600092505050610cb2565b50600101610c0d565b50600190505b949350505050565b6060610cc4610f9a565b905060005b8151811015610e0c576000828281518110610ce057fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d2291906143ff565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d4e9291906144db565b60206040518083038186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d9e91908101906139ad565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610dfa90849084906144bf565b60405180910390a15050600101610cc9565b5050565b6001546001600160a01b03163314610e3a5760405162461bcd60e51b81526004016106bd90614545565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610e7d926001600160a01b0391821692911690614476565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610eb66119f6565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610eeb94939291906147e7565b60206040518083038186803b158015610f0357600080fd5b505afa158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f3b9190810190613b4c565b90505b92915050565b600080610f52338585611ab6565b909590945092505050565b610f656119ca565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d906107ba9083906144b1565b606080610fa5611d4f565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610fe457fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061100e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061103457fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061105d57fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b8160048151811061108357fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b816005815181106110ae57fe5b60200260200101818152505060606110c68383611da0565b905061112281600780548060200260200160405190810160405280929190818152602001828054801561111857602002820191906000526020600020905b815481526020019060010190808311611104575b5050505050611da0565b935050505090565b60008061075b85338686611e5c565b6000546001600160a01b031681565b6111506119ca565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916107ba9160ff909116906144a3565b600a5481565b6000806111a56138b1565b5050506000818152600560208181526040928390208351610120810185528154815260018201546001600160a01b0316928101929092526002810154938201849052600381015460608301526004810154608083018190529281015460ff16151560a0830152600681015460c0830152600781015460e08301526008015461010090910152905b9250929050565b61123b6119ca565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c906107ba9083906144b1565b600061127a6138b1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008909101546101008201526113056119f6565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b8152600401610aaa929190614695565b60045481565b600b5481565b60008061134d338461200b565b90925090508015611360576105916117e7565b915091565b600080610f5284846120a2565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b60006113f16117e7565b6001600160a01b03166323b872dd3330876040518463ffffffff1660e01b815260040161142093929190614433565b602060405180830381600087803b15801561143a57600080fd5b505af115801561144e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114729190810190613ae0565b50610cb284848460016124e4565b600061148a612b8c565b611492612c2e565b600082116114b25760405162461bcd60e51b81526004016106bd90614685565b60006114be8486612c82565b90506114cf33826003015485612cd6565b600a546114da6119f6565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b81526004016115099291906146dd565b60206040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115599190810190613b4c565b106115765760405162461bcd60e51b81526004016106bd90614675565b60006115806119f6565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b81526004016115b3939291906146ec565b60206040518083038186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116039190810190613b4c565b905060008482106116145784611616565b815b9050600061163584600601548560040154612d8e90919063ffffffff16565b905080821061165657611649883386612db3565b9550610afa945050505050565b61166533856003015484612cd6565b61166f8483612e24565b6116776119f6565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b81526004016116ac939291906144fb565b60206040518083038186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116fc9190810190613b4c565b6002850154909550611714908663ffffffff61304916565b6002850155600384015460009081526008602052604090205461173690613071565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b815260040161176392919061445b565b600060405180830381600087803b15801561177d57600080fd5b505af1158015611791573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5883385896040516117d49493929190614781565b60405180910390a2505050509392505050565b60006117fe6814de5b9d1a1cd554d160ba1b613078565b905090565b60008061180e612b8c565b611816612c2e565b60006118228486612c82565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061189e906130d5565b6118a9858683613122565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f906118e99087906144b1565b60405180910390a2509250929050565b600080611904612b8c565b61190c612c2e565b6000831161192c5760405162461bcd60e51b81526004016106bd90614645565b6000848152600560205260409020600781015461194890613388565b611951816133a5565b6002810154611966908563ffffffff612d8e16565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c916119ab9189918991906144fb565b60405180910390a2806004015481600201549250925050935093915050565b6000546001600160a01b031633146119f45760405162461bcd60e51b81526004016106bd906145c5565b565b60006117fe6d10dbdb1b185d195c985b155d1a5b60921b613078565b600080611a1d612b8c565b611a25612c2e565b6000611a318533612c82565b6002810154909150611a49908563ffffffff61304916565b6002820155611a5781613497565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611a98939291906144fb565b60405180910390a28060040154816002015492509250509250929050565b600080611ac1612b8c565b611ac9612c2e565b6000611ad58587612c82565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611b51906130d5565b60068101546004820154611b6a9163ffffffff612d8e16565b841115611b895760405162461bcd60e51b81526004016106bd906145b5565b611b938185612e24565b600080611b9e6134d0565b6001600160a01b031663f450aa34878560030154631cd554d160e21b6040518463ffffffff1660e01b8152600401611bd8939291906144fb565b60606040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c289190810190613bda565b5090925090506000611c40838363ffffffff612d8e16565b90506000611c54828463ffffffff612d8e16565b6002860154909150611c6c908263ffffffff61304916565b6002860155611c8283631cd554d160e21b6134e7565b611c8a6117e7565b6001600160a01b0316639dc29fac30836040518363ffffffff1660e01b8152600401611cb7929190614484565b600060405180830381600087803b158015611cd157600080fd5b505af1158015611ce5573d6000803e3d6000fd5b5050426008880155505060048501546040516001600160a01b038c169182917fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f91611d33918e918e916144fb565b60405180910390a3505050506002015492959294509192505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611d9157fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611dd0578160200160208202803883390190505b50905060005b8351811015611e1257838181518110611deb57fe5b6020026020010151828281518110611dff57fe5b6020908102919091010152600101611dd6565b5060005b8251811015611e5557828181518110611e2b57fe5b6020026020010151828286510181518110611e4257fe5b6020908102919091010152600101611e16565b5092915050565b600080611e67612b8c565b611e6f612c2e565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152611ef9906130d5565b611f0886826003015486612cd6565b611f11816133a5565b611f1b8185612e24565b6003810154600090815260086020526040902054611f3890613071565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401611f65929190614484565b600060405180830381600087803b158015611f7f57600080fd5b505af1158015611f93573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f87878560040154604051611feb939291906144fb565b60405180910390a380600401548160020154925092505094509492505050565b600080600061201a8486612c82565b9050600061203982600601548360040154612d8e90919063ffffffff16565b9050612046868683611ab6565b90945092506120548261369d565b856001600160a01b03167f70346f402be1b9ee8737498472823400f3a14730d534d309f1d2d365ca7511e6868686604051612091939291906144fb565b60405180910390a250509250929050565b6000806120ad612b8c565b6120b5612c2e565b60006120c18533612c82565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061213d906130d5565b6004810154612152908563ffffffff612d8e16565b600482015561216081613497565b6000612177600c54866136c290919063ffffffff16565b9050600061218b868363ffffffff61304916565b600584015490915060ff161561239857600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c1916121d0918a906004016144cd565b600060405180830381600087803b1580156121ea57600080fd5b505af11580156121fe573d6000803e3d6000fd5b5050505061220a6117e7565b6001600160a01b031663867904b4336122216136d7565b6001600160a01b031663654a60ac876003015486631cd554d160e21b6040518463ffffffff1660e01b815260040161225b939291906144fb565b60206040518083038186803b15801561227357600080fd5b505afa158015612287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122ab9190810190613b4c565b6040518363ffffffff1660e01b81526004016122c892919061445b565b600060405180830381600087803b1580156122e257600080fd5b505af11580156122f6573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b0316156123935760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906123609033908a9060040161445b565b600060405180830381600087803b15801561237a57600080fd5b505af115801561238e573d6000803e3d6000fd5b505050505b61247c565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde916123cd918a906004016144cd565b600060405180830381600087803b1580156123e757600080fd5b505af11580156123fb573d6000803e3d6000fd5b505050600384015460009081526008602052604090205461241c9150613071565b6001600160a01b031663867904b433836040518363ffffffff1660e01b815260040161244992919061445b565b600060405180830381600087803b15801561246357600080fd5b505af1158015612477573d6000803e3d6000fd5b505050505b61248a8284600301546134e7565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654906124c4908a908a906144cd565b60405180910390a282600401548360020154945094505050509250929050565b60006124ee612b8c565b6124f6612c2e565b600d5460ff166125185760405162461bcd60e51b81526004016106bd90614635565b6000838152600860205260409020546125435760405162461bcd60e51b81526004016106bd90614565565b61254b6136d7565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b815260040161257691906144b1565b60206040518083038186803b15801561258e57600080fd5b505afa1580156125a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125c69190810190613ae0565b156125e35760405162461bcd60e51b81526004016106bd90614615565b600b548510156126055760405162461bcd60e51b81526004016106bd90614665565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb409061263c90899089906004016144cd565b604080518083038186803b15801561265357600080fd5b505afa158015612667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061268b9190810190613afe565b9150915081801561269a575080155b6126b65760405162461bcd60e51b81526004016106bd906145f5565b6126c08786610eac565b8611156126df5760405162461bcd60e51b81526004016106bd90614655565b60006126f6600c54886136c290919063ffffffff16565b9050600061270a888363ffffffff61304916565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561275c57600080fd5b505af1158015612770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127949190810190613b4c565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff191692151592909217909155905160068301555160078201559051600882015590955061285e906133a5565b61286882886134e7565b8515612a5b576128766117e7565b6001600160a01b031663867904b43361288d6136d7565b6001600160a01b031663654a60ac8b86631cd554d160e21b6040518463ffffffff1660e01b81526004016128c3939291906144fb565b60206040518083038186803b1580156128db57600080fd5b505afa1580156128ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129139190810190613b4c565b6040518363ffffffff1660e01b815260040161293092919061445b565b600060405180830381600087803b15801561294a57600080fd5b505af115801561295e573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c19150612994908a908c906004016144cd565b600060405180830381600087803b1580156129ae57600080fd5b505af11580156129c2573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b0316159050612a56576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a5190612a239033908c9060040161445b565b600060405180830381600087803b158015612a3d57600080fd5b505af1158015612a51573d6000803e3d6000fd5b505050505b612b37565b600087815260086020526040902054612a7390613071565b6001600160a01b031663867904b433836040518363ffffffff1660e01b8152600401612aa092919061445b565b600060405180830381600087803b158015612aba57600080fd5b505af1158015612ace573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde9150612b04908a908c906004016144cd565b600060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b87604051612b78959493929190614802565b60405180910390a250505050949350505050565b612b946136d7565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b8152600401612bc191906144b1565b60206040518083038186803b158015612bd957600080fd5b505afa158015612bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c119190810190613ae0565b156119f45760405162461bcd60e51b81526004016106bd90614615565b612c366136f2565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612c6e57600080fd5b505afa158015610885573d6000803e3d6000fd5b60008281526005602052604090206007810154612c9e90613388565b60018101546001600160a01b03838116911614612ccd5760405162461bcd60e51b81526004016106bd90614625565b610f3e816133a5565b6000828152600860205260409020548190612cf090613071565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401612d1b919061440a565b60206040518083038186803b158015612d3357600080fd5b505afa158015612d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d6b9190810190613b4c565b1015612d895760405162461bcd60e51b81526004016106bd906145a5565b505050565b600082820183811015610f3b5760405162461bcd60e51b81526004016106bd90614575565b600080612dc1858585613122565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612e14939291906144fb565b60405180910390a3935093915050565b60008111612e445760405162461bcd60e51b81526004016106bd90614685565b600682015415612ea657600082600601548211612e615781612e67565b82600601545b6006840154909150612e7f908263ffffffff61304916565b6006840155612e94828263ffffffff61304916565b9150612ea48184600301546134e7565b505b8015610e0c576004820154612ec1908263ffffffff61304916565b6004830155600582015460ff1615612fde576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612f089185906004016144cd565b600060405180830381600087803b158015612f2257600080fd5b505af1158015612f36573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612fd957600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612fa692911690859060040161445b565b600060405180830381600087803b158015612fc057600080fd5b505af1158015612fd4573d6000803e3d6000fd5b505050505b610e0c565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b3916130139185906004016144cd565b600060405180830381600087803b15801561302d57600080fd5b505af1158015613041573d6000803e3d6000fd5b505050505050565b60008282111561306b5760405162461bcd60e51b81526004016106bd90614595565b50900390565b6000610f3e825b60008181526003602090815260408083205490516001600160a01b0390911691821515916130a8918691016143df565b60405160208183030381529060405290611e555760405162461bcd60e51b81526004016106bd9190614524565b6130e28160e00151613388565b426131016130ef3061370c565b6101008401519063ffffffff612d8e16565b111561311f5760405162461bcd60e51b81526004016106bd90614605565b50565b600080600061314284600601548560040154612d8e90919063ffffffff16565b9050836004015492508360020154915061316185856003015483612cd6565b600384015460009081526008602052604090205461317e90613071565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b81526004016131ab929190614484565b600060405180830381600087803b1580156131c557600080fd5b505af11580156131d9573d6000803e3d6000fd5b50505050600584015460ff16156132f7576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b99361322493909291016144cd565b600060405180830381600087803b15801561323e57600080fd5b505af1158015613252573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b0316156132f25760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a3926132bf928b929101614484565b600060405180830381600087803b1580156132d957600080fd5b505af11580156132ed573d6000803e3d6000fd5b505050505b613364565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b39361333193909291016144cd565b600060405180830381600087803b15801561334b57600080fd5b505af115801561335f573d6000803e3d6000fd5b505050505b613376846006015485600301546134e7565b61337f8461369d565b50935093915050565b8061311f5760405162461bcd60e51b81526004016106bd90614585565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b03909116936380054666936133ed9360ff909116906004016147bf565b6040805180830381600087803b15801561340657600080fd5b505af115801561341a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061343e9190810190613b89565b915091506000836007015460001461346a576004840154613465908463ffffffff6137df16565b61346d565b60005b6006850154909150613485908263ffffffff612d8e16565b60068501555060079092019190915550565b60048101546134a55761311f565b600a5481546134b390611270565b1161311f5760405162461bcd60e51b81526004016106bd90614535565b60006117fe6822bc31b430b733b2b960b91b613078565b8115610e0c57631cd554d160e21b811461358c576135036136d7565b6001600160a01b031663654a60ac8284631cd554d160e21b6040518463ffffffff1660e01b8152600401613539939291906144fb565b60206040518083038186803b15801561355157600080fd5b505afa158015613565573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135899190810190613b4c565b91505b6135946117e7565b6001600160a01b031663867904b46135aa613809565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b1580156135e257600080fd5b505afa1580156135f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061361a91908101906139ad565b846040518363ffffffff1660e01b8152600401613638929190614484565b600060405180830381600087803b15801561365257600080fd5b505af1158015613666573d6000803e3d6000fd5b50505050613672613809565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b815260040161301391906144b1565b6000600482018190556002820181905560068201819055600782015542600890910155565b6000610f3b8383670de0b6b3a764000061381e565b60006117fe6c45786368616e6765526174657360981b613078565b60006117fe6b53797374656d53746174757360a01b613078565b600061371661385a565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b8560405160200161375c9291906143b9565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161378f9291906144cd565b60206040518083038186803b1580156137a757600080fd5b505afa1580156137bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f3e9190810190613b4c565b6000670de0b6b3a76400006137fa848463ffffffff61387716565b8161380157fe5b049392505050565b60006117fe66119959541bdbdb60ca1b613078565b600080600a8304613835868663ffffffff61387716565b8161383c57fe5b0490506005600a82061061384e57600a015b600a9004949350505050565b60006117fe6e466c657869626c6553746f7261676560881b613078565b60008261388657506000610f3e565b8282028284828161389357fe5b0414610f3b5760405162461bcd60e51b81526004016106bd906145d5565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610f3e8161491b565b8051610f3e8161491b565b60008083601f84011261393357600080fd5b50813567ffffffffffffffff81111561394b57600080fd5b60208301915083602082028301111561122c57600080fd5b8035610f3e8161492f565b8051610f3e8161492f565b8035610f3e81614938565b8051610f3e81614938565b6000602082840312156139a157600080fd5b6000610cb2848461390b565b6000602082840312156139bf57600080fd5b6000610cb28484613916565b600080604083850312156139de57600080fd5b60006139ea858561390b565b92505060206139fb85828601613979565b9150509250929050565b600080600060608486031215613a1a57600080fd5b6000613a26868661390b565b9350506020613a3786828701613979565b9250506040613a4886828701613979565b9150509250925092565b60008060008060408587031215613a6857600080fd5b843567ffffffffffffffff811115613a7f57600080fd5b613a8b87828801613921565b9450945050602085013567ffffffffffffffff811115613aaa57600080fd5b613ab687828801613921565b95989497509550505050565b600060208284031215613ad457600080fd5b6000610cb28484613963565b600060208284031215613af257600080fd5b6000610cb2848461396e565b60008060408385031215613b1157600080fd5b6000613b1d858561396e565b92505060206139fb8582860161396e565b600060208284031215613b4057600080fd5b6000610cb28484613979565b600060208284031215613b5e57600080fd5b6000610cb28484613984565b60008060408385031215613b7d57600080fd5b60006139ea8585613979565b60008060408385031215613b9c57600080fd5b6000613ba88585613984565b92505060206139fb85828601613984565b600080600060608486031215613bce57600080fd5b6000613a268686613979565b600080600060608486031215613bef57600080fd5b6000613bfb8686613984565b9350506020613c0c86828701613984565b9250506040613a4886828701613984565b6000613c298383613cbc565b505060200190565b613c3a81614888565b82525050565b613c3a81614878565b613c3a613c5582614878565b6148fa565b6000613c6582614854565b613c6f8185614858565b9350613c7a8361484e565b8060005b83811015613ca8578151613c928882613c1d565b9750613c9d8361484e565b925050600101613c7e565b509495945050505050565b613c3a81614883565b613c3a816109a0565b613c3a613cd1826109a0565b6109a0565b613c3a8161488f565b6000613cea82614854565b613cf48185614858565b9350613d0481856020860161489a565b613d0d8161490b565b9093019392505050565b6000613d24600e83614858565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b6000613d4e603583614858565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613da5601583614858565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b6000613dd6601483614858565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613e06601b83614858565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613e3f600e83614858565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613e69601e83614858565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613ea2601183614861565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000613ecf601283614858565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613efd601083614858565b6f0a0c2f2dacadce840e8dede40d0d2ced60831b815260200192915050565b6000613f29602f83614858565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613f7a602183614858565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613fbd601183614858565b70416c6c6f77616e636520746f6f206c6f7760781b815260200192915050565b6000613fea601a83614858565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000614023601383614858565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000614052601983614861565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061408b600c83614858565b6b496e76616c6964207261746560a01b815260200192915050565b60006140b3601083614858565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b60006140df600d83614858565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000614108601783614858565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000614141601783614858565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b600061417a601583614858565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b60006141ab601683614858565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b60006141dd601783614858565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b805161012083019061421b8482613cbc565b50602082015161422e6020850182613c40565b5060408201516142416040850182613cbc565b5060608201516142546060850182613cbc565b5060808201516142676080850182613cbc565b5060a082015161427a60a0850182613cb3565b5060c082015161428d60c0850182613cbc565b5060e08201516142a060e0850182613cbc565b50610100820151610885610100850182613cbc565b80546101208301906142c6816148ec565b6142d08582613cbc565b505060018201546142e0816148c6565b6142ed6020860182613c40565b505060028201546142fd816148ec565b61430a6040860182613cbc565b5050600382015461431a816148ec565b6143276060860182613cbc565b50506004820154614337816148ec565b6143446080860182613cbc565b50506005820154614354816148d9565b61436160a0860182613cb3565b50506006820154614371816148ec565b61437e60c0860182613cbc565b5050600782015461438e816148ec565b61439b60e0860182613cbc565b505060088201546143ab816148ec565b610570610100860182613cbc565b60006143c58285613cc5565b6020820191506143d58284613c49565b5060140192915050565b60006143ea82613e95565b91506143f68284613cc5565b50602001919050565b60006143ea82614045565b60208101610f3e8284613c40565b604081016144268285613c31565b610afa6020830184613c40565b606081016144418286613c31565b61444e6020830185613c40565b610cb26040830184613cbc565b604081016144698285613c31565b610afa6020830184613cbc565b604081016144268285613c40565b604081016144698285613c40565b60208082528101610f3b8184613c5a565b60208101610f3e8284613cb3565b60208101610f3e8284613cbc565b604081016144268285613cbc565b604081016144698285613cbc565b604081016144e98285613cbc565b8181036020830152610cb28184613cdf565b606081016145098286613cbc565b61444e6020830185613cbc565b60208101610f3e8284613cd6565b60208082528101610f3b8184613cdf565b60208082528101610f3e81613d17565b60208082528101610f3e81613d41565b60208082528101610f3e81613d98565b60208082528101610f3e81613dc9565b60208082528101610f3e81613df9565b60208082528101610f3e81613e32565b60208082528101610f3e81613e5c565b60208082528101610f3e81613ec2565b60208082528101610f3e81613ef0565b60208082528101610f3e81613f1c565b60208082528101610f3e81613f6d565b60208082528101610f3e81613fb0565b60208082528101610f3e81613fdd565b60208082528101610f3e81614016565b60208082528101610f3e8161407e565b60208082528101610f3e816140a6565b60208082528101610f3e816140d2565b60208082528101610f3e816140fb565b60208082528101610f3e81614134565b60208082528101610f3e8161416d565b60208082528101610f3e8161419e565b60208082528101610f3e816141d0565b61014081016146a48285614209565b610afa610120830184613cbc565b61016081016146c18286614209565b6146cf610120830185613cbc565b610cb2610140830184613cbc565b61014081016146a482856142b5565b61016081016146c182866142b5565b610120810161470a828c613cbc565b614717602083018b613c40565b614724604083018a613cbc565b6147316060830189613cbc565b61473e6080830188613cbc565b61474b60a0830187613cb3565b61475860c0830186613cbc565b61476560e0830185613cbc565b614773610100830184613cbc565b9a9950505050505050505050565b6080810161478f8287613cbc565b61479c6020830186613c31565b6147a96040830185613cbc565b6147b66060830184613cbc565b95945050505050565b606081016147cd8286613cbc565b6147da6020830185613cbc565b610cb26040830184613cb3565b608081016147f58287613cbc565b61479c6020830186613cbc565b60a081016148108288613cbc565b61481d6020830187613cbc565b61482a6040830186613cbc565b6148376060830185613cbc565b6148446080830184613cbc565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610f3e82614866565b151590565b6000610f3e825b6000610f3e82614878565b60005b838110156148b557818101518382015260200161489d565b838111156108855750506000910152565b6000610f3e6148d4836109a0565b614866565b6000610f3e6148e7836109a0565b614872565b6000610f3e613cd1836109a0565b6000610f3e826000610f3e82614915565b601f01601f191690565b60601b90565b61492481614878565b811461311f57600080fd5b61492481614883565b614924816109a056fea365627a7a72315820bb43115d30655628200d5afe30051189200c7ec6c90ffb2293d993de61149d176c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0xd55197c6a78845a947ae4b0b41e518ef36f29944186968dc1be50a96d3a1f550",
				"urls": [
					"bzz-raw://ff058c3e7ecca107ab0eeac88194a2f12fe892721cc97e96f72324872f568124",
					"dweb:/ipfs/QmVg5TwSTXevRGZPx21tgcxHHYXMje4awDAxupotwdZn57"
				]
			},
			"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": "0xd55197c6a78845a947ae4b0b41e518ef36f29944186968dc1be50a96d3a1f550",
						"urls": [
							"bzz-raw://ff058c3e7ecca107ab0eeac88194a2f12fe892721cc97e96f72324872f568124",
							"dweb:/ipfs/QmVg5TwSTXevRGZPx21tgcxHHYXMje4awDAxupotwdZn57"
						]
					}
				},
				"version": 1
			}
		},
		"EmptyFuturesMarketManager": {
			"bytecode": "608060405234801561001057600080fd5b506103f1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063c03852fb1161008c578063f607d90011610066578063f607d90014610307578063fb77549c1461025c578063fc7b9c1814610326578063fe11edc914610347576100e9565b8063c03852fb1461023d578063ca0798851461025c578063e63bfadb146102ce576100e9565b80634dc25348116100c85780634dc25348146101c8578063614d08f8146101d057806395fafa4a146101d8578063a237e94d14610203576100e9565b80628d3aca146100ee57806326e04f9d146101ae578063375a7cba146101c8575b600080fd5b61015e6004803603602081101561010457600080fd5b81019060208101813564010000000081111561011f57600080fd5b82018360208201111561013157600080fd5b8035906020019184602083028401116401000000008311171561015357600080fd5b509092509050610366565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561019a578181015183820152602001610182565b505050509050019250505060405180910390f35b6101b661036e565b60408051918252519081900360200190f35b61015e610373565b6101b6610378565b61015e600480360360608110156101ee57600080fd5b5080359060208101359060400135151561039c565b6102296004803603602081101561021957600080fd5b50356001600160a01b03166103a5565b604080519115158252519081900360200190f35b6101b66004803603602081101561025357600080fd5b503515156103a5565b6102cc6004803603602081101561027257600080fd5b81019060208101813564010000000081111561028d57600080fd5b82018360208201111561029f57600080fd5b803590602001918460208302840111640100000000831117156102c157600080fd5b5090925090506103ab565b005b6102eb600480360360208110156102e457600080fd5b50356103a5565b604080516001600160a01b039092168252519081900360200190f35b61015e6004803603602081101561031d57600080fd5b503515156103af565b61032e6103b5565b6040805192835290151560208301528051918290030190f35b61015e6004803603604081101561035d57600080fd5b50803590602001355b606092915050565b600090565b606090565b7f456d707479467574757265734d61726b65744d616e616765720000000000000081565b60609392505050565b50600090565b5050565b50606090565b600080909156fea265627a7a723158201428727950bb2c60b1a6f5f2c47b056b2cfe44759599ec4ecba33f0a3a4f5eb164736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "addresses",
							"type": "address[]"
						}
					],
					"name": "addEndorsedAddresses",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allEndorsedAddresses",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allMarkets",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bool",
							"name": "proxiedMarkets",
							"type": "bool"
						}
					],
					"name": "allMarkets",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isEndorsed",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"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"
						},
						{
							"internalType": "bool",
							"name": "proxiedMarkets",
							"type": "bool"
						}
					],
					"name": "markets",
					"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": [
						{
							"internalType": "bool",
							"name": "proxiedMarkets",
							"type": "bool"
						}
					],
					"name": "numMarkets",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "addresses",
							"type": "address[]"
						}
					],
					"name": "removeEndorsedAddresses",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"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": "0x72ef359dfb319e4a74c7ea9ddd2f20778fe3b28ce74803ce52b224b3bcb805cd",
				"urls": [
					"bzz-raw://b13f63e5519c134567a1fe0d822b3db6f8d10599b6bc370e83e6c83eb21771d9",
					"dweb:/ipfs/QmPeb8WxPHChFpNdtNC6NBJoBTp41XRXRD5E5XZr49nK14"
				]
			},
			"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": "0x72ef359dfb319e4a74c7ea9ddd2f20778fe3b28ce74803ce52b224b3bcb805cd",
						"urls": [
							"bzz-raw://b13f63e5519c134567a1fe0d822b3db6f8d10599b6bc370e83e6c83eb21771d9",
							"dweb:/ipfs/QmPeb8WxPHChFpNdtNC6NBJoBTp41XRXRD5E5XZr49nK14"
						]
					}
				},
				"version": 1
			}
		},
		"SynthUtil": {
			"bytecode": "608060405234801561001057600080fd5b50604051620012fa380380620012fa83398101604081905261003191610067565b600080546001600160a01b0319166001600160a01b03929092169190911790556100b5565b80516100618161009e565b92915050565b60006020828403121561007957600080fd5b60006100858484610056565b949350505050565b60006001600160a01b038216610061565b6100a78161008d565b81146100b257600080fd5b50565b61123580620000c56000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630120be331461005c57806327fe55a614610085578063492dbcdd1461009b578063a827bf48146100b2578063d18ab376146100c5575b600080fd5b61006f61006a366004610e0c565b6100da565b60405161007c919061113b565b60405180910390f35b61008d610377565b60405161007c929190611060565b6100a361048b565b60405161007c93929190611085565b6100a36100c0366004610dc8565b610825565b6100cd610bca565b60405161007c919061112d565b6000806100e5610bd9565b905060006100f1610c6b565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b15801561012e57600080fd5b505afa158015610142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506101669190810190610eb0565b905060005b8181101561036c576040516320d7846760e21b81526000906001600160a01b0386169063835e119c906101a290859060040161113b565b60206040518083038186803b1580156101ba57600080fd5b505afa1580156101ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506101f29190810190610ece565b9050836001600160a01b031663654a60ac826001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561023c57600080fd5b505afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102749190810190610eb0565b6040516370a0823160e01b81526001600160a01b038516906370a08231906102a0908e9060040161103a565b60206040518083038186803b1580156102b857600080fd5b505afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102f09190810190610eb0565b8a6040518463ffffffff1660e01b815260040161030f93929190611105565b60206040518083038186803b15801561032757600080fd5b505afa15801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035f9190810190610eb0565b909501945060010161016b565b505050505b92915050565b6060806060610384610bd9565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156103bc57600080fd5b505afa1580156103d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f89190810190610e46565b905080610403610c6b565b6001600160a01b031663c2c8a676836040518263ffffffff1660e01b815260040161042e9190611048565b60006040518083038186803b15801561044657600080fd5b505afa15801561045a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104829190810190610e7b565b92509250509091565b6060806060600061049a610bd9565b905060006104a6610c6b565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e357600080fd5b505afa1580156104f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061051b9190810190610eb0565b9050606081604051908082528060200260200182016040528015610549578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015610578578160200160208202803883390190505b5090506060836040519080825280602002602001820160405280156105a7578160200160208202803883390190505b50905060005b84811015610815576040516320d7846760e21b81526000906001600160a01b0389169063835e119c906105e490859060040161113b565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106349190810190610ece565b9050806001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561066f57600080fd5b505afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106a79190810190610eb0565b8583815181106106b357fe5b602002602001018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106f857600080fd5b505afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107309190810190610eb0565b84838151811061073c57fe5b602002602001018181525050866001600160a01b031663654a60ac86848151811061076357fe5b602002602001015186858151811061077757fe5b6020026020010151631cd554d160e21b6040518463ffffffff1660e01b81526004016107a593929190611105565b60206040518083038186803b1580156107bd57600080fd5b505afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107f59190810190610eb0565b83838151811061080157fe5b6020908102919091010152506001016105ad565b5091975095509350505050909192565b60608060606000610834610bd9565b90506000610840610c6b565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108b59190810190610eb0565b90506060816040519080825280602002602001820160405280156108e3578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015610912578160200160208202803883390190505b509050606083604051908082528060200260200182016040528015610941578160200160208202803883390190505b50905060005b84811015610bb9576040516320d7846760e21b81526000906001600160a01b0389169063835e119c9061097e90859060040161113b565b60206040518083038186803b15801561099657600080fd5b505afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109ce9190810190610ece565b9050806001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0957600080fd5b505afa158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a419190810190610eb0565b858381518110610a4d57fe5b60209081029190910101526040516370a0823160e01b81526001600160a01b038216906370a0823190610a84908f9060040161103a565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ad49190810190610eb0565b848381518110610ae057fe5b602002602001018181525050866001600160a01b031663654a60ac868481518110610b0757fe5b6020026020010151868581518110610b1b57fe5b6020026020010151631cd554d160e21b6040518463ffffffff1660e01b8152600401610b4993929190611105565b60206040518083038186803b158015610b6157600080fd5b505afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b999190810190610eb0565b838381518110610ba557fe5b602090810291909101015250600101610947565b509199909850909650945050505050565b6000546001600160a01b031681565b6000805460405163dacb2d0160e01b81526001600160a01b039091169063dacb2d0190610c1690680a6f2dce8d0cae8d2f60bb1b906004016110c7565b60206040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c669190810190610dee565b905090565b6000805460405163dacb2d0160e01b81526001600160a01b039091169063dacb2d0190610c16906c45786368616e6765526174657360981b906004016110e6565b8035610371816111c9565b8051610371816111c9565b600082601f830112610cd357600080fd5b8151610ce6610ce182611170565b611149565b91508181835260208401935060208101905083856020840282011115610d0b57600080fd5b60005b8381101561036c5781610d218882610db2565b8452506020928301929190910190600101610d0e565b600082601f830112610d4857600080fd5b8151610d56610ce182611170565b91508181835260208401935060208101905083856020840282011115610d7b57600080fd5b60005b8381101561036c5781610d918882610db2565b8452506020928301929190910190600101610d7e565b8035610371816111e0565b8051610371816111e0565b8051610371816111e9565b600060208284031215610dda57600080fd5b6000610de68484610cac565b949350505050565b600060208284031215610e0057600080fd5b6000610de68484610cb7565b60008060408385031215610e1f57600080fd5b6000610e2b8585610cac565b9250506020610e3c85828601610da7565b9150509250929050565b600060208284031215610e5857600080fd5b815167ffffffffffffffff811115610e6f57600080fd5b610de684828501610cc2565b600060208284031215610e8d57600080fd5b815167ffffffffffffffff811115610ea457600080fd5b610de684828501610d37565b600060208284031215610ec257600080fd5b6000610de68484610db2565b600060208284031215610ee057600080fd5b6000610de68484610dbd565b6000610ef88383610fb6565b505060200190565b610f09816111a4565b82525050565b6000610f1a82611197565b610f24818561119b565b9350610f2f83611191565b8060005b83811015610f5d578151610f478882610eec565b9750610f5283611191565b925050600101610f33565b509495945050505050565b6000610f7382611197565b610f7d818561119b565b9350610f8883611191565b8060005b83811015610f5d578151610fa08882610eec565b9750610fab83611191565b925050600101610f8c565b610f09816111af565b610f09816111b2565b6000610fd560198361119b565b7f4d697373696e672053796e746865746978206164647265737300000000000000815260200192915050565b600061100e601d8361119b565b7f4d697373696e672045786368616e676552617465732061646472657373000000815260200192915050565b602081016103718284610f00565b602080825281016110598184610f0f565b9392505050565b604080825281016110718185610f0f565b90508181036020830152610de68184610f68565b606080825281016110968186610f0f565b905081810360208301526110aa8185610f68565b905081810360408301526110be8184610f68565b95945050505050565b604081016110d58284610fb6565b818103602083015261105981610fc8565b604081016110f48284610fb6565b818103602083015261105981611001565b606081016111138286610fb6565b6111206020830185610fb6565b610de66040830184610fb6565b602081016103718284610fbf565b602081016103718284610fb6565b60405181810167ffffffffffffffff8111828210171561116857600080fd5b604052919050565b600067ffffffffffffffff82111561118757600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000610371826111bd565b90565b6000610371826111a4565b6001600160a01b031690565b6111d2816111a4565b81146111dd57600080fd5b50565b6111d2816111af565b6111d2816111b256fea365627a7a723158203da177f68dfbf9ce69642e3857439697629c7fefbaa57f00661a0cedb01d56e56c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "0xb229b57e586e6b9cbf9219fb743b64b1d4a72225280f49192bbcb6b205006981",
				"urls": [
					"bzz-raw://33ee613ddd80b409281bfb2353f1cab9e7da2c36dc77becf5aa16efbb3599b72",
					"dweb:/ipfs/QmRN6dwjEzQ3VhMx6zfRiugSCefyx8Zu7s7m8oEN22NJmH"
				]
			},
			"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": "0xb229b57e586e6b9cbf9219fb743b64b1d4a72225280f49192bbcb6b205006981",
						"urls": [
							"bzz-raw://33ee613ddd80b409281bfb2353f1cab9e7da2c36dc77becf5aa16efbb3599b72",
							"dweb:/ipfs/QmRN6dwjEzQ3VhMx6zfRiugSCefyx8Zu7s7m8oEN22NJmH"
						]
					}
				},
				"version": 1
			}
		},
		"DappMaintenance": {
			"bytecode": "60806040526001805461ffff60a01b1916905534801561001e57600080fd5b506040516106d13803806106d18339818101604052602081101561004157600080fd5b5051806001600160a01b03811661009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280516000805160206106b18339815191529281900390910190a1506001600160a01b038116610141576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280516000805160206106b18339815191529281900390910190a15061051a806101976000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b1461010b57806393c2212514610113578063b33a5a001461012f578063c65a0ea21461014e578063ee02f27c1461015657610093565b80631627540c146100985780631d008652146100c057806353a47bb7146100df57806379ba509714610103575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610175565b005b6100be600480360360208110156100d657600080fd5b503515156101d1565b6100e7610270565b604080516001600160a01b039092168252519081900360200190f35b6100be61027f565b6100e761033b565b61011b61034a565b604080519115158252519081900360200190f35b6100be6004803603602081101561014557600080fd5b5035151561035a565b61011b6103c0565b6100be6004803603602081101561016c57600080fd5b503515156103d0565b61017d610436565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6101d9610436565b6001805460ff60a01b1916600160a01b8315159081029190911760ff60a81b1916600160a81b82021790915560408051918252517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea32916020908290030190a160408051821515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b031633146102c85760405162461bcd60e51b81526004018080602001828103825260358152602001806104826035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b600154600160a81b900460ff1681565b610362610436565b60018054821515600160a01b90810260ff60a01b199092169190911791829055604080519190920460ff161515815290517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea329181900360200190a150565b600154600160a01b900460ff1681565b6103d8610436565b60018054821515600160a81b90810260ff60a81b199092169190911791829055604080519190920460ff161515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6000546001600160a01b0316331461047f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806104b7602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820b7fdd2ebb4390e686479d96aa2ccebcabb447f63c8ac4405eca14a4415a51b3664736f6c63430005100032b532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c",
			"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": "0x75b1789f9a37b2f96d126780cddea6ae669f7868be9f319937be69aad74e37a0",
				"urls": [
					"bzz-raw://1f6f6c752d856160adb26acb22a8ff60e6a95c6b645ada1eed07524dee4b2987",
					"dweb:/ipfs/QmNZWuL5VhquxVrDE72RktUrVnpfyVHzaDfRah86UqRUvz"
				]
			},
			"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": "0x75b1789f9a37b2f96d126780cddea6ae669f7868be9f319937be69aad74e37a0",
						"urls": [
							"bzz-raw://1f6f6c752d856160adb26acb22a8ff60e6a95c6b645ada1eed07524dee4b2987",
							"dweb:/ipfs/QmNZWuL5VhquxVrDE72RktUrVnpfyVHzaDfRah86UqRUvz"
						]
					}
				},
				"version": 1
			}
		},
		"DynamicSynthRedeemer": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620019f7380380620019f7833981016040819052620000349162000192565b80826001600160a01b038116620000685760405162461bcd60e51b81526004016200005f9062000277565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b591849062000251565b60405180910390a15080600260006101000a8154816001600160a01b0302191690836001600160a01b031602179055505073__$e2b2b66cb30f6f0b0fc843f1278cce299a$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012b57600080fd5b505af415801562000140573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001669190810190620001d1565b60045550620002e09050565b80516200017f81620002bb565b92915050565b80516200017f81620002d5565b60008060408385031215620001a657600080fd5b6000620001b4858562000172565b9250506020620001c78582860162000172565b9150509250929050565b600060208284031215620001e457600080fd5b6000620001f2848462000185565b949350505050565b6200020581620002a7565b82525050565b620002058162000292565b60006200022560198362000289565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620002618285620001fa565b6200027060208301846200020b565b9392505050565b602080825281016200017f8162000216565b90815260200190565b60006001600160a01b0382166200017f565b90565b60006200017f8260006200017f8262000292565b620002c68162000292565b8114620002d257600080fd5b50565b620002c681620002a4565b61170780620002f06000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063614d08f8116100a2578063899ffef411610071578063899ffef4146101e35780638da5cb5b146101f857806399845dac14610200578063e6c0e6d514610213578063eda1122c1461021b57610116565b8063614d08f8146101b857806374185360146101c057806379ba5097146101c85780637c69febd146101d057610116565b80632dee8b7e116100e95780632dee8b7e1461016b578063322cd02e146101735780634c74183c146101865780634ecc1f771461019b57806353a47bb7146101a357610116565b806304f3bcec1461011b5780630cd0675c146101395780631627540c146101435780632af64bd314610156575b600080fd5b61012361022e565b604051610130919061152f565b60405180910390f35b61014161023d565b005b610141610151366004610ee2565b6102a9565b61015e610307565b60405161013091906114e5565b61014161041f565b610141610181366004610f86565b61047e565b61018e61053e565b60405161013091906114f3565b61015e610544565b6101ab61054d565b6040516101309190611444565b61018e61055c565b610141610577565b6101416106cd565b6101416101de366004610f68565b610769565b6101eb610841565b60405161013091906114d4565b6101ab6108b1565b61014161020e366004610f26565b6108c0565b61018e610993565b610141610229366004610f68565b610999565b6002546001600160a01b031681565b6102456109df565b60055460ff16156102715760405162461bcd60e51b8152600401610268906115fe565b60405180910390fd5b6005805460ff191660011790556040517f7a2913cddb07686623e9d442b08e598f63153b82d934cb6c5e09e6b0652c221f90600090a1565b6102b16109df565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906102fc908390611444565b60405180910390a150565b60006060610313610841565b905060005b815181101561041557600082828151811061032f57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906103809085906004016114f3565b60206040518083038186803b15801561039857600080fd5b505afa1580156103ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103d09190810190610f08565b6001600160a01b03161415806103fb57506000818152600360205260409020546001600160a01b0316155b1561040c576000935050505061041c565b50600101610318565b5060019150505b90565b6104276109df565b60055460ff166104495760405162461bcd60e51b81526004016102689061158e565b6005805460ff191690556040517f66993c4cde3b0d56d441001d7731b583158402f0b0531304dfa4d4772c18e50b90600090a1565b610486610a0b565b600061049183610a2d565b905081816001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016104c09190611452565b60206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105109190810190610fde565b101561052e5760405162461bcd60e51b81526004016102689061159e565b610539818484610b53565b505050565b60045490565b60055460ff1681565b6001546001600160a01b031681565b73223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b81565b6060610581610841565b905060005b81518110156106c957600082828151811061059d57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016105df9190611439565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161060b92919061150f565b60206040518083038186803b15801561062357600080fd5b505afa158015610637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061065b9190810190610f08565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906106b79084908490611501565b60405180910390a15050600101610586565b5050565b6001546001600160a01b031633146106f75760405162461bcd60e51b81526004016102689061155e565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261073a926001600160a01b039182169291169061149e565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6107716109df565b73__$e2b2b66cb30f6f0b0fc843f1278cce299a$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b557600080fd5b505af41580156107c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ed9190810190610fde565b81111561080c5760405162461bcd60e51b8152600401610268906115ee565b60048190556040517fc4f588c2b1b0db1ae244d5b46f69e0c5962875377386d78b2c9cd5b654f90637906102fc9083906114f3565b60408051600280825260608083018452926020830190803883390190505090506524b9b9bab2b960d11b8160008151811061087857fe5b6020026020010181815250506c45786368616e6765526174657360981b816001815181106108a257fe5b60200260200101818152505090565b6000546001600160a01b031681565b6108c8610a0b565b60005b818110156105395760006108f08484848181106108e457fe5b90506020020135610a2d565b905061098a8185858581811061090257fe5b90506020020135836001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016109359190611452565b60206040518083038186803b15801561094d57600080fd5b505afa158015610961573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109859190810190610fde565b610b53565b506001016108cb565b60045481565b6109a1610a0b565b60006109ac82610a2d565b90506106c98183836001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016109359190611452565b6000546001600160a01b03163314610a095760405162461bcd60e51b8152600401610268906115be565b565b60055460ff16610a095760405162461bcd60e51b8152600401610268906115ce565b600080610a38610d2b565b6001600160a01b03166332608039846040518263ffffffff1660e01b8152600401610a6391906114f3565b60206040518083038186803b158015610a7b57600080fd5b505afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ab39190810190610fc0565b90506001600160a01b038116610adb5760405162461bcd60e51b81526004016102689061156e565b806001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1457600080fd5b505afa158015610b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b4c9190810190610fc0565b9392505050565b60008111610b735760405162461bcd60e51b81526004016102689061154e565b631cd554d160e21b821415610b9a5760405162461bcd60e51b81526004016102689061157e565b600080610ba5610d44565b6001600160a01b0316630c71cd23856040518263ffffffff1660e01b8152600401610bd091906114f3565b604080518083038186803b158015610be757600080fd5b505afa158015610bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c1f9190810190610ffc565b915091506000610c3a60045484610d5f90919063ffffffff16565b9050600081118015610c4a575081155b610c665760405162461bcd60e51b8152600401610268906115ae565b6000610c78858363ffffffff610d5f16565b9050610c82610d2b565b6001600160a01b0316630d969cf5338888856040518563ffffffff1660e01b8152600401610cb39493929190611460565b600060405180830381600087803b158015610ccd57600080fd5b505af1158015610ce1573d6000803e3d6000fd5b505050507f8734fd5c7511ef698c61bce7dd8eefb212edea08cf7d9d4694e223c6f6121aef87338784604051610d1a94939291906114b9565b60405180910390a150505050505050565b6000610d3f6524b9b9bab2b960d11b610d7d565b905090565b6000610d3f6c45786368616e6765526174657360981b610d7d565b6000610d748383670de0b6b3a7640000610de1565b90505b92915050565b60008181526003602090815260408083205490516001600160a01b039091169182151591610dad91869101611419565b60405160208183030381529060405290610dda5760405162461bcd60e51b8152600401610268919061153d565b5092915050565b600080600a8304610df8868663ffffffff610e1d16565b81610dff57fe5b0490506005600a820610610e1157600a015b600a9004949350505050565b600082610e2c57506000610d77565b82820282848281610e3957fe5b0414610d745760405162461bcd60e51b8152600401610268906115de565b8035610d7781611692565b8051610d7781611692565b60008083601f840112610e7f57600080fd5b50813567ffffffffffffffff811115610e9757600080fd5b602083019150836020820283011115610eaf57600080fd5b9250929050565b8051610d77816116a9565b8035610d77816116b2565b8051610d77816116bb565b8051610d77816116b2565b600060208284031215610ef457600080fd5b6000610f008484610e57565b949350505050565b600060208284031215610f1a57600080fd5b6000610f008484610e62565b60008060208385031215610f3957600080fd5b823567ffffffffffffffff811115610f5057600080fd5b610f5c85828601610e6d565b92509250509250929050565b600060208284031215610f7a57600080fd5b6000610f008484610ec1565b60008060408385031215610f9957600080fd5b6000610fa58585610ec1565b9250506020610fb685828601610ec1565b9150509250929050565b600060208284031215610fd257600080fd5b6000610f008484610ecc565b600060208284031215610ff057600080fd5b6000610f008484610ed7565b6000806040838503121561100f57600080fd5b600061101b8585610ed7565b9250506020610fb685828601610eb6565b600061103883836110ba565b505060200190565b6110498161164d565b82525050565b61104981611626565b600061106382611614565b61106d8185611618565b93506110788361160e565b8060005b838110156110a6578151611090888261102c565b975061109b8361160e565b92505060010161107c565b509495945050505050565b61104981611631565b6110498161041c565b6110496110cf8261041c565b61041c565b61104981611636565b60006110e882611614565b6110f28185611618565b9350611102818560208601611658565b61110b81611688565b9093019392505050565b6000611122601d83611618565b7f4e6f2062616c616e6365206f662073796e746820746f2072656465656d000000815260200192915050565b600061115b603583611618565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006111b2600d83611618565b6c092dcecc2d8d2c840e6f2dce8d609b1b815260200192915050565b60006111db601283611618565b7110d85b9b9bdd081c995919595b481cd554d160721b815260200192915050565b6000611209601483611618565b73149959195b5c1d1a5bdb881cdd5cdc195b99195960621b815260200192915050565b6000611239601483611618565b73496e73756666696369656e742062616c616e636560601b815260200192915050565b6000611269601183611621565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611296601483611618565b7353796e7468206e6f742072656465656d61626c6560601b815260200192915050565b60006112c6602f83611618565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000611317601683611618565b75149959195b5c1d1a5bdb8819195858dd1a5d985d195960521b815260200192915050565b6000611349602183611618565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061138c601983611621565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006113c5600c83611618565b6b496e76616c6964207261746560a01b815260200192915050565b60006113ed601883611618565b7f526564656d7074696f6e206e6f742073757370656e6465640000000000000000815260200192915050565b60006114248261125c565b915061143082846110c3565b50602001919050565b60006114248261137f565b60208101610d77828461104f565b60208101610d778284611040565b6080810161146e8287611040565b61147b60208301866110ba565b61148860408301856110ba565b61149560608301846110ba565b95945050505050565b604081016114ac828561104f565b610b4c602083018461104f565b608081016114c7828761104f565b61147b6020830186611040565b60208082528101610d748184611058565b60208101610d7782846110b1565b60208101610d7782846110ba565b604081016114ac82856110ba565b6040810161151d82856110ba565b8181036020830152610f0081846110dd565b60208101610d7782846110d4565b60208082528101610d7481846110dd565b60208082528101610d7781611115565b60208082528101610d778161114e565b60208082528101610d77816111a5565b60208082528101610d77816111ce565b60208082528101610d77816111fc565b60208082528101610d778161122c565b60208082528101610d7781611289565b60208082528101610d77816112b9565b60208082528101610d778161130a565b60208082528101610d778161133c565b60208082528101610d77816113b8565b60208082528101610d77816113e0565b60200190565b5190565b90815260200190565b919050565b6000610d7782611641565b151590565b6000610d7782611626565b6001600160a01b031690565b6000610d7782611636565b60005b8381101561167357818101518382015260200161165b565b83811115611682576000848401525b50505050565b601f01601f191690565b61169b81611626565b81146116a657600080fd5b50565b61169b81611631565b61169b8161041c565b61169b8161163656fea365627a7a7231582026f3e95beaba5deac1fb6901020b96c4651ae45eb83785f6e010894ffe27cbb66c6578706572696d656e74616cf564736f6c63430005100040",
			"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": "discountRate",
							"type": "uint256"
						}
					],
					"name": "DiscountRateUpdated",
					"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": [],
					"name": "RedemptionResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "RedemptionSuspended",
					"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": "amountInsUSD",
							"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": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "discountRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getDiscountRate",
					"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": 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": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "redeem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "redeemAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountOfSynth",
							"type": "uint256"
						}
					],
					"name": "redeemPartial",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "redemptionActive",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"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": [],
					"name": "resumeRedemption",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_newRate",
							"type": "uint256"
						}
					],
					"name": "setDiscountRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "suspendRedemption",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc9560e9672c3dff5c5bea2a78274b3e808bd6cdf338cc4091df5a59c58990f6e",
				"urls": [
					"bzz-raw://be58903be92056038697f593c56d99f0aa66c1ad39bffd9346772ab16162a129",
					"dweb:/ipfs/QmVcUdcYM2ofoDPpCskVoLDHVUSiKfVeStn86bZkxYffut"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DynamicSynthRedeemer.sol": "DynamicSynthRedeemer"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DynamicSynthRedeemer.sol": {
						"keccak256": "0xc9560e9672c3dff5c5bea2a78274b3e808bd6cdf338cc4091df5a59c58990f6e",
						"urls": [
							"bzz-raw://be58903be92056038697f593c56d99f0aa66c1ad39bffd9346772ab16162a129",
							"dweb:/ipfs/QmVcUdcYM2ofoDPpCskVoLDHVUSiKfVeStn86bZkxYffut"
						]
					}
				},
				"version": 1
			}
		}
	}
}
