[ { "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": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "mintAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "mintTokens", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "redeemer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "redeemAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "redeemTokens", "type": "uint256" } ], "name": "Redeem", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "bounty", "type": "uint256" } ], "name": "Reinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "totalBalance", "type": "uint256" } ], "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" }, { "constant": true, "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MINIMUM_LIQUIDITY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "REINVEST_BOUNTY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_underlying", "type": "address" }, { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" }, { "internalType": "address", "name": "_router", "type": "address" }, { "internalType": "address", "name": "_voter", "type": "address" }, { "internalType": "address", "name": "_rewardsToken", "type": "address" }, { "internalType": "address[]", "name": "_bridgeTokens", "type": "address[]" } ], "name": "_initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "_setFactory", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "bridgeTokens", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "currentCumulativePrices", "outputs": [ { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "exchangeRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "gauge", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint112", "name": "reserve0", "type": "uint112" }, { "internalType": "uint112", "name": "reserve1", "type": "uint112" }, { "internalType": "uint32", "name": "blockTimestampLast", "type": "uint32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "getReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "isStakedLPToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "minter", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "mintTokens", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "observationLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "observations", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "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": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "redeemer", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "redeemAmount", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "reinvest", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "rewardsToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "skim", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "stable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "stakedLPTokenType", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "sync", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "underlying", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" } ]
60806040526002805460ff19908116601217909155600b80549091166001179055614b6a8061002f6000396000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c806370a082311161017b578063c45a0155116100d8578063e8bea1671161008c578063f887ea4011610071578063f887ea40146104ee578063fdb5a03e146104f6578063fff6cae9146104fe576102c8565b8063e8bea167146104de578063ebeb31db146104e6576102c8565b8063d21220a7116100bd578063d21220a7146104b0578063d505accf146104b8578063dd62ed3e146104cb576102c8565b8063c45a0155146104a0578063d1af0c7d146104a8576102c8565b8063a6f19c841161012f578063ad7a672f11610114578063ad7a672f1461047d578063ba9a7a5614610485578063bc25cf771461048d576102c8565b8063a6f19c8414610462578063a9059cbb1461046a576102c8565b80637ecebe00116101605780637ecebe001461043457806395a2251f1461044757806395d89b411461045a576102c8565b806370a082311461040e57806370e5a89814610421576102c8565b806330adf81f1161022957806348286f6f116101dd5780636a627842116101c25780636a627842146103eb5780636c2a3bc5146103fe5780636f307dc314610406576102c8565b806348286f6f146103ce5780634a5d316c146103e3576102c8565b80633644e5151161020e5780633644e515146103b65780633ba0b9a9146103be5780633d18b912146103c6576102c8565b806330adf81f14610399578063313ce567146103a1576102c8565b806318160ddd1161028057806322be3de11161026557806322be3de11461036b57806323b872dd14610373578063252c09d714610386576102c8565b806318160ddd1461033f5780631df8c71714610354576102c8565b8063095ea7b3116102b1578063095ea7b3146103025780630a641063146103225780630dfe16811461032a576102c8565b806306fdde03146102cd5780630902f1ac146102eb575b600080fd5b6102d5610506565b6040516102e29190614818565b60405180910390f35b6102f36105b2565b6040516102e293929190614929565b610315610310366004613e54565b610840565b6040516102e2919061472d565b610315610857565b61033261085c565b6040516102e2919061463b565b61034761087d565b6040516102e2919061473b565b61035c610883565b6040516102e2939291906149a8565b610315610933565b610315610381366004613d6b565b610938565b61035c610394366004613f1a565b610a4d565b610347610b05565b6103a9610b29565b6040516102e291906149d0565b610347610b32565b610347610b38565b610347610b88565b6103e16103dc366004613cb3565b610c33565b005b6103e161101e565b6103476103f9366004613c35565b61109a565b61034761144d565b610332611458565b61034761041c366004613c35565b611474565b61033261042f366004613f1a565b611486565b610347610442366004613c35565b6114ba565b610347610455366004613c35565b6114cc565b6102d56116eb565b610332611763565b610315610478366004613e54565b61177f565b61034761178c565b610347611792565b6103e161049b366004613c35565b611798565b6103326118ee565b61033261190a565b610332611926565b6103e16104c6366004613db8565b611942565b6103476104d9366004613c79565b611986565b6102d56119a3565b6103476119dc565b610332611a84565b6103e1611aa0565b6103e16120be565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105aa5780601f1061057f576101008083540402835291602001916105aa565b820191906000526020600020905b81548152906001019060200180831161058d57829003601f168201915b505050505081565b600080600080600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561062357600080fd5b505afa158015610637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061065b9190810190613ed7565b63ffffffff1692506dffffffffffffffffffffffffffff1692506dffffffffffffffffffffffffffff1692506106908361212a565b955061069b8261212a565b945064010000000081069350600354600014156106bb575061083b915050565b600a54600854604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd916004808301926020929190829003018186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107619190810190613f38565b905061079b6107968261078a856dffffffffffffffffffffffffffff8d1663ffffffff61217c16565b9063ffffffff6121d016565b61212a565b97506107c46107968261078a856dffffffffffffffffffffffffffff8c1663ffffffff61217c16565b96506064886dffffffffffffffffffffffffffff161180156107f657506064876dffffffffffffffffffffffffffff16115b610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614869565b60405180910390fd5b50505050505b909192565b600061084d338484612212565b5060015b92915050565b600181565b600b54610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631df8c7176040518163ffffffff1660e01b815260040160606040518083038186803b1580156108f057600080fd5b505afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109289190810190613f56565b925092509250909192565b600081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610a3757604080518082018252601e81527f496d7065726d61783a205452414e534645525f4e4f545f414c4c4f574544000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600582528381203382529091529190912054610a0591849063ffffffff61228716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526005602090815260408083203384529091529020555b610a428484846122cd565b5060015b9392505050565b6008546040517f252c09d70000000000000000000000000000000000000000000000000000000081526000918291829173ffffffffffffffffffffffffffffffffffffffff169063252c09d790610aa890879060040161473b565b60606040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610af89190810190613f56565b9250925092509193909250565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60025460ff1681565b60065481565b600354600a5460009190811580610b4d575080155b15610b6457670de0b6b3a764000092505050610b85565b610b808261078a83670de0b6b3a764000063ffffffff61217c16565b925050505b90565b600b5460009060ff16610bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614919565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055333214610bfb57600080fd5b610c036123dc565b9050600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590565b60095473ffffffffffffffffffffffffffffffffffffffff1615610c83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906148e9565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055604080518082018252601181527f5374616b656420556e69737761702056320000000000000000000000000000006020808301919091528251808401909352600b83527f53544b442d554e492d563200000000000000000000000000000000000000000090830152610d1e91612488565b600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8b811691909117909255600b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101008b851602179055600c80548216898416179055600d80549091168783161790556040517fb9a09fd50000000000000000000000000000000000000000000000000000000081529085169063b9a09fd590610dec908b9060040161463b565b60206040518083038186803b158015610e0457600080fd5b505afa158015610e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e3c9190810190613c5b565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179081905516610eb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614909565b600f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8516179055610f0260108383613978565b50610f4a73ffffffffffffffffffffffffffffffffffffffff8416867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61257616565b600e54610f979073ffffffffffffffffffffffffffffffffffffffff8a811691167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61257616565b60005b818110156110135761100b867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858585818110610fd357fe5b9050602002016020610fe89190810190613c35565b73ffffffffffffffffffffffffffffffffffffffff16919063ffffffff61257616565b600101610f9a565b505050505050505050565b60095473ffffffffffffffffffffffffffffffffffffffff161561106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614839565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b600b5460009060ff166110d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614919565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556008546000906111269073ffffffffffffffffffffffffffffffffffffffff166126a0565b600e546040517f70a0823100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a082319061118290309060040161463b565b60206040518083038186803b15801561119a57600080fd5b505afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111d29190810190613f38565b600e546040517fb6b55f2500000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063b6b55f259061122990859060040161473b565b600060405180830381600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b5050600e546040517f70a082310000000000000000000000000000000000000000000000000000000081526000935073ffffffffffffffffffffffffffffffffffffffff90911691506370a08231906112b490309060040161463b565b60206040518083038186803b1580156112cc57600080fd5b505afa1580156112e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113049190810190613f38565b9050611339611311610b38565b61078a670de0b6b3a764000061132d858763ffffffff61274516565b9063ffffffff61217c16565b93506003546000141561136757611358846103e863ffffffff61274516565b935061136760006103e8612787565b600084116113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614849565b6113ab8585612787565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee858760405161140a92919061499a565b60405180910390a350505061141d61283b565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055919050565b66470de4df82000081565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60046020526000908152604090205481565b6010818154811061149357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60076020526000908152604090205481565b600b5460009060ff1661150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614919565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905530600090815260046020526040902054611567670de0b6b3a764000061078a61155a610b38565b849063ffffffff61217c16565b9150600082116115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614889565b600a548211156115df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906148d9565b6115e93082612925565b600e546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d9061163f90859060040161473b565b600060405180830381600087803b15801561165957600080fd5b505af115801561166d573d6000803e3d6000fd5b5050505061167b83836129e2565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3f693fff038bb8a046aa76d9516190ac7444f7d69cf952c4cbdc086fdef2d6fc84846040516116da92919061499a565b60405180910390a35061141d61283b565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105aa5780601f1061057f576101008083540402835291602001916105aa565b600e5473ffffffffffffffffffffffffffffffffffffffff1681565b600061084d3384846122cd565b600a5481565b6103e881565b600b5460ff166117d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614919565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600a546008546040517f70a082310000000000000000000000000000000000000000000000000000000081526118c09284926118bb9273ffffffffffffffffffffffffffffffffffffffff909116906370a082319061185f90309060040161463b565b60206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118af9190810190613f38565b9063ffffffff61274516565b6129e2565b50600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b600f5473ffffffffffffffffffffffffffffffffffffffff1681565b600c5473ffffffffffffffffffffffffffffffffffffffff1681565b611972878787878787877f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9612b9c565b61197d878787612212565b50505050505050565b600560209081526000928352604080842090915290825290205481565b6040518060400160405280600c81526020017f536f6c69646c794261736534000000000000000000000000000000000000000081525081565b600854604080517febeb31db000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163ebeb31db916004808301926020929190829003018186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a7f9190810190613f38565b905090565b600d5473ffffffffffffffffffffffffffffffffffffffff1681565b600b5460ff16611adc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614919565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055333214611b1057600080fd5b6000611b1a6123dc565b905080611b275750612089565b6000670de0b6b3a7640000611b498366470de4df82000063ffffffff61217c16565b81611b5057fe5b600f549190049150611b7f9073ffffffffffffffffffffffffffffffffffffffff16338363ffffffff612d6716565b600f54600b546000918291610100900473ffffffffffffffffffffffffffffffffffffffff90811691161480611bd25750600f54600c5473ffffffffffffffffffffffffffffffffffffffff9081169116145b15611c5c57600f54600b54610100900473ffffffffffffffffffffffffffffffffffffffff908116911614611c2c57600c54600b5473ffffffffffffffffffffffffffffffffffffffff9182169161010090910416611c52565b600b54600c5473ffffffffffffffffffffffffffffffffffffffff610100909204821691165b9092509050611e34565b600080611c67612e8a565b600f549193509150611c9f9073ffffffffffffffffffffffffffffffffffffffff1683611c9a898963ffffffff61274516565b613363565b600b5473ffffffffffffffffffffffffffffffffffffffff838116610100909204161480611ce75750600c5473ffffffffffffffffffffffffffffffffffffffff8381169116145b15611d6e57600b5473ffffffffffffffffffffffffffffffffffffffff8381166101009092041614611d3e57600c54600b5473ffffffffffffffffffffffffffffffffffffffff9182169161010090910416611d64565b600b54600c5473ffffffffffffffffffffffffffffffffffffffff610100909204821691165b9094509250611e31565b611dd4828215611d9657600c5473ffffffffffffffffffffffffffffffffffffffff16611db5565b600b54610100900473ffffffffffffffffffffffffffffffffffffffff165b611c9a8573ffffffffffffffffffffffffffffffffffffffff166126a0565b8015611e0557600c54600b5473ffffffffffffffffffffffffffffffffffffffff9182169161010090910416611e2b565b600b54600c5473ffffffffffffffffffffffffffffffffffffffff610100909204821691165b90945092505b50505b6000611e558373ffffffffffffffffffffffffffffffffffffffff166126a0565b905060008111611e6157fe5b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611ecc57600080fd5b505afa158015611ee0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f049190810190613ed7565b50600b546dffffffffffffffffffffffffffff92831694509116915060009073ffffffffffffffffffffffffffffffffffffffff8781166101009092041614611f4d5781611f4f565b825b90506000611f5d8583613591565b9050611f6a878783613363565b6000611fa58888611f81898663ffffffff61274516565b611fa08b73ffffffffffffffffffffffffffffffffffffffff166126a0565b613612565b600e546040517fb6b55f2500000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063b6b55f2590611ffc90849060040161473b565b600060405180830381600087803b15801561201657600080fd5b505af115801561202a573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167fc003f45bc224d116b6d079100d4ab57a5b9633244c47a5a92a176c5b79a85f288b8b60405161207692919061499a565b60405180910390a2505050505050505050505b61209161283b565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b600b5460ff166120fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614919565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905561209161283b565b60006e0100000000000000000000000000008210612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906148a9565b50805b919050565b60008261218b57506000610851565b8282028284828161219857fe5b0414610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906148b9565b6000610a4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136ec565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526005602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061227a90859061473b565b60405180910390a3505050565b600081848411156122c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c9190614818565b505050900390565b604080518082018252601b81527f496d7065726d61783a205452414e534645525f544f4f5f48494748000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff861660009081526004909152919091205461233b91839063ffffffff61228716565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260046020526040808220939093559084168152205461237d908263ffffffff61373d16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061227a90859061473b565b600e546040517fc00007b000000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063c00007b09061243390309060040161463b565b600060405180830381600087803b15801561244d57600080fd5b505af1158015612461573d6000803e3d6000fd5b5050600f54611a7f925073ffffffffffffffffffffffffffffffffffffffff1690506126a0565b815161249b906000906020850190613a00565b5080516124af906001906020840190613a00565b5060405146906124be90614630565b6040805191829003822085516020808801919091208484018452600185527f31000000000000000000000000000000000000000000000000000000000000009482019490945291516125389391927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918691309101614798565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600655505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663095ea7b385856040516024016125a9929190614712565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516125f791906145f3565b6000604051808303816000865af19150503d8060008114612634576040519150601f19603f3d011682016040523d82523d6000602084013e612639565b606091505b50915091508180156126635750805115806126635750808060200190516126639190810190613eb9565b612699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614859565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906126f590309060040161463b565b60206040518083038186803b15801561270d57600080fd5b505afa158015612721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108519190810190613f38565b6000610a4683836040518060400160405280601f81526020017f536166654d6174683a207375627472616374696f6e20756e646572666c6f7700815250612287565b60035461279a908263ffffffff61373d16565b60035573ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020546127d3908263ffffffff61373d16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282f90859061473b565b60405180910390a35050565b600e546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061289290309060040161463b565b60206040518083038186803b1580156128aa57600080fd5b505afa1580156128be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128e29190810190613f38565b905080600a819055507f8a0df8ef054fae2c3d2d19a7b322e864870cc9fd3cb07fb9526309c596244bf48160405161291a919061473b565b60405180910390a150565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205461295b908263ffffffff61274516565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020526040902055600354612994908263ffffffff61274516565b60035560405160009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282f90859061473b565b600854604080518082018252601981527f7472616e7366657228616464726573732c75696e7432353629000000000000006020909101525160009160609173ffffffffffffffffffffffffffffffffffffffff909116907fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b90612a6b9087908790602401614712565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051612af491906145f3565b6000604051808303816000865af19150503d8060008114612b31576040519150601f19603f3d011682016040523d82523d6000602084013e612b36565b606091505b5091509150818015612b60575080511580612b60575080806020019051612b609190810190613eb9565b612b96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906148f9565b50505050565b42851015612bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614829565b60065473ffffffffffffffffffffffffffffffffffffffff891660009081526007602090815260408083208054600181019091559051929392612c249286928e928e928e92918e9101614749565b60405160208183030381529060405280519060200120604051602001612c4b9291906145ff565b604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051612c8894939291906147da565b6020604051602081039080840390855afa158015612caa573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590612d2557508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b612d5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614899565b50505050505050505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401612d9a929190614712565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612de891906145f3565b6000604051808303816000865af19150503d8060008114612e25576040519150601f19603f3d011682016040523d82523d6000602084013e612e2a565b606091505b5091509150818015612e54575080511580612e54575080806020019051612e549190810190613eb9565b612699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906148c9565b600080805b601054811015612f935760108181548110612ea657fe5b600091825260209091200154600b54610100900473ffffffffffffffffffffffffffffffffffffffff90811691161415612f135760108181548110612ee757fe5b600091825260208220015473ffffffffffffffffffffffffffffffffffffffff169350915061335f9050565b60108181548110612f2057fe5b600091825260209091200154600c5473ffffffffffffffffffffffffffffffffffffffff90811691161415612f8b5760108181548110612f5c57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1692506001915061335f9050565b600101612e8f565b50600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612fff57600080fd5b505afa158015613013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130379190810190613ed7565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150613064613a7a565b5060408051808201909152600b5473ffffffffffffffffffffffffffffffffffffffff61010090910481168252600c541660208201526130a2613a7a565b604051806040016040528085815260200184815250905060106000815481106130c757fe5b600091825260208083209190910154600d54604080517fd4b6846d000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169b5094995089948594939092169263d4b6846d92600480840193829003018186803b15801561314857600080fd5b505afa15801561315c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131809190810190613c5b565b905060005b6010548110156133575760005b600281101561334e5760008373ffffffffffffffffffffffffffffffffffffffff166379bc57d58884600281106131c557fe5b6020020151601086815481106131d757fe5b60009182526020822001546040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152613235939273ffffffffffffffffffffffffffffffffffffffff9092169190600401614664565b60206040518083038186803b15801561324d57600080fd5b505afa158015613261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506132859190810190613c5b565b905073ffffffffffffffffffffffffffffffffffffffff81166132a85750613346565b60006133018784600281106132b957fe5b602002015161078a670de0b6b3a764000061132d868d89600281106132da57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff169063ffffffff61377c16565b90508581111561334357809550829a506010848154811061331e57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169b505b50505b600101613192565b50600101613185565b505050505050505b9091565b61336d8382613821565b604080516001808252818301909252606091816020015b61338c613a98565b81526020019060019003908161338457905050905060405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001600015158152602001600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d4b6846d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561345557600080fd5b505afa158015613469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061348d9190810190613c5b565b73ffffffffffffffffffffffffffffffffffffffff16815250816000815181106134b357fe5b6020908102919091010152600d546040517fcac88ea900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063cac88ea99061351d908590600090869030904290600401614951565b600060405180830381600087803b15801561353757600080fd5b505af115801561354b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526126999190810190613e84565b6000806135a66107cd8463ffffffff61217c16565b905060006135c4610f9461132d8681896103e863ffffffff61217c16565b905060006135f06135eb836135df868063ffffffff61217c16565b9063ffffffff61373d16565b613927565b90506136086107ca61078a838663ffffffff61274516565b9695505050505050565b600061361e8584613821565b6136288483613821565b600d546040517f5a47ddc300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635a47ddc39061368f908890889060009089908990839081903090429060040161468c565b606060405180830381600087803b1580156136a957600080fd5b505af11580156136bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136e19190810190613f56565b979650505050505050565b60008183613727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c9190614818565b50600083858161373357fe5b0495945050505050565b600082820183811015610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614879565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a08231906137d190859060040161463b565b60206040518083038186803b1580156137e957600080fd5b505afa1580156137fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a469190810190613f38565b600d546040517fdd62ed3e000000000000000000000000000000000000000000000000000000008152829173ffffffffffffffffffffffffffffffffffffffff8086169263dd62ed3e9261387c923092911690600401614649565b60206040518083038186803b15801561389457600080fd5b505afa1580156138a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506138cc9190810190613f38565b106138d657613923565b600d546139239073ffffffffffffffffffffffffffffffffffffffff84811691167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61257616565b5050565b6000600382111561396a575080600160028204015b818110156139645780915060028182858161395357fe5b04018161395c57fe5b04905061393c565b50612177565b811561217757506001919050565b8280548282559060005260206000209081019282156139f0579160200282015b828111156139f05781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff843516178255602090920191600190910190613998565b506139fc929150613abf565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613a4157805160ff1916838001178555613a6e565b82800160010185558215613a6e579182015b82811115613a6e578251825591602001919060010190613a53565b506139fc929150613afb565b60405180604001604052806002906020820280388339509192915050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b610b8591905b808211156139fc5780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101613ac5565b610b8591905b808211156139fc5760008155600101613b01565b803561085181614ae3565b805161085181614ae3565b60008083601f840112613b3d57600080fd5b50813567ffffffffffffffff811115613b5557600080fd5b602083019150836020820283011115613b6d57600080fd5b9250929050565b600082601f830112613b8557600080fd5b8151613b98613b9382614a05565b6149de565b91508181835260208401935060208101905083856020840282011115613bbd57600080fd5b60005b83811015613be95781613bd38882613c14565b8452506020928301929190910190600101613bc0565b5050505092915050565b805161085181614afa565b803561085181614b03565b805161085181614b0c565b805161085181614b03565b805161085181614b15565b803561085181614b1e565b600060208284031215613c4757600080fd5b6000613c538484613b15565b949350505050565b600060208284031215613c6d57600080fd5b6000613c538484613b20565b60008060408385031215613c8c57600080fd5b6000613c988585613b15565b9250506020613ca985828601613b15565b9150509250929050565b60008060008060008060008060e0898b031215613ccf57600080fd5b6000613cdb8b8b613b15565b9850506020613cec8b828c01613b15565b9750506040613cfd8b828c01613b15565b9650506060613d0e8b828c01613b15565b9550506080613d1f8b828c01613b15565b94505060a0613d308b828c01613b15565b93505060c089013567ffffffffffffffff811115613d4d57600080fd5b613d598b828c01613b2b565b92509250509295985092959890939650565b600080600060608486031215613d8057600080fd5b6000613d8c8686613b15565b9350506020613d9d86828701613b15565b9250506040613dae86828701613bfe565b9150509250925092565b600080600080600080600060e0888a031215613dd357600080fd5b6000613ddf8a8a613b15565b9750506020613df08a828b01613b15565b9650506040613e018a828b01613bfe565b9550506060613e128a828b01613bfe565b9450506080613e238a828b01613c2a565b93505060a0613e348a828b01613bfe565b92505060c0613e458a828b01613bfe565b91505092959891949750929550565b60008060408385031215613e6757600080fd5b6000613e738585613b15565b9250506020613ca985828601613bfe565b600060208284031215613e9657600080fd5b815167ffffffffffffffff811115613ead57600080fd5b613c5384828501613b74565b600060208284031215613ecb57600080fd5b6000613c538484613bf3565b600080600060608486031215613eec57600080fd5b6000613ef88686613c09565b9350506020613f0986828701613c09565b9250506040613dae86828701613c1f565b600060208284031215613f2c57600080fd5b6000613c538484613bfe565b600060208284031215613f4a57600080fd5b6000613c538484613c14565b600080600060608486031215613f6b57600080fd5b6000613f778686613c14565b9350506020613f8886828701613c14565b9250506040613dae86828701613c14565b6000613fa5838361458e565b505060800190565b613fb681614a39565b82525050565b6000613fc782614a2c565b613fd18185614a30565b9350613fdc83614a26565b8060005b8381101561400a578151613ff48882613f99565b9750613fff83614a26565b925050600101613fe0565b509495945050505050565b613fb681614a44565b613fb681610b85565b613fb661403382610b85565b610b85565b600061404382614a2c565b61404d8185612177565b935061405d818560208601614a8f565b9290920192915050565b613fb681614a84565b600061407b82614a2c565b6140858185614a30565b9350614095818560208601614a8f565b61409e81614abb565b9093019392505050565b60006140b5601183614a30565b7f496d7065726d61783a2045585049524544000000000000000000000000000000815260200192915050565b60006140ee601d83614a30565b7f496d7065726d61783a20464143544f52595f414c52454144595f534554000000815260200192915050565b6000614127601f83614a30565b7f5374616b65644c50546f6b656e3a204d494e545f414d4f554e545f5a45524f00815260200192915050565b6000614160600c83614a30565b7f2173616665417070726f76650000000000000000000000000000000000000000815260200192915050565b6000614199602483614a30565b7f5374616b65644c50546f6b656e3a20494e53554646494349454e545f5245534581527f5256455300000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006141f8600283612177565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000614231601b83614a30565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061426a602183614a30565b7f5374616b65644c50546f6b656e3a2052454445454d5f414d4f554e545f5a455281527f4f00000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006142c9601b83614a30565b7f496d7065726d61783a20494e56414c49445f5349474e41545552450000000000815260200192915050565b6000614302601683614a30565b7f5374616b65644c50546f6b656e3a205341464531313200000000000000000000815260200192915050565b600061433b605283612177565b7f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081527f76657273696f6e2c75696e7432353620636861696e49642c616464726573732060208201527f766572696679696e67436f6e7472616374290000000000000000000000000000604082015260520192915050565b60006143c0602183614a30565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061441f600d83614a30565b7f21736166655472616e7366657200000000000000000000000000000000000000815260200192915050565b6000614458602083614a30565b7f5374616b65644c50546f6b656e3a20494e53554646494349454e545f43415348815260200192915050565b6000614491602283614a30565b7f5374616b65644c50546f6b656e3a20464143544f52595f414c52454144595f5381527f4554000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006144f0601983614a30565b7f496d7065726d61783a205452414e534645525f4641494c454400000000000000815260200192915050565b6000614529601783614a30565b7f5374616b65644c50546f6b656e3a204e4f5f4741554745000000000000000000815260200192915050565b6000614562601383614a30565b7f496d7065726d61783a205245454e544552454400000000000000000000000000815260200192915050565b8051608083019061459f8482613fad565b5060208201516145b26020850182613fad565b5060408201516145c56040850182614015565b506060820151612b966060850182613fad565b613fb681614a49565b613fb681614a75565b613fb681614a7e565b6000610a468284614038565b600061460a826141eb565b91506146168285614027565b6020820191506146268284614027565b5060200192915050565b60006108518261432e565b602081016108518284613fad565b604081016146578285613fad565b610a466020830184613fad565b606081016146728286613fad565b61467f6020830185613fad565b613c536040830184614015565b610120810161469b828c613fad565b6146a8602083018b613fad565b6146b5604083018a614015565b6146c2606083018961401e565b6146cf608083018861401e565b6146dc60a0830187614067565b6146e960c0830186614067565b6146f660e0830185613fad565b61470461010083018461401e565b9a9950505050505050505050565b604081016147208285613fad565b610a46602083018461401e565b602081016108518284614015565b60208101610851828461401e565b60c08101614757828961401e565b6147646020830188613fad565b6147716040830187613fad565b61477e606083018661401e565b61478b608083018561401e565b6136e160a083018461401e565b60a081016147a6828861401e565b6147b3602083018761401e565b6147c0604083018661401e565b6147cd606083018561401e565b6136086080830184613fad565b608081016147e8828761401e565b6147f560208301866145ea565b614802604083018561401e565b61480f606083018461401e565b95945050505050565b60208082528101610a468184614070565b60208082528101610851816140a8565b60208082528101610851816140e1565b602080825281016108518161411a565b6020808252810161085181614153565b602080825281016108518161418c565b6020808252810161085181614224565b602080825281016108518161425d565b60208082528101610851816142bc565b60208082528101610851816142f5565b60208082528101610851816143b3565b6020808252810161085181614412565b602080825281016108518161444b565b6020808252810161085181614484565b60208082528101610851816144e3565b602080825281016108518161451c565b6020808252810161085181614555565b6060810161493782866145d8565b61494460208301856145d8565b613c5360408301846145e1565b60a0810161495f828861401e565b61496c6020830187614067565b818103604083015261497e8186613fbc565b905061498d6060830185613fad565b613608608083018461401e565b60408101614720828561401e565b606081016149b6828661401e565b6149c3602083018561401e565b613c53604083018461401e565b6020810161085182846145ea565b60405181810167ffffffffffffffff811182821017156149fd57600080fd5b604052919050565b600067ffffffffffffffff821115614a1c57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b600061085182614a5c565b151590565b6dffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b600061085182610b85565b60005b83811015614aaa578181015183820152602001614a92565b83811115612b965750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b614aec81614a39565b8114614af757600080fd5b50565b614aec81614a44565b614aec81610b85565b614aec81614a49565b614aec81614a75565b614aec81614a7e56fea365627a7a72315820c7e3fd368c067f0c7e3ee1233df9121e618627d43add7b823c955eeffbaee3926c6578706572696d656e74616cf564736f6c63430005100040