4 txs
821 calls
constructor
constructor(address _governance)
functions
customPairs
viewfunction customPairs(address) view returns (uint256 fee, uint256 feeBase, uint256 typeCode)
getFee
viewfunction getFee(address pairAddress) view returns (uint256 fee, uint256 feeBase)
getPairTokens
viewfunction getPairTokens(address[] pairAddress) view returns (address[] token0, address[] token1)
getTypeCode
viewfunction getTypeCode(address pairAddress) view returns (uint256 typeCode)
governance
viewfunction governance() view returns (address)
owner
viewfunction owner() view returns (address)
pairs
viewfunction pairs(address) view returns (address factory, address token0, address token1)
protocolList
viewfunction protocolList(uint256) view returns (address)
protocolListLength
viewfunction protocolListLength() view returns (uint256)
protocols
viewfunction protocols(address) view returns (bytes32 name, uint256 fee, uint256 feeBase, uint256 typeCode)
execute
nonpayablefunction execute(bytes32[] params)
init
nonpayablefunction init(bytes32[] _name, address[] _factory, uint256[] _fee, uint256[] _feeBase, uint256[] _typeCode)
registerPair
nonpayablefunction registerPair(address token0, address token1, address pairAddress, uint256 fee, uint256 feeBase, uint256 typeCode)
registerPairByAddress
nonpayablefunction registerPairByAddress(address _factory, address pairAddress)
registerPairByIndex
nonpayablefunction registerPairByIndex(address _factory, uint256 index)
registerPairByTokens
nonpayablefunction registerPairByTokens(address _factory, address _token0, address _token1)
registerPairByTokensV3
nonpayablefunction registerPairByTokensV3(address _factory, address _token0, address _token1, uint256 pairIndex)
registerPairsByAddress
nonpayablefunction registerPairsByAddress(address _factory, address[] pairAddress)
registerPairsByAddress2
nonpayablefunction registerPairsByAddress2(address[] _factory, address[] pairAddress)
registerPairsByIndex
nonpayablefunction registerPairsByIndex(address _factory, uint256[] index)
registerPairsByTokens
nonpayablefunction registerPairsByTokens(address _factory, address[] _token0, address[] _token1)
registerPairsByTokensV3
nonpayablefunction registerPairsByTokensV3(address _factory, address[] _token0, address[] _token1, uint256[] _pairIndex)
registerProtocol
nonpayablefunction registerProtocol(bytes32 _name, address _factory, uint256 _fee, uint256 _feeBase, uint256 _typeCode)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CustomPairRegister
event CustomPairRegister(address indexed pair, uint256 fee, uint256 feeBase, uint256 typeCode)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PairRegister
event PairRegister(address indexed factory, address indexed pair, address token0, address token1)
ProtocolRegister
event ProtocolRegister(address indexed factory, bytes32 name, uint256 fee, uint256 feeBase, uint256 typeCode)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604051620034be380380620034be833981810160405260208110156200003757600080fd5b505160006200004e6001600160e01b03620000be16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b0319166001600160a01b0392909216919091179055620000c2565b3390565b6133ec80620000d26000396000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c8063715018a6116100ee5780639c5eda8411610097578063ed706dbd11610071578063ed706dbd14610ba7578063edf30da914610c67578063f2fde38b14610ca2578063fe33b30214610cd5576101a3565b80639c5eda8414610ad7578063b88c914814610b22578063d52f6d0214610b6e576101a3565b80638d8a7c8a116100c85780638d8a7c8a14610a0f5780638da5cb5b14610a425780639179f07814610a4a576101a3565b8063715018a61461097d578063837cd3fa146109855780638af7c6491461099f576101a3565b806326638a0a1161015057806346079b881161012a57806346079b881461085157806353ec54ae146108965780635aa6e67514610975576101a3565b806326638a0a146105eb5780632dc014b31461064457806330f802e5146107fc576101a3565b80630d36c409116101815780630d36c4091461028a57806314406f66146103b15780631f2a1a2b146104e2576101a3565b806307742f44146101a857806307b1d728146101f357806307c28c2614610244575b600080fd5b6101f1600480360360808110156101be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101358216916040820135169060600135610d40565b005b6102266004803603602081101561020957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e96565b60408051938452602084019290925282820152519081900360600190f35b6102616004803603602081101561025a57600080fd5b5035610eb6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f1600480360360408110156102a057600080fd5b8101906020810181356401000000008111156102bb57600080fd5b8201836020820111156102cd57600080fd5b803590602001918460208302840111640100000000831117156102ef57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561033f57600080fd5b82018360208201111561035157600080fd5b8035906020019184602083028401116401000000008311171561037357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610eea945050505050565b6101f1600480360360808110156103c757600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156103ff57600080fd5b82018360208201111561041157600080fd5b8035906020019184602083028401116401000000008311171561043357600080fd5b91939092909160208101903564010000000081111561045157600080fd5b82018360208201111561046357600080fd5b8035906020019184602083028401116401000000008311171561048557600080fd5b9193909290916020810190356401000000008111156104a357600080fd5b8201836020820111156104b557600080fd5b803590602001918460208302840111640100000000831117156104d757600080fd5b5090925090506110cc565b610552600480360360208110156104f857600080fd5b81019060208101813564010000000081111561051357600080fd5b82018360208201111561052557600080fd5b8035906020019184602083028401116401000000008311171561054757600080fd5b509092509050611346565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561059657818101518382015260200161057e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156105d55781810151838201526020016105bd565b5050505090500194505050505060405180910390f35b61061e6004803603602081101561060157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114e9565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6101f1600480360360a081101561065a57600080fd5b81019060208101813564010000000081111561067557600080fd5b82018360208201111561068757600080fd5b803590602001918460208302840111640100000000831117156106a957600080fd5b9193909290916020810190356401000000008111156106c757600080fd5b8201836020820111156106d957600080fd5b803590602001918460208302840111640100000000831117156106fb57600080fd5b91939092909160208101903564010000000081111561071957600080fd5b82018360208201111561072b57600080fd5b8035906020019184602083028401116401000000008311171561074d57600080fd5b91939092909160208101903564010000000081111561076b57600080fd5b82018360208201111561077d57600080fd5b8035906020019184602083028401116401000000008311171561079f57600080fd5b9193909290916020810190356401000000008111156107bd57600080fd5b8201836020820111156107cf57600080fd5b803590602001918460208302840111640100000000831117156107f157600080fd5b509092509050611512565b6101f1600480360360c081101561081257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101358216916040820135169060608101359060808101359060a00135611735565b6101f16004803603606081101561086757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160409091013516611853565b6101f1600480360360608110156108ac57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156108e457600080fd5b8201836020820111156108f657600080fd5b8035906020019184602083028401116401000000008311171561091857600080fd5b91939092909160208101903564010000000081111561093657600080fd5b82018360208201111561094857600080fd5b8035906020019184602083028401116401000000008311171561096a57600080fd5b5090925090506119d0565b610261611c63565b6101f1611c7f565b61098d611d7f565b60408051918252519081900360200190f35b6101f1600480360360208110156109b557600080fd5b8101906020810181356401000000008111156109d057600080fd5b8201836020820111156109e257600080fd5b80359060200191846020830284011164010000000083111715610a0457600080fd5b509092509050611d85565b61098d60048036036020811015610a2557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166120f8565b61026161218c565b6101f160048036036040811015610a6057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169190810190604081016020820135640100000000811115610a9857600080fd5b820183602082011115610aaa57600080fd5b80359060200191846020830284011164010000000083111715610acc57600080fd5b5090925090506121a8565b6101f1600480360360a0811015610aed57600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff60208201351690604081013590606081013590608001356122ef565b610b5560048036036020811015610b3857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612404565b6040805192835260208301919091528051918290030190f35b6101f160048036036040811015610b8457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356124a7565b6101f160048036036040811015610bbd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169190810190604081016020820135640100000000811115610bf557600080fd5b820183602082011115610c0757600080fd5b80359060200191846020830284011164010000000083111715610c2957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506125cc945050505050565b6101f160048036036040811015610c7d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166126bd565b6101f160048036036020811015610cb857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612795565b610d0860048036036020811015610ceb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661291f565b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020819052604090912081015414610dd757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c696420747970650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f5eced48000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301528481166024830152604482018490529151600092871691635eced480916064808301926020929190829003018186803b158015610e5757600080fd5b505afa158015610e6b573d6000803e3d6000fd5b505050506040513d6020811015610e8157600080fd5b50519050610e8f858261295d565b5050505050565b600260208190526000918252604090912080546001820154919092015483565b60048181548110610ec357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b805182518114610f5b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6172726179206c656e677468206e6f74206d6174636800000000000000000000604482015290519081900360640190fd5b60005b818110156110c657600060036000868481518110610f7857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154118015611021575060036000858381518110610fd657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154600314155b61108c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f746f636f6c206e6f7420726567636f6e697a6564000000000000000000604482015290519081900360640190fd5b6110be84828151811061109b57fe5b60200260200101518483815181106110af57fe5b60200260200101516001612965565b600101610f5e565b50505050565b73ffffffffffffffffffffffffffffffffffffffff871660009081526003602081905260409091208101541461116357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c696420747970650000000000000000000000000000000000000000604482015290519081900360640190fd5b848381146111d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6172726179206c656e677468206e6f74206d6174636800000000000000000000604482015290519081900360640190fd5b60005b8181101561133b5760008973ffffffffffffffffffffffffffffffffffffffff16635eced4808a8a8581811061120757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1689898681811061123057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1688888781811061125957fe5b905060200201356040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060206040518083038186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506040513d602081101561132457600080fd5b505190506113328a8261295d565b506001016111d5565b505050505050505050565b606080828067ffffffffffffffff8111801561136157600080fd5b5060405190808252806020026020018201604052801561138b578160200160208202803683370190505b5092508067ffffffffffffffff811180156113a557600080fd5b506040519080825280602002602001820160405280156113cf578160200160208202803683370190505b50915060005b818110156114e0576000600160008888858181106113ef57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685838151811061147957fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600282015485519116908590849081106114b257fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152506001016113d5565b50509250929050565b600360208190526000918252604090912080546001820154600283015492909301549092919084565b61151a612d5c565b60005473ffffffffffffffffffffffffffffffffffffffff9081169116146115a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6004541561161257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f416c726561647920696e69740000000000000000000000000000000000000000604482015290519081900360640190fd5b88878114801561162157508786145b801561162c57508582145b61169757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6c656e677468206e6f74206d6174636800000000000000000000000000000000604482015290519081900360640190fd5b60005b818110156117275761171f8c8c838181106116b157fe5b905060200201358b8b848181106116c457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a858181106116ed57fe5b9050602002013589898681811061170057fe5b9050602002013588888781811061171357fe5b90506020020135612d60565b60010161169a565b505050505050505050505050565b600554604080517fa3818b3b000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163a3818b3b91602480820192602092909190829003018186803b1580156117a657600080fd5b505afa1580156117ba573d6000803e3d6000fd5b505050506040513d60208110156117d057600080fd5b505161183d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b61184b868686868686612fcb565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602081905260409091200154158015906118b4575073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020819052604090912081015414155b61191f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c696420747970650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528381166024830152915160009286169163e6a43905916044808301926020929190829003018186803b15801561199857600080fd5b505afa1580156119ac573d6000803e3d6000fd5b505050506040513d60208110156119c257600080fd5b505190506110c6848261295d565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360208190526040909120015415801590611a31575073ffffffffffffffffffffffffffffffffffffffff8516600090815260036020819052604090912081015414155b611a9c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c696420747970650000000000000000000000000000000000000000604482015290519081900360640190fd5b82818114611b0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6172726179206c656e677468206e6f74206d6174636800000000000000000000604482015290519081900360640190fd5b60005b81811015611c5a5760008773ffffffffffffffffffffffffffffffffffffffff1663e6a43905888885818110611b4057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16878786818110611b6957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015611c1957600080fd5b505afa158015611c2d573d6000803e3d6000fd5b505050506040513d6020811015611c4357600080fd5b50519050611c51888261295d565b50600101611b0e565b50505050505050565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b611c87612d5c565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614611d1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60045490565b600554604080517fb15866e6000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163b15866e691602480820192602092909190829003018186803b158015611df657600080fd5b505afa158015611e0a573d6000803e3d6000fd5b505050506040513d6020811015611e2057600080fd5b5051611e8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b60018111611efc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c6964206c656e677468000000000000000000000000000000000000604482015290519081900360640190fd5b600082826000818110611f0b57fe5b60200291909101359150506006821415611fca57807f726567697374657250726f746f636f6c000000000000000000000000000000001415611fc557611fbf83836001818110611f5757fe5b9050602002013584846002818110611f6b57fe5b9050602002013560601c85856003818110611f8257fe5b9050602002013560001c86866004818110611f9957fe5b9050602002013560001c87876005818110611fb057fe5b9050602002013560001c612d60565b506120f4565b61208d565b600782141561208d57807f7265676973746572506169720000000000000000000000000000000000000000141561208d57611fbf8383600181811061200b57fe5b9050602002013560601c8484600281811061202257fe5b9050602002013560601c8585600381811061203957fe5b9050602002013560601c8686600481811061205057fe5b9050602002013560001c8787600581811061206757fe5b9050602002013560001c8888600681811061207e57fe5b9050602002013560001c612fcb565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c696420706172616d65746572730000000000000000000000000000604482015290519081900360640190fd5b5050565b73ffffffffffffffffffffffffffffffffffffffff80821660009081526001602052604081205490911680156121595773ffffffffffffffffffffffffffffffffffffffff8116600090815260036020819052604090912001549150612186565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600260208190526040909120015491505b50919050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360208190526040909120015461223d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f746f636f6c206e6f7420726567636f6e697a6564000000000000000000604482015290519081900360640190fd5b8060005b81811015610e8f5760008573ffffffffffffffffffffffffffffffffffffffff16631e3dd18b86868581811061227357fe5b905060200201356040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156122ae57600080fd5b505afa1580156122c2573d6000803e3d6000fd5b505050506040513d60208110156122d857600080fd5b505190506122e6868261295d565b50600101612241565b600554604080517fa3818b3b000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163a3818b3b91602480820192602092909190829003018186803b15801561236057600080fd5b505afa158015612374573d6000803e3d6000fd5b505050506040513d602081101561238a57600080fd5b50516123f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b610e8f8585858585612d60565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260016020526040812054909182911680156124705773ffffffffffffffffffffffffffffffffffffffff81166000908152600360205260409020600181015460029091015490935091506124a1565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020526040902060018101549054935091505b50915091565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600360208190526040909120015461253c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f746f636f6c206e6f7420726567636f6e697a6564000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff16631e3dd18b836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561258f57600080fd5b505afa1580156125a3573d6000803e3d6000fd5b505050506040513d60208110156125b957600080fd5b505190506125c7838261295d565b505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020819052604090912001541580159061262d575073ffffffffffffffffffffffffffffffffffffffff8216600090815260036020819052604090912081015414155b61269857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f746f636f6c206e6f7420726567636f6e697a6564000000000000000000604482015290519081900360640190fd5b805160005b818110156110c6576126b5848483815181106110af57fe5b60010161269d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020819052604090912001541580159061271e575073ffffffffffffffffffffffffffffffffffffffff8216600090815260036020819052604090912081015414155b61278957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f746f636f6c206e6f7420726567636f6e697a6564000000000000000000604482015290519081900360640190fd5b6120f482826001612965565b61279d612d5c565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461282657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061336e6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600160208190526000918252604090912080549181015460029091015473ffffffffffffffffffffffffffffffffffffffff92831692918216911683565b6120f4828260005b73ffffffffffffffffffffffffffffffffffffffff82166129d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806133946023913960400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612a1b57600080fd5b505af1158015612a2f573d6000803e3d6000fd5b505050506040513d6020811015612a4557600080fd5b5051604080517fd21220a7000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff86169163d21220a791600480830192602092919082900301818787803b158015612ab457600080fd5b505af1158015612ac8573d6000803e3d6000fd5b505050506040513d6020811015612ade57600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff80821690831610612b6957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c696420746f6b656e73206f72646572000000000000000000000000604482015290519081900360640190fd5b8215612c9f57604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528381166024830152915160009288169163e6a43905916044808301926020929190829003018186803b158015612be857600080fd5b505afa158015612bfc573d6000803e3d6000fd5b505050506040513d6020811015612c1257600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff85811690821614612c9d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f696e76616c696420706169720000000000000000000000000000000000000000604482015290519081900360640190fd5b505b73ffffffffffffffffffffffffffffffffffffffff8085166000818152600160208181526040928390208054868c167fffffffffffffffffffffffff00000000000000000000000000000000000000009182168117835593820180548a891690831681179091556002909201805497891697909116871790558351908152908101949094528151929390927f07860c96452446c5761a5adeb8371913b7cdcadcae0b6de6a2185692d0abcd19929181900390910190a35050505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8416612de257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c69642070726f746f636f6c20616464726573730000000000000000604482015290519081900360640190fd5b81831115612e5157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f46656520746f6f206c6172676500000000000000000000000000000000000000604482015290519081900360640190fd5b60008211612ec057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f746f636f6c206e6f7420726567636f6e697a6564000000000000000000604482015290519081900360640190fd5b60408051608080820183528782526020808301878152838501878152606080860188815273ffffffffffffffffffffffffffffffffffffffff8c16600081815260038088528a822099518a5595516001808b0191909155945160028a0155915197909401969096556004805492830181559095527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000168217905584518a8152918201889052818501879052928101859052925191927f4647302d46fbbda75aa1966c4e2d24de38981639223ee539cc8409190780c192929081900390910190a25050505050565b73ffffffffffffffffffffffffffffffffffffffff861661304d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e76616c696420746f6b656e20616464726573730000000000000000000000604482015290519081900360640190fd5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16106130e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c696420746f6b656e206f7264657200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff841661316957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c696420706169722061646472657373000000000000000000000000604482015290519081900360640190fd5b818311156131d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f46656520746f6f206c6172676500000000000000000000000000000000000000604482015290519081900360640190fd5b6000821161324757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f746f636f6c206e6f7420726567636f6e697a6564000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808516600081815260016020818152604080842080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116825581850180548f8a16908316811790915560029283018054998f169990921689179091558184528286208b81559485018a905593018790558051928352908201949094528351929391927f07860c96452446c5761a5adeb8371913b7cdcadcae0b6de6a2185692d0abcd19929181900390910190a36040805184815260208101849052808201839052905173ffffffffffffffffffffffffffffffffffffffff8616917f468d5e8323e9769eda1c0370b2f3c84ea8e2424256a85fd5fb8cf06653c5ad75919081900360600190a250505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373496e76616c6964207061697220616464726573732f50616972206e6f7420666f756e64a2646970667358221220545e91f0bcfc4a609ca36bc368b397fa0d27683cacdcb6f21fb90f60b61c4a2964736f6c634300060b0033000000000000000000000000bbae31222cbfd33fa9a60acd50f321ac90a10621