[ { "inputs": [ { "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": "address", "name": "_resolver", "type": "address" } ], "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": "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": "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" }, { "inputs": [], "name": "CONTRACT_NAME", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DECIMALS", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEE_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "currencyKey", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isResolverCached", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "issue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "nominateNewOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "nominatedOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rebuildCache", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "resolver", "outputs": [ { "internalType": "contract AddressResolver", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "resolverAddressesRequired", "outputs": [ { "internalType": "bytes32[]", "name": "addresses", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract TokenState", "name": "_tokenState", "type": "address" } ], "name": "setTokenState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTotalSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenState", "outputs": [ { "internalType": "contract TokenState", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferAndSettle", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "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" } ], "stateMutability": "nonpayable", "type": "function" }, { "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" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "transferableSynths", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620024443803806200244483398101604081905262000034916200029a565b85858585858580868686601287806001600160a01b0381166200009e5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a150600280546001600160a01b0319166001600160a01b03871617905560036200011f8582620003df565b5060046200012e8482620003df565b50506005805460ff929092166001600160a81b0319909216919091176101006001600160a01b03968716021790555050508316620001a45760405162461bcd60e51b815260206004820152601260248201527105f6f776e65722063616e6e6f7420626520360741b604482015260640162000095565b5060075550620004ab98505050505050505050565b6001600160a01b0381168114620001cf57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001fa57600080fd5b81516001600160401b0380821115620002175762000217620001d2565b604051601f8301601f19908116603f01168101908282118183101715620002425762000242620001d2565b81604052838152602092508660208588010111156200026057600080fd5b600091505b8382101562000284578582018301518183018401529082019062000265565b6000602085830101528094505050505092915050565b60008060008060008060c08789031215620002b457600080fd5b8651620002c181620001b9565b60208801519096506001600160401b0380821115620002df57600080fd5b620002ed8a838b01620001e8565b965060408901519150808211156200030457600080fd5b506200031389828a01620001e8565b94505060608701516200032681620001b9565b608088015160a089015191945092506200034081620001b9565b809150509295509295509295565b600181811c908216806200036357607f821691505b6020821081036200038457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003da576000816000526020600020601f850160051c81016020861015620003b55750805b601f850160051c820191505b81811015620003d657828155600101620003c1565b5050505b505050565b81516001600160401b03811115620003fb57620003fb620001d2565b62000413816200040c84546200034e565b846200038a565b602080601f8311600181146200044b5760008415620004325750858301515b600019600386901b1c1916600185901b178555620003d6565b600085815260208120601f198616915b828110156200047c578886015182559484019460019091019084016200045b565b50858210156200049b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611f8980620004bb6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063867904b411610104578063b014c3a3116100a2578063e90dd9e211610071578063e90dd9e2146103b1578063eb1edd61146103c4578063f7ea7a3d146103df578063ffff51d6146103f257600080fd5b8063b014c3a31461036f578063dbd06c8514610382578063dd62ed3e1461038b578063e73cced31461039e57600080fd5b806395d89b41116100de57806395d89b411461032e5780639dc29fac146103365780639f76980714610349578063a9059cbb1461035c57600080fd5b8063867904b4146102f3578063899ffef4146103065780638da5cb5b1461031b57600080fd5b80632e0f262511610171578063614d08f81161014b578063614d08f8146102c157806370a08231146102d057806374185360146102e357806379ba5097146102eb57600080fd5b80632e0f262514610287578063313ce567146102a157806353a47bb7146102ae57600080fd5b80631627540c116101ad5780631627540c1461024157806318160ddd1461025657806323b872dd1461026c5780632af64bd31461027f57600080fd5b806304f3bcec146101d457806306fdde0314610209578063095ea7b31461021e575b600080fd5b6005546101ec9061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610211610405565b6040516102009190611cff565b61023161022c366004611d2a565b610493565b6040519015158152602001610200565b61025461024f366004611d56565b61055e565b005b61025e6105bb565b604051908152602001610200565b61023161027a366004611d73565b61062e565b61023161064d565b61028f601281565b60405160ff9091168152602001610200565b60055461028f9060ff1681565b6001546101ec906001600160a01b031681565b61025e640a6f2dce8d60db1b81565b61025e6102de366004611d56565b610759565b6102546107c8565b610254610942565b610254610301366004611d2a565b610a31565b61030e610a90565b6040516102009190611db4565b6000546101ec906001600160a01b031681565b610211610bcf565b610254610344366004611d2a565b610bdc565b610254610357366004611d56565b610c40565b61023161036a366004611d2a565b610c96565b61023161037d366004611d2a565b610cd3565b61025e60075481565b61025e610399366004611df8565b610df5565b6102316103ac366004611d73565b610e6c565b6002546101ec906001600160a01b031681565b6101ec73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6102546103ed366004611e31565b610f92565b61025e610400366004611d56565b610ffb565b6003805461041290611e4a565b80601f016020809104026020016040519081016040528092919081815260200182805461043e90611e4a565b801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b505050505081565b600254604051633691826360e21b815233600482018190526001600160a01b03858116602484015260448301859052600093919291169063da46098c90606401600060405180830381600087803b1580156104ed57600080fd5b505af1158015610501573d6000803e3d6000fd5b50505050836001600160a01b0316816001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161054a91815260200190565b60405180910390a360019150505b92915050565b61056661110f565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020015b60405180910390a150565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610605573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106299190611e84565b905090565b600061063a8483611183565b610645848484611336565b949350505050565b600080610658610a90565b905060005b815181101561075057600082828151811061067a5761067a611e9d565b602090810291909101810151600081815260069092526040918290205460055492516321f8a72160e01b8152600481018390529193506001600160a01b0390811692610100900416906321f8a72190602401602060405180830381865afa1580156106e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070d9190611eb3565b6001600160a01b031614158061073857506000818152600660205260409020546001600160a01b0316155b15610747576000935050505090565b5060010161065d565b50600191505090565b6002546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a0823190602401602060405180830381865afa1580156107a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190611e84565b60006107d2610a90565b905060005b815181101561093e5760008282815181106107f4576107f4611e9d565b602002602001015190506000600560019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161086291907f5265736f6c766572206d697373696e67207461726765743a20000000000000008152601981019190915260390190565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161088e929190611ed0565b602060405180830381865afa1580156108ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cf9190611eb3565b60008381526006602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251868152918201529192507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68910160405180910390a150506001016107d7565b5050565b6001546001600160a01b031633146109bf5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084015b60405180910390fd5b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610a3a336114b5565b610a865760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920696e7465726e616c20636f6e74726163747320616c6c6f7765640060448201526064016109b6565b61093e82826114c0565b60408051600680825260e082019092526060916020820160c0803683370190505090506b53797374656d53746174757360a01b81600081518110610ad657610ad6611e9d565b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110610b0257610b02611e9d565b6020026020010181815250506524b9b9bab2b960d11b81600281518110610b2b57610b2b611e9d565b60200260200101818152505066119959541bdbdb60ca1b81600381518110610b5557610b55611e9d565b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b81600481518110610b8c57610b8c611e9d565b6020026020010181815250507027b33321b430b4b722bc31b430b733b2b960791b81600581518110610bc057610bc0611e9d565b60200260200101818152505090565b6004805461041290611e4a565b610be5336114b5565b610c315760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920696e7465726e616c20636f6e74726163747320616c6c6f7765640060448201526064016109b6565b610c3b8282611690565b505050565b610c4861110f565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fa538c4dcfe9fb148efee2952bafe34982d2d07d5fbb38ae5b44abf659a46bfd8906020016105b0565b6000610ca23383611183565b6001600160a01b038316610cc157610cba3383611690565b9050610558565b610ccc338484611823565b9392505050565b600080610cde611830565b6007546040516306c5a00b60e21b815233600482015260248101919091526001600160a01b039190911690631b16802c906044016060604051808303816000875af1158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d559190611ee9565b9250849150508115610dd0576002546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610da9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcd9190611e84565b90505b808411610ddd5783610ddf565b805b9350610dec338686611823565b95945050505050565b600254604051636eb1769f60e11b81526001600160a01b0384811660048301528381166024830152600092169063dd62ed3e90604401602060405180830381865afa158015610e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc9190611e84565b600080610e77611830565b6007546040516306c5a00b60e21b81526001600160a01b0388811660048301526024820192909252911690631b16802c906044016060604051808303816000875af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee9190611ee9565b9250849150508115610f6b576002546040516370a0823160e01b81526001600160a01b038881166004830152909116906370a0823190602401602060405180830381865afa158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190611e84565b90505b80841015610f795783610f7b565b805b9350610f88868686611336565b9695505050505050565b610f9a61110f565b60025460405163f7ea7a3d60e01b8152600481018390526001600160a01b039091169063f7ea7a3d90602401600060405180830381600087803b158015610fe057600080fd5b505af1158015610ff4573d6000803e3d6000fd5b5050505050565b600080611006611830565b6007546040516319d5c66560e01b81526001600160a01b03868116600483015260248201929092529116906319d5c66590604401606060405180830381865afa158015611057573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107b9190611ee9565b50506002546040516370a0823160e01b81526001600160a01b038681166004830152929350600092909116906370a0823190602401602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190611e84565b905080821115611105575060009392505050565b6106458183611847565b6000546001600160a01b031633146111815760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016109b6565b565b61118b611830565b6007546040516301670a7b60e21b81526001600160a01b038581166004830152602482019290925291169063059c29ec90604401602060405180830381865afa1580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112009190611e84565b1561125b5760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f74207472616e7366657220647572696e672077616974696e672070604482015264195c9a5bd960da1b60648201526084016109b6565b8061126583610ffb565b10156112cb5760405162461bcd60e51b815260206004820152602f60248201527f496e73756666696369656e742062616c616e636520616674657220616e79207360448201526e6574746c656d656e74206f77696e6760881b60648201526084016109b6565b6112d36118a5565b6001600160a01b03166342a28e216007546040518263ffffffff1660e01b815260040161130291815260200190565b60006040518083038186803b15801561131a57600080fd5b505afa15801561132e573d6000803e3d6000fd5b505050505050565b600254604051636eb1769f60e11b81526001600160a01b0385811660048301523360248301526000926000199291169063dd62ed3e90604401602060405180830381865afa15801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b09190611e84565b146114aa57600254604051636eb1769f60e11b81526001600160a01b038681166004830152336024830181905292169163da46098c91879190611442908790869063dd62ed3e906044015b602060405180830381865afa158015611418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143c9190611e84565b90611847565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561149157600080fd5b505af11580156114a5573d6000803e3d6000fd5b505050505b6106458484846118bf565b600061055882611ac5565b6002546040516370a0823160e01b81526001600160a01b0384811660048301529091169063b46310f690849061154590859085906370a08231906024015b602060405180830381865afa15801561151b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153f9190611e84565b90611b74565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561158b57600080fd5b505af115801561159f573d6000803e3d6000fd5b5050600254604080516318160ddd60e01b815290516001600160a01b03909216935063f7ea7a3d92506115fb91859185916318160ddd916004808201926020929091908290030181865afa15801561151b573d6000803e3d6000fd5b6040518263ffffffff1660e01b815260040161161991815260200190565b600060405180830381600087803b15801561163357600080fd5b505af1158015611647573d6000803e3d6000fd5b50506040518381526001600160a01b0385169250600091507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6002546040516370a0823160e01b81526001600160a01b038481166004830152600092169063b46310f69085906116d390869085906370a08231906024016113fb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561171957600080fd5b505af115801561172d573d6000803e3d6000fd5b5050600254604080516318160ddd60e01b815290516001600160a01b03909216935063f7ea7a3d925061178991869185916318160ddd916004808201926020929091908290030181865afa158015611418573d6000803e3d6000fd5b6040518263ffffffff1660e01b81526004016117a791815260200190565b600060405180830381600087803b1580156117c157600080fd5b505af11580156117d5573d6000803e3d6000fd5b5050604051848152600092506001600160a01b03861691507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600192915050565b60006106458484846118bf565b60006106296822bc31b430b733b2b960b91b611bd3565b6000828211156118995760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016109b6565b60006106458385611f2d565b60006106296b53797374656d53746174757360a01b611bd3565b60006001600160a01b038316158015906118e257506001600160a01b0383163014155b61192e5760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f207468697320616464726573730060448201526064016109b6565b6002546040516370a0823160e01b81526001600160a01b0386811660048301529091169063b46310f690869061197090869085906370a08231906024016113fb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156119b657600080fd5b505af11580156119ca573d6000803e3d6000fd5b50506002546040516370a0823160e01b81526001600160a01b038781166004830152909116925063b46310f691508590611a1090869085906370a08231906024016114fe565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611a5657600080fd5b505af1158015611a6a573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ab391815260200190565b60405180910390a35060019392505050565b6000611acf611c4f565b6001600160a01b0316826001600160a01b03161480611b065750611af1611830565b6001600160a01b0316826001600160a01b0316145b80611b295750611b14611c64565b6001600160a01b0316826001600160a01b0316145b80611b4c5750611b37611c83565b6001600160a01b0316826001600160a01b0316145b806105585750611b5a611c97565b6001600160a01b0316826001600160a01b03161492915050565b600080611b818385611f40565b905083811015610ccc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109b6565b600081815260066020908152604080832054905170026b4b9b9b4b7339030b2323932b9b99d1607d1b92810192909252603182018490526001600160a01b0316908115159060510160405160208183030381529060405290611c485760405162461bcd60e51b81526004016109b69190611cff565b5092915050565b600061062966119959541bdbdb60ca1b611bd3565b60006106297027b33321b430b4b722bc31b430b733b2b960791b611bd3565b60006106296524b9b9bab2b960d11b611bd3565b600061062973233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b611bd3565b6000815180845260005b81811015611cdf57602081850181015186830182015201611cc3565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610ccc6020830184611cb9565b6001600160a01b0381168114611d2757600080fd5b50565b60008060408385031215611d3d57600080fd5b8235611d4881611d12565b946020939093013593505050565b600060208284031215611d6857600080fd5b8135610ccc81611d12565b600080600060608486031215611d8857600080fd5b8335611d9381611d12565b92506020840135611da381611d12565b929592945050506040919091013590565b6020808252825182820181905260009190848201906040850190845b81811015611dec57835183529284019291840191600101611dd0565b50909695505050505050565b60008060408385031215611e0b57600080fd5b8235611e1681611d12565b91506020830135611e2681611d12565b809150509250929050565b600060208284031215611e4357600080fd5b5035919050565b600181811c90821680611e5e57607f821691505b602082108103611e7e57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611e9657600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ec557600080fd5b8151610ccc81611d12565b8281526040602082015260006106456040830184611cb9565b600080600060608486031215611efe57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8181038181111561055857610558611f17565b8082018082111561055857610558611f1756fea26469706673582212203f3501112efb92b422410d7c7e420fcb2a8a63edaf3b313856449db4a9007cea64736f6c634300081800330000000000000000000000001562f0ca760366243958d094b500a31795e4515300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000007802edc1ae4c39ed9f3dd2759007b9cb31b347a3735553440000000000000000000000000000000000000000000000000000000000000000000000000000000033de07fbbd31bb7bf8ed56d6602f35d14ac45d21000000000000000000000000000000000000000000000000000000000000000c53796e746872207379555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055379555344000000000000000000000000000000000000000000000000000000