[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint112", "name": "reserve0", "type": "uint112" }, { "indexed": false, "internalType": "uint112", "name": "reserve1", "type": "uint112" } ], "name": "Sync", "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": "MINIMUM_LIQUIDITY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "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": "token", "type": "address" } ], "name": "approveToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blockTimestampLast", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "vault", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "checkVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "vault", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "depositVault", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPairInfo", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint112", "name": "", "type": "uint112" }, { "internalType": "uint112", "name": "", "type": "uint112" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" }, { "internalType": "uint112", "name": "", "type": "uint112" }, { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_core", "type": "address" }, { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "kLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "price0CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price1CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve0", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve1", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "skim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, { "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "swap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sync", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" }, { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "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": "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": "vault", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawVault", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b50604080518082018252600a815269047617353776170204c560b41b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f16cc900521a542306c28c54456fe2221cb1189c7b8c738411f38732849afc662918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f198184030181529190528051602090910120600355600680546001600160a01b03191633179055611f62806101096000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80637464fc3d1161011a578063ba9a7a56116100ad578063c5700a021161007c578063c5700a0214610522578063d21220a71461053f578063d505accf14610552578063dd62ed3e14610565578063fff6cae91461059057600080fd5b8063ba9a7a56146104e0578063bc25cf77146104e9578063c0c53b8b146104fc578063c45a01551461050f57600080fd5b806395d89b41116100e957806395d89b411461047e5780639804dab9146104a7578063a9059cbb146104ba578063b5fdf330146104cd57600080fd5b80637464fc3d1461041b5780637ecebe001461042357806380b2edd81461044357806389afcb441461045657600080fd5b8063313ce567116101925780635a3d5493116101615780635a3d5493146103d85780635a76f25e146103e05780636a627842146103e857806370a08231146103fb57600080fd5b8063313ce56714610313578063443cb4bc1461032d57806356b35b0e1461034d5780635909c0d5146103d057600080fd5b8063095ea7b3116101ce578063095ea7b31461029b5780630dfe1681146102be57806318160ddd146102e957806323b872dd1461030057600080fd5b8063022c0d9f1461020057806302d344641461021557806306fdde03146102285780630902f1ac14610267575b600080fd5b61021361020e3660046118f5565b6105b8565b005b61021361022336600461198b565b610703565b6102516040518060400160405280600a815260200169047617353776170204c560b41b81525081565b60405161025e91906119e8565b60405180910390f35b61026f610908565b604080516001600160701b03948516815293909216602084015263ffffffff169082015260600161025e565b6102ae6102a9366004611a1b565b610984565b604051901515815260200161025e565b6007546102d1906001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b6102f260005481565b60405190815260200161025e565b6102ae61030e366004611a47565b61099b565b61031b601281565b60405160ff909116815260200161025e565b6103356109bd565b6040516001600160701b03909116815260200161025e565b610355610a37565b6040805160ff909d168d526001600160a01b039b8c1660208e01529a909916998b019990995261ffff96871660608b015295909416608089015260a088019290925260c087015260e08601526101008501526001600160701b039081166101208501529091166101408301526101608201526101800161025e565b6102f2610ae3565b6102f2610b59565b610335610bcf565b6102f26103f6366004611a88565b610c48565b6102f2610409366004611a88565b60016020526000908152604090205481565b6102f2600081565b6102f2610431366004611a88565b60046020526000908152604090205481565b610213610451366004611a88565b610d9e565b610469610464366004611a88565b610dbd565b6040805192835260208301919091520161025e565b6102516040518060400160405280600a8152602001690476173537761702d4c560b41b81525081565b6102f26104b5366004611a1b565b610f20565b6102ae6104c8366004611a1b565b610fcd565b6102f26104db366004611a1b565b610fda565b6102f26103e881565b6102136104f7366004611a88565b61103a565b61021361050a366004611aa5565b6110e6565b6006546102d1906001600160a01b031681565b61052a61115f565b60405163ffffffff909116815260200161025e565b6008546102d1906001600160a01b031681565b610213610560366004611aff565b6111d8565b6102f261057336600461198b565b600260209081526000928352604080842090915290825290205481565b6105986113d5565b604080516001600160701b0393841681529290911660208301520161025e565b600854600160a01b900460ff16156105eb5760405162461bcd60e51b81526004016105e290611b70565b60405180910390fd5b6008805460ff60a01b1916600160a01b1790556005546040516304a0d80360e31b81526000918291829182916001600160a01b0390911690632506c01890610641908a9033908e908e908d908d90600401611b90565b6080604051808303816000875af1158015610660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106849190611c08565b9350935093509350610696828261149c565b60408051858152602081018590529081018a9052606081018990526001600160a01b0388169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506008805460ff60a01b1916905550505050505050565b6005546001600160a01b0316331461072d5760405162461bcd60e51b81526004016105e290611c4e565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015282169063dd62ed3e90604401602060405180830381865afa158015610779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079d9190611c71565b60000361081a5760405163095ea7b360e01b81526001600160a01b038381166004830152600019602483015282169063095ea7b3906044016020604051808303816000875af11580156107f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108189190611c8a565b505b604051636eb1769f60e11b8152306004820181905260248201526001600160a01b0383169063dd62ed3e90604401602060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190611c71565b6000036109045760405163095ea7b360e01b815230600482015260001960248201526001600160a01b0383169063095ea7b3906044016020604051808303816000875af11580156108de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109029190611c8a565b505b5050565b600554604051630fa6707960e21b8152306004820152600091829182916001600160a01b031690633e99c1e490602401606060405180830381865afa158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190611cac565b925092509250909192565b60006109913384846114e3565b5060015b92915050565b60006109a8843384611545565b6109b38484846115ab565b5060019392505050565b600554604051630fa6707960e21b815230600482015260009182916001600160a01b0390911690633e99c1e490602401606060405180830381865afa158015610a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2e9190611cac565b50909392505050565b60055460405163d4ff73f760e01b8152306004820152600091829182918291829182918291829182918291829182916001600160a01b039091169063d4ff73f79060240161018060405180830381865afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611d03565b9b509b509b509b509b509b509b509b509b509b509b509b50909192939495969798999a9b565b600554604051631337012560e01b81523060048201526000916001600160a01b031690631337012590602401608060405180830381865afa158015610b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b509190611dc4565b60400151905090565b600554604051631337012560e01b81523060048201526000916001600160a01b031690631337012590602401608060405180830381865afa158015610ba2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc69190611dc4565b60600151905090565b600554604051630fa6707960e21b815230600482015260009182916001600160a01b0390911690633e99c1e490602401606060405180830381865afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611cac565b509392505050565b600854600090600160a01b900460ff1615610c755760405162461bcd60e51b81526004016105e290611b70565b6008805460ff60a01b1916600160a01b17905560055460008054604051636361ddf360e11b81526001600160a01b03868116600483015233602483015260448201929092529192839283928392839291169063c6c3bbe69060640160a0604051808303816000875af1158015610cef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d139190611e38565b94509450945094509450849550600054600003610d3757610d3760006103e86116ca565b610d4187876116ca565b610d4b828261149c565b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506008805460ff60a01b1916905550919392505050565b600554610dba906001600160a01b038381169116600019611753565b50565b6008546000908190600160a01b900460ff1615610dec5760405162461bcd60e51b81526004016105e290611b70565b6008805460ff60a01b1916600160a01b179055306000908152600160205260408082205460055483549251636b81068560e11b81526001600160a01b038881166004830152336024830152604482019490945260648101839052919392839283928392169063d7020d0a906084016080604051808303816000875af1158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d9190611c08565b9350935093509350839650829550610eb5308661185d565b610ebf828261149c565b60408051888152602081018890526001600160a01b038a169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a350506008805460ff60a01b1916905550929491935090915050565b6005546000906001600160a01b03163314610f4d5760405162461bcd60e51b81526004016105e290611c4e565b604051632d182be560e21b815260048101839052306024820181905260448201526001600160a01b0384169063b460af94906064015b6020604051808303816000875af1158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190611c71565b9392505050565b60006109913384846115ab565b6005546000906001600160a01b031633146110075760405162461bcd60e51b81526004016105e290611c4e565b604051636e553f6560e01b8152600481018390523060248201526001600160a01b03841690636e553f6590604401610f83565b600854600160a01b900460ff16156110645760405162461bcd60e51b81526004016105e290611b70565b6008805460ff60a01b1916600160a01b17905560055460405163bc25cf7760e01b81526001600160a01b0383811660048301529091169063bc25cf7790602401600060405180830381600087803b1580156110be57600080fd5b505af11580156110d2573d6000803e3d6000fd5b50506008805460ff60a01b19169055505050565b6006546001600160a01b031633146111105760405162461bcd60e51b81526004016105e290611c4e565b600580546001600160a01b038086166001600160a01b03199283161790925560078054858416908316179055600880549284169290911691909117905561115682610d9e565b61090281610d9e565b600554604051630fa6707960e21b815230600482015260009182916001600160a01b0390911690633e99c1e490602401606060405180830381865afa1580156111ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d09190611cac565b949350505050565b428410156112125760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016105e2565b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b91908761126583611e9e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e001604051602081830303815290604052805190602001206040516020016112de92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611349573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061137f5750886001600160a01b0316816001600160a01b0316145b6113bf5760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b60448201526064016105e2565b6113ca8989896114e3565b505050505050505050565b6008546000908190600160a01b900460ff16156114045760405162461bcd60e51b81526004016105e290611b70565b6008805460ff60a01b1916600160a01b1790556005546040805160016209351760e01b0319815281516001600160a01b039093169263fff6cae99260048084019391929182900301816000875af1158015611463573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114879190611eb7565b915091506008805460ff60a01b191690559091565b604080516001600160701b038085168252831660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a15050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0380841660009081526002602090815260408083209386168352929052205460001981146115a55761157e8282611eea565b6001600160a01b038086166000908152600260209081526040808320938816835292905220555b50505050565b6001600160a01b038316600090815260016020526040812080548392906115d3908490611eea565b90915550506001600160a01b03821660009081526001602052604081208054839290611600908490611efd565b90915550506005546001600160a01b031615611685576005546040516318703c4f60e11b81526001600160a01b038581166004830152848116602483015260448201849052909116906330e0789e90606401600060405180830381600087803b15801561166c57600080fd5b505af1158015611680573d6000803e3d6000fd5b505050505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161153891815260200190565b806000808282546116db9190611efd565b90915550506001600160a01b03821660009081526001602052604081208054839290611708908490611efd565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6040516001600160a01b03838116602483015260448201839052600091829186169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b179052516117ad9190611f10565b6000604051808303816000865af19150503d80600081146117ea576040519150601f19603f3d011682016040523d82523d6000602084013e6117ef565b606091505b50915091508180156118195750805115806118195750808060200190518101906118199190611c8a565b6118565760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b60448201526064016105e2565b5050505050565b6001600160a01b03821660009081526001602052604081208054839290611885908490611eea565b925050819055508060008082825461189d9190611eea565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611747565b6001600160a01b0381168114610dba57600080fd5b60008060008060006080868803121561190d57600080fd5b85359450602086013593506040860135611926816118e0565b9250606086013567ffffffffffffffff8082111561194357600080fd5b818801915088601f83011261195757600080fd5b81358181111561196657600080fd5b89602082850101111561197857600080fd5b9699959850939650602001949392505050565b6000806040838503121561199e57600080fd5b82356119a9816118e0565b915060208301356119b9816118e0565b809150509250929050565b60005b838110156119df5781810151838201526020016119c7565b50506000910152565b6020815260008251806020840152611a078160408501602087016119c4565b601f01601f19169190910160400192915050565b60008060408385031215611a2e57600080fd5b8235611a39816118e0565b946020939093013593505050565b600080600060608486031215611a5c57600080fd5b8335611a67816118e0565b92506020840135611a77816118e0565b929592945050506040919091013590565b600060208284031215611a9a57600080fd5b8135610fc6816118e0565b600080600060608486031215611aba57600080fd5b8335611ac5816118e0565b92506020840135611ad5816118e0565b91506040840135611ae5816118e0565b809150509250925092565b60ff81168114610dba57600080fd5b600080600080600080600060e0888a031215611b1a57600080fd5b8735611b25816118e0565b96506020880135611b35816118e0565b955060408801359450606088013593506080880135611b5381611af0565b9699959850939692959460a0840135945060c09093013592915050565b6020808252600690820152651313d0d2d15160d21b604082015260600190565b6001600160a01b03878116825286166020820152604081018590526060810184905260a06080820181905281018290526000828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b80516001600160701b0381168114611c0357600080fd5b919050565b60008060008060808587031215611c1e57600080fd5b8451935060208501519250611c3560408601611bec565b9150611c4360608601611bec565b905092959194509250565b6020808252600990820152682327a92124a22222a760b91b604082015260600190565b600060208284031215611c8357600080fd5b5051919050565b600060208284031215611c9c57600080fd5b81518015158114610fc657600080fd5b600080600060608486031215611cc157600080fd5b611cca84611bec565b9250611cd860208501611bec565b9150604084015163ffffffff81168114611ae557600080fd5b805161ffff81168114611c0357600080fd5b6000806000806000806000806000806000806101808d8f031215611d2657600080fd5b8c51611d3181611af0565b60208e0151909c50611d42816118e0565b60408e0151909b50611d53816118e0565b9950611d6160608e01611cf1565b9850611d6f60808e01611cf1565b975060a08d0151965060c08d0151955060e08d015194506101008d01519350611d9b6101208e01611bec565b9250611daa6101408e01611bec565b91506101608d015190509295989b509295989b509295989b565b600060808284031215611dd657600080fd5b6040516080810181811067ffffffffffffffff82111715611e0757634e487b7160e01b600052604160045260246000fd5b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b600080600080600060a08688031215611e5057600080fd5b855194506020860151935060408601519250611e6e60608701611bec565b9150611e7c60808701611bec565b90509295509295909350565b634e487b7160e01b600052601160045260246000fd5b600060018201611eb057611eb0611e88565b5060010190565b60008060408385031215611eca57600080fd5b611ed383611bec565b9150611ee160208401611bec565b90509250929050565b8181038181111561099557610995611e88565b8082018082111561099557610995611e88565b60008251611f228184602087016119c4565b919091019291505056fea2646970667358221220e67e4d9b91a91d379bdccbd7761a9da23c719e5d652c6c5eb20d043e31a3708964736f6c63430008180033