0 txs
0 calls
constructor
constructor(address registry, address oracle, address aggregatorAccessController, address registryAccessController)
functions
AGG_ACCESS_CONTROLLER
viewfunction AGG_ACCESS_CONTROLLER() view returns (address)
ORACLE
viewfunction ORACLE() view returns (address)
owner
viewfunction owner() view returns (address)
REGISTRY_ACCESS_CONTROLLER
viewfunction REGISTRY_ACCESS_CONTROLLER() view returns (address)
REGISTRY
viewfunction REGISTRY() view returns (address)
acceptAllOwnerships
nonpayablefunction acceptAllOwnerships()
acceptOwnership
nonpayablefunction acceptOwnership()
addGlobalReadAccessToRegistry
nonpayablefunction addGlobalReadAccessToRegistry(address user)
addNewTradingPair
nonpayablefunction addNewTradingPair(string pair_, string baseAsString_, string quoteAsString_, address base_, address quote_, uint8 decimals_, string description_, bool storeHistoricalData_)
addPairReadAccessToRegistry
nonpayablefunction addPairReadAccessToRegistry(address user, address base, address quote)
addReadAccessToAggregator
nonpayablefunction addReadAccessToAggregator(address user)
addWriteAccessToAggregator
nonpayablefunction addWriteAccessToAggregator(address user)
giveSignatureAccessToOracle
nonpayablefunction giveSignatureAccessToOracle(address user)
giveWriteAccessToOracle
nonpayablefunction giveWriteAccessToOracle(address user)
removeGlobalReadAccessToRegistry
nonpayablefunction removeGlobalReadAccessToRegistry(address user)
removePairReadAccessToRegistry
nonpayablefunction removePairReadAccessToRegistry(address user, address base, address quote)
removeReadAccessToAggregator
nonpayablefunction removeReadAccessToAggregator(address user)
removeSignatureAccessToOracle
nonpayablefunction removeSignatureAccessToOracle(address user)
removeWriteAccessToAggregator
nonpayablefunction removeWriteAccessToAggregator(address user)
removeWriteAccessToOracle
nonpayablefunction removeWriteAccessToOracle(address user)
setUpBasicAccessControl
nonpayablefunction setUpBasicAccessControl()
transferOwnership
nonpayablefunction transferOwnership(address to)
events
OwnershipTransferred
event OwnershipTransferred(address indexed from, address indexed to)
OwnershipTransferRequested
event OwnershipTransferRequested(address indexed from, address indexed to)
errors
No errors.
creation bytecode
0x6101006040523480156200001257600080fd5b5060405162005a0838038062005a088339810160408190526200003591620001af565b3380600081620000625760405162461bcd60e51b8152600401620000599062000216565b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156200009557620000958162000132565b5050506001600160a01b03841615801590620000b957506001600160a01b03831615155b8015620000ce57506001600160a01b03821615155b8015620000e357506001600160a01b03811615155b620001025760405162461bcd60e51b8152600401620000599062000284565b6001600160601b0319606094851b811660805292841b831660a05290831b821660c05290911b1660e052620002fa565b6001600160a01b0381163314156200015e5760405162461bcd60e51b815260040162000059906200024d565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008060008060808587031215620001c5578384fd5b8451620001d281620002e1565b6020860151909450620001e581620002e1565b6040860151909350620001f881620002e1565b60608601519092506200020b81620002e1565b939692955090935050565b60208082526018908201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604082015260600190565b60208082526017908201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604082015260600190565b60208082526033908201527f4d7573742070726f766964652070726f70657220616464726573736573206f6660408201527f206465706c6f79656420636f6e74726163747300000000000000000000000000606082015260800190565b6001600160a01b0381168114620002f757600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6155e862000420600039600081816106e9015281816109ec01528181610a5801528181610b9b01528181610c0b01528181610e0601528181610fb70152818161149a015261150c01526000818161048701528181610637015281816107c6015281816108660152818161094301528181610e7b01528181611027015281816110600152818161141801526115ba0152600081816103cb015281816104d4015281816107f40152818161097c01528181610add01528181610b6201528181610d9101528181610f32015261114101526000818161035b015281816105850152818161089601528181610d1c015281816111dc0152818161127b015281816112f0015261138001526155e86000f3fe60806040523480156200001157600080fd5b5060043610620001a85760003560e01c80637000cd2111620000ed578063a5f809981162000099578063f2fde38b116200006f578063f2fde38b1462000314578063f4c47eac146200032b578063fe6e0577146200034257620001a8565b8063a5f8099814620002dc578063ca55642714620002f3578063cbc60118146200030a57620001a8565b8063882ff19411620000cf578063882ff19414620002b15780638da5cb5b14620002bb5780639a7bdfbd14620002c557620001a8565b80637000cd21146200029057806379ba509714620002a757620001a8565b806338013f0211620001595780636901e9ad116200012f5780636901e9ad14620002585780636b92be6b146200026f5780636d0fcd56146200028657620001a8565b806338013f02146200022057806343a8ff62146200022a5780636220bdaf146200024157620001a8565b806314c58ade116200018f57806314c58ade14620001e85780631d1d1ffc14620001ff5780632e01d2f9146200020957620001a8565b806306433b1b14620001ad57806309a1f47914620001cf575b600080fd5b620001b762000359565b604051620001c6919062001968565b60405180910390f35b620001e6620001e036600462001784565b6200037d565b005b620001e6620001f936600462001784565b62000439565b620001e6620004be565b620001e66200021a36600462001784565b620008f5565b620001b76200097a565b620001e66200023b36600462001784565b6200099e565b620001e66200025236600462001784565b62000a23565b620001e66200026936600462001784565b62000a8f565b620001e66200028036600462001784565b62000b14565b620001b762000b99565b620001e6620002a1366004620017c9565b62000bbd565b620001e662000c7f565b620001e662000d10565b620001b762000ed5565b620001e6620002d636600462001784565b62000ee4565b620001e6620002ed366004620017c9565b62000f69565b620001e66200030436600462001784565b62000ff2565b620001b76200105e565b620001e66200032536600462001784565b62001082565b620001e66200033c3660046200181a565b620010c3565b620001e66200035336600462001784565b62001585565b7f000000000000000000000000000000000000000000000000000000000000000081565b62000387620015f1565b6001600160a01b0381166200039b57600080fd5b6040517f8823da6c0000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638823da6c906200040290849060040162001968565b600060405180830381600087803b1580156200041d57600080fd5b505af115801562000432573d6000803e3d6000fd5b5050505050565b62000443620015f1565b6001600160a01b0381166200045757600080fd5b6040517f7aa807400000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637aa80740906200040290849060040162001968565b620004c8620015f1565b306001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200052c57600080fd5b505afa15801562000541573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005679190620017aa565b6001600160a01b0316148015620006235750306001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620005dd57600080fd5b505afa158015620005f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006189190620017aa565b6001600160a01b0316145b8015620006d55750306001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200068f57600080fd5b505afa158015620006a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006ca9190620017aa565b6001600160a01b0316145b8015620007875750306001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200074157600080fd5b505afa15801562000756573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200077c9190620017aa565b6001600160a01b0316145b620007af5760405162461bcd60e51b8152600401620007a69062001b14565b60405180910390fd5b604051630f8a748b60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633e29d22c906200081d907f00000000000000000000000000000000000000000000000000000000000000009060040162001968565b600060405180830381600087803b1580156200083857600080fd5b505af11580156200084d573d6000803e3d6000fd5b5050604051630f3689af60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506379b44d789150620008bf907f00000000000000000000000000000000000000000000000000000000000000009060040162001968565b600060405180830381600087803b158015620008da57600080fd5b505af1158015620008ef573d6000803e3d6000fd5b50505050565b620008ff620015f1565b6001600160a01b0381166200091357600080fd5b6040517f666ac06d0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063666ac06d906200040290849060040162001968565b7f000000000000000000000000000000000000000000000000000000000000000081565b620009a8620015f1565b6001600160a01b038116620009bc57600080fd5b6040517f87874e310000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906387874e31906200040290849060040162001968565b62000a2d620015f1565b6001600160a01b03811662000a4157600080fd5b6040516305ef99e960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630bdf33d2906200040290849060040162001968565b62000a99620015f1565b6001600160a01b03811662000aad57600080fd5b6040517f0e316ab70000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630e316ab7906200040290849060040162001968565b62000b1e620015f1565b6001600160a01b03811662000b3257600080fd5b6040517feb12d61e0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063eb12d61e906200040290849060040162001968565b7f000000000000000000000000000000000000000000000000000000000000000081565b62000bc7620015f1565b6001600160a01b03831662000bdb57600080fd5b6040517f43929dd50000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906343929dd59062000c46908690869086906004016200197c565b600060405180830381600087803b15801562000c6157600080fd5b505af115801562000c76573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b0316331462000cac5760405162461bcd60e51b8152600401620007a69062001aa6565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b62000d1a620015f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379ba50976040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000d7657600080fd5b505af115801562000d8b573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379ba50976040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000deb57600080fd5b505af115801562000e00573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379ba50976040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000e6057600080fd5b505af115801562000e75573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379ba50976040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620008da57600080fd5b6000546001600160a01b031690565b62000eee620015f1565b6001600160a01b03811662000f0257600080fd5b6040517fa118f2490000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a118f249906200040290849060040162001968565b62000f73620015f1565b6001600160a01b03831662000f8757600080fd5b6040517f754e645b0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063754e645b9062000c46908690869086906004016200197c565b62000ffc620015f1565b6001600160a01b0381166200101057600080fd5b604051630f8a748b60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633e29d22c906200040290849060040162001968565b7f000000000000000000000000000000000000000000000000000000000000000081565b6200108c620015f1565b6001600160a01b038116620010b55760405162461bcd60e51b8152600401620007a69062001b97565b620010c08162001620565b50565b620010cd620015f1565b600088848484604051620010e190620016aa565b620010f0949392919062001a60565b604051809103906000f0801580156200110d573d6000803e3d6000fd5b506040517f7ff45e6f0000000000000000000000000000000000000000000000000000000081529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637ff45e6f906200117a908c908590600401620019df565b600060405180830381600087803b1580156200119557600080fd5b505af1158015620011aa573d6000803e3d6000fd5b50506040517f9eed82b00000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250639eed82b0915062001219908990899086906004016200197c565b600060405180830381600087803b1580156200123457600080fd5b505af115801562001249573d6000803e3d6000fd5b50506040517f045abf4b0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063045abf4b9150620012b8908990899086906004016200197c565b600060405180830381600087803b158015620012d357600080fd5b505af1158015620012e8573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000087878c6040516200132090620016b8565b6200132f94939291906200199f565b604051809103906000f0801580156200134c573d6000803e3d6000fd5b506040517f573a23af0000000000000000000000000000000000000000000000000000000081529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063573a23af90620013bf908c908c908c908c90889060040162001a0c565b600060405180830381600087803b158015620013da57600080fd5b505af1158015620013ef573d6000803e3d6000fd5b5050604051631e10723b60e31b81526001600160a01b038516925063f08391d8915062001441907f00000000000000000000000000000000000000000000000000000000000000009060040162001968565b600060405180830381600087803b1580156200145c57600080fd5b505af115801562001471573d6000803e3d6000fd5b5050604051631e10723b60e31b81526001600160a01b038416925063f08391d89150620014c3907f00000000000000000000000000000000000000000000000000000000000000009060040162001968565b600060405180830381600087803b158015620014de57600080fd5b505af1158015620014f3573d6000803e3d6000fd5b50506040516305ef99e960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250630bdf33d291506200154590849060040162001968565b600060405180830381600087803b1580156200156057600080fd5b505af115801562001575573d6000803e3d6000fd5b5050505050505050505050505050565b6200158f620015f1565b6001600160a01b038116620015a357600080fd5b604051630f3689af60e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906379b44d78906200040290849060040162001968565b6000546001600160a01b031633146200161e5760405162461bcd60e51b8152600401620007a69062001add565b565b6001600160a01b0381163314156200164c5760405162461bcd60e51b8152600401620007a69062001bce565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6119308062001c4b83390190565b612038806200357b83390190565b8035620016d38162001c34565b919050565b80358015158114620016d357600080fd5b600082601f830112620016fa578081fd5b813567ffffffffffffffff8082111562001718576200171862001c05565b604051601f8301601f1916810160200182811182821017156200173f576200173f62001c05565b60405282815284830160200186101562001757578384fd5b82602086016020830137918201602001929092529392505050565b803560ff81168114620016d357600080fd5b60006020828403121562001796578081fd5b8135620017a38162001c34565b9392505050565b600060208284031215620017bc578081fd5b8151620017a38162001c34565b600080600060608486031215620017de578182fd5b8335620017eb8162001c34565b92506020840135620017fd8162001c34565b915060408401356200180f8162001c34565b809150509250925092565b600080600080600080600080610100898b03121562001837578384fd5b883567ffffffffffffffff808211156200184f578586fd5b6200185d8c838d01620016e9565b995060208b013591508082111562001873578586fd5b620018818c838d01620016e9565b985060408b013591508082111562001897578586fd5b620018a58c838d01620016e9565b9750620018b560608c01620016c6565b9650620018c560808c01620016c6565b9550620018d560a08c0162001772565b945060c08b0135915080821115620018eb578384fd5b50620018fa8b828c01620016e9565b9250506200190b60e08a01620016d8565b90509295985092959890939650565b60008151808452815b81811015620019415760208185018101518683018201520162001923565b81811115620019535782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006001600160a01b038087168352808616602084015280851660408401525060806060830152620019d560808301846200191a565b9695505050505050565b600060408252620019f460408301856200191a565b90506001600160a01b03831660208301529392505050565b600060a0825262001a2160a08301886200191a565b828103602084015262001a3581886200191a565b6001600160a01b03968716604085015294861660608401525050921660809092019190915292915050565b60006080825262001a7560808301876200191a565b60ff86166020840152828103604084015262001a9281866200191a565b915050821515606083015295945050505050565b60208082526016908201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604082015260600190565b60208082526016908201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604082015260600190565b60208082526045908201527f4f7261636c6520666163746f7279206973206e6f74207468652063757272656e60408201527f74206f776e6572206f6620616c6c20746865206465706c6f79656420636f6e7460608201527f7261637473000000000000000000000000000000000000000000000000000000608082015260a00190565b60208082526018908201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604082015260600190565b60208082526017908201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604082015260600190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114620010c057600080fdfe60c06040523480156200001157600080fd5b5060405162001930380380620019308339810160408190526200003491620002cd565b3380600081620000615760405162461bcd60e51b8152600401620000589062000365565b60405180910390fd5b600080546001600160a01b0319166001600160a01b038481169190911790915581161562000094576200009481620000ff565b50508451620000ac915060039060208701906200017c565b507fff0000000000000000000000000000000000000000000000000000000000000060f884901b166080528151620000ec9060049060208501906200017c565b50151560f81b60a0525062000426915050565b6001600160a01b0381163314156200012b5760405162461bcd60e51b815260040162000058906200039c565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b8280546200018a90620003d3565b90600052602060002090601f016020900481019282620001ae5760008555620001f9565b82601f10620001c957805160ff1916838001178555620001f9565b82800160010185558215620001f9579182015b82811115620001f9578251825591602001919060010190620001dc565b50620002079291506200020b565b5090565b5b808211156200020757600081556001016200020c565b600082601f83011262000233578081fd5b81516001600160401b038082111562000250576200025062000410565b6040516020601f8401601f191682018101838111838210171562000278576200027862000410565b60405283825285840181018710156200028f578485fd5b8492505b83831015620002b2578583018101518284018201529182019162000293565b83831115620002c357848185840101525b5095945050505050565b60008060008060808587031215620002e3578384fd5b84516001600160401b0380821115620002fa578586fd5b620003088883890162000222565b95506020870151915060ff8216821462000320578485fd5b60408701519194508082111562000335578384fd5b50620003448782880162000222565b925050606085015180151581146200035a578182fd5b939692955090935050565b60208082526018908201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604082015260600190565b60208082526017908201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604082015260600190565b600281046001821680620003e857607f821691505b602082108114156200040a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160f81c60a05160f81c6114c26200046e6000396000818161026c015281816107d3015281816109b901528181610b420152610c690152600061029f01526114c26000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80638d1efdad116100b2578063b633620c11610081578063f08391d811610066578063f08391d81461023c578063f2fde38b1461024f578063feaf968c1461026257610136565b8063b633620c14610221578063c1f1b1b51461023457610136565b80638d1efdad146101cf5780638da5cb5b146101e25780639a6fc8f5146101ea578063b5ab58dc1461020e57610136565b806354fd4d50116101095780637284e416116100ee5780637284e416146101a857806379ba5097146101bd5780638205bf6a146101c757610136565b806354fd4d5014610198578063668a0f02146101a057610136565b8063076bb94a1461013b57806316d6b5f614610159578063313ce5671461016e57806350d25bcd14610183575b600080fd5b61014361026a565b6040516101509190611072565b60405180910390f35b61016161028e565b604051610150919061105e565b61017661029d565b60405161015091906113c8565b61018b6102c1565b604051610150919061107d565b61018b61039f565b61018b6103a4565b6101b0610463565b6040516101509190611086565b6101c56104f5565b005b61018b610583565b6101c56101dd366004610fea565b61065e565b6101616108ee565b6101fd6101f8366004611034565b6108fd565b604051610150959493929190611395565b61018b61021c366004610fd2565b610a8e565b61018b61022f366004610fd2565b610bb5565b6101b0610cde565b6101c561024a366004610f8f565b610ced565b6101c561025d366004610f8f565b610d7d565b6101fd610db7565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546001600160a01b031690565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546000906001600160a01b031615806103575750600254604051636756ac1160e01b81526001600160a01b0390911690636756ac119061030790339060040161105e565b60206040518083038186803b15801561031f57600080fd5b505afa158015610333573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103579190610fb2565b61037c5760405162461bcd60e51b81526004016103739061135e565b60405180910390fd5b5060065463ffffffff16600090815260056020526040902054601790810b900b90565b600681565b6002546000906001600160a01b0316158061043a5750600254604051636756ac1160e01b81526001600160a01b0390911690636756ac11906103ea90339060040161105e565b60206040518083038186803b15801561040257600080fd5b505afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a9190610fb2565b6104565760405162461bcd60e51b81526004016103739061135e565b5060065463ffffffff1690565b60606004805461047290611402565b80601f016020809104026020016040519081016040528092919081815260200182805461049e90611402565b80156104eb5780601f106104c0576101008083540402835291602001916104eb565b820191906000526020600020905b8154815290600101906020018083116104ce57829003601f168201915b5050505050905090565b6001546001600160a01b0316331461051f5760405162461bcd60e51b81526004016103739061115c565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6002546000906001600160a01b031615806106195750600254604051636756ac1160e01b81526001600160a01b0390911690636756ac11906105c990339060040161105e565b60206040518083038186803b1580156105e157600080fd5b505afa1580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106199190610fb2565b6106355760405162461bcd60e51b81526004016103739061135e565b5060065463ffffffff1660009081526005602052604090206001015467ffffffffffffffff1690565b6002546001600160a01b0316158061070a57506002546040517ff7c1ec9f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063f7c1ec9f906106ba90339060040161105e565b60206040518083038186803b1580156106d257600080fd5b505afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a9190610fb2565b6107265760405162461bcd60e51b81526004016103739061125e565b60065463ffffffff1660009081526005602090815260409182902082516060810184528154601781810b810b900b8252600160c01b900467ffffffffffffffff90811693820184905260019092015482169381019390935284161161079d5760405162461bcd60e51b8152600401610373906110d9565b6107a983610e106113d6565b67ffffffffffffffff1642106107d15760405162461bcd60e51b8152600401610373906112ca565b7f00000000000000000000000000000000000000000000000000000000000000001561082d576006805463ffffffff1690600061080d8361143d565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b5060408051606081018252601792830b815267ffffffffffffffff938416602080830191825263ffffffff428116848601908152600654909116600090815260059092529390209151825491518616600160c01b02940b77ffffffffffffffffffffffffffffffffffffffffffffffff9081167fffffffffffffffff00000000000000000000000000000000000000000000000090921691909117169290921782555160019190910180549190921667ffffffffffffffff19909116179055565b6000546001600160a01b031690565b60025460009081908190819081906001600160a01b0316158061099b5750600254604051636756ac1160e01b81526001600160a01b0390911690636756ac119061094b90339060040161105e565b60206040518083038186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190610fb2565b6109b75760405162461bcd60e51b81526004016103739061135e565b7f00000000000000000000000000000000000000000000000000000000000000006109f45760405162461bcd60e51b8152600401610373906111ca565b63ffffffff69ffffffffffffffffffff87161115610a2057506000935083925082915081905080610a85565b50505063ffffffff831660009081526005602090815260409182902082516060810184528154601781810b810b810b80845267ffffffffffffffff600160c01b909304831695840186905260019094015490911691909401819052869550920b925090835b91939590929450565b6002546000906001600160a01b03161580610b245750600254604051636756ac1160e01b81526001600160a01b0390911690636756ac1190610ad490339060040161105e565b60206040518083038186803b158015610aec57600080fd5b505afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190610fb2565b610b405760405162461bcd60e51b81526004016103739061135e565b7f0000000000000000000000000000000000000000000000000000000000000000610b7d5760405162461bcd60e51b8152600401610373906111ca565b63ffffffff821115610b9157506000610bb0565b5063ffffffff8116600090815260056020526040902054601790810b900b5b919050565b6002546000906001600160a01b03161580610c4b5750600254604051636756ac1160e01b81526001600160a01b0390911690636756ac1190610bfb90339060040161105e565b60206040518083038186803b158015610c1357600080fd5b505afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190610fb2565b610c675760405162461bcd60e51b81526004016103739061135e565b7f0000000000000000000000000000000000000000000000000000000000000000610ca45760405162461bcd60e51b8152600401610373906111ca565b63ffffffff821115610cb857506000610bb0565b5063ffffffff1660009081526005602052604090206001015467ffffffffffffffff1690565b60606003805461047290611402565b610cf5610edc565b6002546001600160a01b0382811691161415610d235760405162461bcd60e51b815260040161037390611295565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040513391907f953e92b1a6442e9c3242531154a3f6f6eb00b4e9c719ba8118fa6235e4ce89b690600090a350565b610d85610edc565b6001600160a01b038116610dab5760405162461bcd60e51b815260040161037390611227565b610db481610f08565b50565b60025460009081908190819081906001600160a01b03161580610e555750600254604051636756ac1160e01b81526001600160a01b0390911690636756ac1190610e0590339060040161105e565b60206040518083038186803b158015610e1d57600080fd5b505afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e559190610fb2565b610e715760405162461bcd60e51b81526004016103739061135e565b505060065463ffffffff1660008181526005602090815260409182902082516060810184528154601781810b810b810b80845267ffffffffffffffff600160c01b9093048316958401869052600190940154909116919094018190529397920b955093509091508490565b6000546001600160a01b03163314610f065760405162461bcd60e51b815260040161037390611193565b565b6001600160a01b038116331415610f315760405162461bcd60e51b815260040161037390611327565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208284031215610fa0578081fd5b8135610fab81611477565b9392505050565b600060208284031215610fc3578081fd5b81518015158114610fab578182fd5b600060208284031215610fe3578081fd5b5035919050565b60008060408385031215610ffc578081fd5b823567ffffffffffffffff81168114611013578182fd5b91506020830135601781900b8114611029578182fd5b809150509250929050565b600060208284031215611045578081fd5b813569ffffffffffffffffffff81168114610fab578182fd5b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b818110156110b257858101830151858201604001528201611096565b818111156110c35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526041908201527f41676772656761746f723a2052656365697665642074696d65207374616d702060408201527f6c657373207468616e2070726576696f7573207265636f726465642076616c7560608201527f6500000000000000000000000000000000000000000000000000000000000000608082015260a00190565b60208082526016908201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604082015260600190565b60208082526016908201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604082015260600190565b6020808252602a908201527f41676772656761746f7220646f6573206e6f74207265636f726420686973746f60408201527f726963616c206461746100000000000000000000000000000000000000000000606082015260800190565b60208082526018908201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604082015260600190565b6020808252600f908201527f4e6f207772697465206163636573730000000000000000000000000000000000604082015260600190565b6020808252818101527f41636365737320636f6e74726f6c6c657220697320616c726561647920736574604082015260600190565b6020808252603a908201527f41676772656761746f723a2055706461746520746f6f6b206c6f6e676572207460408201527f68616e20616e20686f75722c2068656e63652065787069726564000000000000606082015260800190565b60208082526017908201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604082015260600190565b6020808252600e908201527f4e6f207265616420616363657373000000000000000000000000000000000000604082015260600190565b69ffffffffffffffffffff9586168152602081019490945260408401929092526060830152909116608082015260a00190565b60ff91909116815260200190565b600067ffffffffffffffff8083168185168083038211156113f9576113f9611461565b01949350505050565b60028104600182168061141657607f821691505b6020821081141561143757634e487b7160e01b600052602260045260246000fd5b50919050565b600063ffffffff8083168181141561145757611457611461565b6001019392505050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610db457600080fdfea2646970667358221220777d182f86e6ca9211135ba411b8f18f178423b9bd6c07c113a39435f0f1212564736f6c6343000800003360e06040523480156200001157600080fd5b5060405162002038380380620020388339810160408190526200003491620002e9565b3380600081620000615760405162461bcd60e51b815260040162000058906200043e565b60405180910390fd5b600080546001600160a01b0319166001600160a01b038481169190911790915581161562000094576200009481620001c6565b5050506001600160a01b03831615801590620000b857506001600160a01b03821615155b620000c257600080fd5b600480546001600160a01b0386166001600160a01b03199091161790556001600160601b0319606084811b821660805283901b1660a05280516200010e90600390602084019062000243565b50604051630b1c5a7560e31b81526001600160a01b038516906358e2d3a8906200013f908690869060040162000424565b60206040518083038186803b1580156200015857600080fd5b505afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001939190620003fa565b60f81b7fff000000000000000000000000000000000000000000000000000000000000001660c052506200051892505050565b6001600160a01b038116331415620001f25760405162461bcd60e51b8152600401620000589062000475565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b8280546200025190620004ac565b90600052602060002090601f016020900481019282620002755760008555620002c0565b82601f106200029057805160ff1916838001178555620002c0565b82800160010185558215620002c0579182015b82811115620002c0578251825591602001919060010190620002a3565b50620002ce929150620002d2565b5090565b5b80821115620002ce5760008155600101620002d3565b60008060008060808587031215620002ff578384fd5b84516200030c81620004ff565b809450506020808601516200032181620004ff565b60408701519094506200033481620004ff565b60608701519093506001600160401b038082111562000351578384fd5b818801915088601f83011262000365578384fd5b8151818111156200037a576200037a620004e9565b604051601f8201601f1916810185018381118282101715620003a057620003a0620004e9565b60405281815283820185018b1015620003b7578586fd5b8592505b81831015620003da5783830185015181840186015291840191620003bb565b81831115620003eb57858583830101525b979a9699509497505050505050565b6000602082840312156200040c578081fd5b815160ff811681146200041d578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b60208082526018908201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604082015260600190565b60208082526017908201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604082015260600190565b600281046001821680620004c157607f821691505b60208210811415620004e357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200051557600080fd5b50565b60805160601c60a05160601c60c05160f81c611a1562000623600039600061024001526000818161034a0152818161044b015281816105b3015281816106ab015281816107380152818161092801528181610a2001528181610b4501528181610c3d01528181610cc901528181610dd301528181610ecb01528181611031015281816111290152818161132f01526114270152600081816103280152818161042901528181610591015281816106890152818161071601528181610906015281816109fe01528181610b2301528181610c1b01528181610db101528181610ea90152818161100f01528181611107015281816111530152818161130d01526114050152611a156000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063b633620c11610081578063f08391d811610066578063f08391d814610201578063f2fde38b14610214578063feaf968c146102275761011b565b8063b633620c146101e6578063ec342ad0146101f95761011b565b80638da5cb5b1461019f5780639a6fc8f5146101a75780639c579839146101cb578063b5ab58dc146101d35761011b565b8063668a0f02116100ee578063668a0f02146101705780637284e4161461017857806379ba50971461018d5780638205bf6a146101975761011b565b806316d6b5f614610120578063313ce5671461013e57806350d25bcd1461015357806354fd4d5014610168575b600080fd5b61012861022f565b60405161013591906116ea565b60405180910390f35b61014661023e565b6040516101359190611945565b61015b610262565b604051610135919061178e565b61015b6104c6565b61015b6104cb565b6101806106d1565b6040516101359190611797565b6101956107b2565b005b61015b610840565b610128610a46565b6101ba6101b5366004611677565b610a55565b604051610135959493929190611912565b610128610cc7565b61015b6101e136600461165f565b610ceb565b61015b6101f436600461165f565b610f49565b610128611151565b61019561020f366004611561565b611175565b610195610222366004611561565b611205565b6101ba61123f565b6002546001600160a01b031690565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546000906001600160a01b031615806102f857506002546040516304e162b360e41b81526001600160a01b0390911690634e162b30906102a89033906004016116ea565b60206040518083038186803b1580156102c057600080fd5b505afa1580156102d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f89190611584565b806103c25750600254604051631f5d2cc160e01b81526001600160a01b0390911690631f5d2cc1906103729033907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401611718565b60206040518083038186803b15801561038a57600080fd5b505afa15801561039e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c29190611584565b6103e75760405162461bcd60e51b81526004016103de906118db565b60405180910390fd5b600480546040517fd4c282a30000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163d4c282a391610471917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091016116fe565b60206040518083038186803b15801561048957600080fd5b505afa15801561049d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c191906115a4565b905090565b600681565b6002546000906001600160a01b0316158061056157506002546040516304e162b360e41b81526001600160a01b0390911690634e162b30906105119033906004016116ea565b60206040518083038186803b15801561052957600080fd5b505afa15801561053d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190611584565b8061062b5750600254604051631f5d2cc160e01b81526001600160a01b0390911690631f5d2cc1906105db9033907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401611718565b60206040518083038186803b1580156105f357600080fd5b505afa158015610607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062b9190611584565b6106475760405162461bcd60e51b81526004016103de906118db565b600480546040517fec62f44b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163ec62f44b91610471917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091016116fe565b600480546040517ffa820de90000000000000000000000000000000000000000000000000000000081526060926001600160a01b039092169163fa820de99161075e917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091016116fe565b60006040518083038186803b15801561077657600080fd5b505afa15801561078a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104c191908101906115bc565b6001546001600160a01b031633146107dc5760405162461bcd60e51b81526004016103de906117ca565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6002546000906001600160a01b031615806108d657506002546040516304e162b360e41b81526001600160a01b0390911690634e162b30906108869033906004016116ea565b60206040518083038186803b15801561089e57600080fd5b505afa1580156108b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190611584565b806109a05750600254604051631f5d2cc160e01b81526001600160a01b0390911690631f5d2cc1906109509033907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401611718565b60206040518083038186803b15801561096857600080fd5b505afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a09190611584565b6109bc5760405162461bcd60e51b81526004016103de906118db565b600480546040517f672ff44f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163672ff44f91610471917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091016116fe565b6000546001600160a01b031690565b60025460009081908190819081906001600160a01b03161580610af357506002546040516304e162b360e41b81526001600160a01b0390911690634e162b3090610aa39033906004016116ea565b60206040518083038186803b158015610abb57600080fd5b505afa158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af39190611584565b80610bbd5750600254604051631f5d2cc160e01b81526001600160a01b0390911690631f5d2cc190610b6d9033907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401611718565b60206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190611584565b610bd95760405162461bcd60e51b81526004016103de906118db565b600480546040517ffc58749e0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163fc58749e91610c65917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000918c910161175f565b60a06040518083038186803b158015610c7d57600080fd5b505afa158015610c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb59190611693565b939a9299509097509550909350915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546000906001600160a01b03161580610d8157506002546040516304e162b360e41b81526001600160a01b0390911690634e162b3090610d319033906004016116ea565b60206040518083038186803b158015610d4957600080fd5b505afa158015610d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d819190611584565b80610e4b5750600254604051631f5d2cc160e01b81526001600160a01b0390911690631f5d2cc190610dfb9033907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401611718565b60206040518083038186803b158015610e1357600080fd5b505afa158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190611584565b610e675760405162461bcd60e51b81526004016103de906118db565b600480546040517f15cd4ad20000000000000000000000000000000000000000000000000000000081526001600160a01b03909116916315cd4ad291610ef3917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009188910161173b565b60206040518083038186803b158015610f0b57600080fd5b505afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4391906115a4565b92915050565b6002546000906001600160a01b03161580610fdf57506002546040516304e162b360e41b81526001600160a01b0390911690634e162b3090610f8f9033906004016116ea565b60206040518083038186803b158015610fa757600080fd5b505afa158015610fbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdf9190611584565b806110a95750600254604051631f5d2cc160e01b81526001600160a01b0390911690631f5d2cc1906110599033907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401611718565b60206040518083038186803b15801561107157600080fd5b505afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190611584565b6110c55760405162461bcd60e51b81526004016103de906118db565b600480546040517f91624c950000000000000000000000000000000000000000000000000000000081526001600160a01b03909116916391624c9591610ef3917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009188910161173b565b7f000000000000000000000000000000000000000000000000000000000000000081565b61117d6114ae565b6002546001600160a01b03828116911614156111ab5760405162461bcd60e51b81526004016103de9061186f565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040513391907fcfa989179aa1c36c00d3edadf67bcb4f35d9516f4951d34f527ed93957adfbeb90600090a350565b61120d6114ae565b6001600160a01b0381166112335760405162461bcd60e51b81526004016103de90611838565b61123c816114da565b50565b60025460009081908190819081906001600160a01b031615806112dd57506002546040516304e162b360e41b81526001600160a01b0390911690634e162b309061128d9033906004016116ea565b60206040518083038186803b1580156112a557600080fd5b505afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd9190611584565b806113a75750600254604051631f5d2cc160e01b81526001600160a01b0390911690631f5d2cc1906113579033907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401611718565b60206040518083038186803b15801561136f57600080fd5b505afa158015611383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a79190611584565b6113c35760405162461bcd60e51b81526004016103de906118db565b600480546040517fbcfd032d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163bcfd032d9161144d917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091016116fe565b60a06040518083038186803b15801561146557600080fd5b505afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149d9190611693565b945094509450945094509091929394565b6000546001600160a01b031633146114d85760405162461bcd60e51b81526004016103de90611801565b565b6001600160a01b0381163314156115035760405162461bcd60e51b81526004016103de906118a4565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208284031215611572578081fd5b813561157d816119b2565b9392505050565b600060208284031215611595578081fd5b8151801515811461157d578182fd5b6000602082840312156115b5578081fd5b5051919050565b6000602082840312156115cd578081fd5b815167ffffffffffffffff808211156115e4578283fd5b818401915084601f8301126115f7578283fd5b81518181111561160957611609611983565b604051601f8201601f19168101602001838111828210171561162d5761162d611983565b604052818152838201602001871015611644578485fd5b611655826020830160208701611953565b9695505050505050565b600060208284031215611670578081fd5b5035919050565b600060208284031215611688578081fd5b813561157d816119c7565b600080600080600060a086880312156116aa578081fd5b85516116b5816119c7565b8095505060208601519350604086015192506060860151915060808601516116dc816119c7565b809150509295509295909350565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03938416815291909216602082015269ffffffffffffffffffff909116604082015260600190565b90815260200190565b60006020825282518060208401526117b6816040850160208701611953565b601f01601f19169190910160400192915050565b60208082526016908201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604082015260600190565b60208082526016908201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604082015260600190565b60208082526018908201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604082015260600190565b6020808252818101527f41636365737320636f6e74726f6c6c657220697320616c726561647920736574604082015260600190565b60208082526017908201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604082015260600190565b6020808252600e908201527f4e6f207265616420616363657373000000000000000000000000000000000000604082015260600190565b69ffffffffffffffffffff9586168152602081019490945260408401929092526060830152909116608082015260a00190565b60ff91909116815260200190565b60005b8381101561196e578181015183820152602001611956565b8381111561197d576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b038116811461123c57600080fd5b69ffffffffffffffffffff8116811461123c57600080fdfea2646970667358221220cea478609f3108328e11de55ebaa2201431fbf1763bb6bc151681c3056992c9164736f6c63430008000033a2646970667358221220f2ddced40ddd04dacdbdafd4391e86b44f5bec3cea27b1e8a03ac9e90412d48364736f6c63430008000033000000000000000000000000ba14552c833b34b68d2c382583da7153c9af40b3000000000000000000000000eb50334df908bd4189a7992af91fb6ca10c6e54f000000000000000000000000927f2e7c8fd57e083de7bd781e03852f41f06170000000000000000000000000308bd7c00cea63a33900b7ff684ef2ffdc694567