[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "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": "tokenAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethAmount", "type": "uint256" } ], "name": "EthTaxSwapped", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "poolAddress", "type": "address" } ], "name": "NewPairCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "taxAmount", "type": "uint256" } ], "name": "TaxTaken", "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" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initializeTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isPairAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setPairAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapRouter", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405273e8c7203a98ac413968d3d8a05b5eac3edafecd5a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b50336040518060400160405280600981526020017f4341545343414e414900000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f43415441490000000000000000000000000000000000000000000000000000008152508160039081620000e5919062001146565b508060049081620000f7919062001146565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200016f5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000166919062001272565b60405180910390fd5b6200018081620001f160201b60201c565b506001600681905550620001a9336d14bddab3e51a57cff87a50000000620002b760201b60201c565b620001eb33600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166c6a32743ce6ed46b82b680000006200034460201b60201c565b6200168a565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200032c5760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000323919062001272565b60405180910390fd5b6200034060008383620003ee60201b60201c565b5050565b6200035683836200061e60201b60201c565b15620003d65760006200037084836200082d60201b60201c565b90508082620003809190620012be565b91508373ffffffffffffffffffffffffffffffffffffffff167ff0d8ee4d7fe51013c99f552d308511e8114242d262612c2f4779ced290f4a8098383604051620003cc9291906200130a565b60405180910390a2505b620003e98383836200095860201b60201c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200044457806002600082825462000437919062001337565b925050819055506200051a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620004d3578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620004ca9392919062001372565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005655780600260008282540392505081905550620005b2565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006119190620013af565b60405180910390a3505050565b60006200063062000a5a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015620006a757506200067762000a5a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015620007025750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156200075d5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156200079657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015620007cf57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015620008255750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b6000806064600284620008419190620013cc565b6200084d919062001446565b9050620008628430836200034460201b60201c565b6000479050620008788262000a8460201b60201c565b6000479050600082826200088d9190620012be565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015620008f8573d6000803e3d6000fd5b508673ffffffffffffffffffffffffffffffffffffffff167fd36a287d29329be76235d68be7c2f841f8d9291425aba5f235d953fc6f6bb1088583604051620009439291906200130a565b60405180910390a28394505050505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009cd5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401620009c4919062001272565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a425760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000a39919062001272565b60405180910390fd5b62000a55838383620003ee60201b60201c565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600267ffffffffffffffff81111562000aa45762000aa362000ed7565b5b60405190808252806020026020018201604052801562000ad35781602001602082028036833780820191505090505b509050308160008151811062000aee5762000aed6200147e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bbc9190620014e3565b8160018151811062000bd35762000bd26200147e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505062000c3430737a250d5630b4cf539739df2c5dacb4c659f2488d8462000cd260201b60201c565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040162000c9a95949392919062001626565b600060405180830381600087803b15801562000cb557600080fd5b505af115801562000cca573d6000803e3d6000fd5b505050505050565b62000ce7838383600162000cec60201b60201c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160362000d615760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040162000d58919062001272565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000dd65760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040162000dcd919062001272565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801562000ec6578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000ebd9190620013af565b60405180910390a35b50505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f4e57607f821691505b60208210810362000f645762000f6362000f06565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000fce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f8f565b62000fda868362000f8f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062001027620010216200101b8462000ff2565b62000ffc565b62000ff2565b9050919050565b6000819050919050565b620010438362001006565b6200105b62001052826200102e565b84845462000f9c565b825550505050565b600090565b6200107262001063565b6200107f81848462001038565b505050565b5b81811015620010a7576200109b60008262001068565b60018101905062001085565b5050565b601f821115620010f657620010c08162000f6a565b620010cb8462000f7f565b81016020851015620010db578190505b620010f3620010ea8562000f7f565b83018262001084565b50505b505050565b600082821c905092915050565b60006200111b60001984600802620010fb565b1980831691505092915050565b600062001136838362001108565b9150826002028217905092915050565b620011518262000ecc565b67ffffffffffffffff8111156200116d576200116c62000ed7565b5b62001179825462000f35565b62001186828285620010ab565b600060209050601f831160018114620011be5760008415620011a9578287015190505b620011b5858262001128565b86555062001225565b601f198416620011ce8662000f6a565b60005b82811015620011f857848901518255600182019150602085019450602081019050620011d1565b8683101562001218578489015162001214601f89168262001108565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200125a826200122d565b9050919050565b6200126c816200124d565b82525050565b600060208201905062001289600083018462001261565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620012cb8262000ff2565b9150620012d88362000ff2565b9250828203905081811115620012f357620012f26200128f565b5b92915050565b620013048162000ff2565b82525050565b6000604082019050620013216000830185620012f9565b620013306020830184620012f9565b9392505050565b6000620013448262000ff2565b9150620013518362000ff2565b92508282019050808211156200136c576200136b6200128f565b5b92915050565b600060608201905062001389600083018662001261565b620013986020830185620012f9565b620013a76040830184620012f9565b949350505050565b6000602082019050620013c66000830184620012f9565b92915050565b6000620013d98262000ff2565b9150620013e68362000ff2565b9250828202620013f68162000ff2565b9150828204841483151762001410576200140f6200128f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014538262000ff2565b9150620014608362000ff2565b92508262001473576200147262001417565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b620014bd816200124d565b8114620014c957600080fd5b50565b600081519050620014dd81620014b2565b92915050565b600060208284031215620014fc57620014fb620014ad565b5b60006200150c84828501620014cc565b91505092915050565b6000819050919050565b6000620015406200153a620015348462001515565b62000ffc565b62000ff2565b9050919050565b62001552816200151f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6200158f816200124d565b82525050565b6000620015a3838362001584565b60208301905092915050565b6000602082019050919050565b6000620015c98262001558565b620015d5818562001563565b9350620015e28362001574565b8060005b8381101562001619578151620015fd888262001595565b97506200160a83620015af565b925050600181019050620015e6565b5085935050505092915050565b600060a0820190506200163d6000830188620012f9565b6200164c602083018762001547565b8181036040830152620016608186620015bc565b905062001671606083018562001261565b620016806080830184620012f9565b9695505050505050565b612545806200169a6000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461031b578063c380366014610358578063dd62ed3e14610381578063f2fde38b146103be578063f5573875146103e757610109565b8063715018a614610283578063735de9f71461029a5780638da5cb5b146102c557806395d89b41146102f057610109565b806323b872dd116100d157806323b872dd146101c7578063313ce567146102045780635fbfd0a61461022f57806370a082311461024657610109565b806306fdde031461010b578063095ea7b314610136578063155dd5ee1461017357806318160ddd1461019c57610109565b3661010957005b005b34801561011757600080fd5b50610120610424565b60405161012d9190611b95565b60405180910390f35b34801561014257600080fd5b5061015d60048036038101906101589190611c50565b6104b6565b60405161016a9190611cab565b60405180910390f35b34801561017f57600080fd5b5061019a60048036038101906101959190611cc6565b6104d9565b005b3480156101a857600080fd5b506101b16105eb565b6040516101be9190611d02565b60405180910390f35b3480156101d357600080fd5b506101ee60048036038101906101e99190611d1d565b6105f5565b6040516101fb9190611cab565b60405180910390f35b34801561021057600080fd5b50610219610624565b6040516102269190611d8c565b60405180910390f35b34801561023b57600080fd5b5061024461062d565b005b34801561025257600080fd5b5061026d60048036038101906102689190611da7565b610a9d565b60405161027a9190611d02565b60405180910390f35b34801561028f57600080fd5b50610298610ae5565b005b3480156102a657600080fd5b506102af610af9565b6040516102bc9190611e33565b60405180910390f35b3480156102d157600080fd5b506102da610b1f565b6040516102e79190611e5d565b60405180910390f35b3480156102fc57600080fd5b50610305610b49565b6040516103129190611b95565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d9190611c50565b610bdb565b60405161034f9190611cab565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a9190611ea4565b610bfe565b005b34801561038d57600080fd5b506103a860048036038101906103a39190611ee4565b610cd0565b6040516103b59190611d02565b60405180910390f35b3480156103ca57600080fd5b506103e560048036038101906103e09190611da7565b610d57565b005b3480156103f357600080fd5b5061040e60048036038101906104099190611da7565b610ddd565b60405161041b9190611cab565b60405180910390f35b60606003805461043390611f53565b80601f016020809104026020016040519081016040528092919081815260200182805461045f90611f53565b80156104ac5780601f10610481576101008083540402835291602001916104ac565b820191906000526020600020905b81548152906001019060200180831161048f57829003601f168201915b5050505050905090565b6000806104c1610dfd565b90506104ce818585610e05565b600191505092915050565b6104e1610e17565b6104e9610e9e565b4781111561052c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052390611ff6565b60405180910390fd5b6000610536610b1f565b73ffffffffffffffffffffffffffffffffffffffff168260405161055990612047565b60006040518083038185875af1925050503d8060008114610596576040519150601f19603f3d011682016040523d82523d6000602084013e61059b565b606091505b50509050806105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906120a8565b60405180910390fd5b506105e8610ee4565b50565b6000600254905090565b600080610600610dfd565b905061060d858285610eee565b610618858585610f82565b60019150509392505050565b60006012905090565b610635610e17565b737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071d91906120dd565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ca91906120dd565b6040518363ffffffff1660e01b81526004016107e792919061210a565b602060405180830381865afa158015610804573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082891906120dd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a9a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ef91906120dd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c91906120dd565b6040518363ffffffff1660e01b81526004016109b992919061210a565b6020604051808303816000875af11580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc91906120dd565b90506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fc4e9a735992048af640b5fe47b27e3bfdf6c2832bca917bf1a390e92ebe4191760405160405180910390a25b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aed610e17565b610af7600061100f565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b5890611f53565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8490611f53565b8015610bd15780601f10610ba657610100808354040283529160200191610bd1565b820191906000526020600020905b815481529060010190602001808311610bb457829003601f168201915b5050505050905090565b600080610be6610dfd565b9050610bf3818585610f82565b600191505092915050565b610c06610e17565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c906121a5565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d5f610e17565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610dc89190611e5d565b60405180910390fd5b610dda8161100f565b50565b60076020528060005260406000206000915054906101000a900460ff1681565b600033905090565b610e1283838360016110d5565b505050565b610e1f610dfd565b73ffffffffffffffffffffffffffffffffffffffff16610e3d610b1f565b73ffffffffffffffffffffffffffffffffffffffff1614610e9c57610e60610dfd565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610e939190611e5d565b60405180910390fd5b565b600260065403610eda576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600681905550565b6001600681905550565b6000610efa8484610cd0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f7c5781811015610f6c578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610f63939291906121c5565b60405180910390fd5b610f7b848484840360006110d5565b5b50505050565b610f8c83836112ac565b15610fff576000610f9d84836114a5565b90508082610fab919061222b565b91508373ffffffffffffffffffffffffffffffffffffffff167ff0d8ee4d7fe51013c99f552d308511e8114242d262612c2f4779ced290f4a8098383604051610ff592919061225f565b60405180910390a2505b61100a8383836115b7565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111475760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161113e9190611e5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b95760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016111b09190611e5d565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156112a6578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161129d9190611d02565b60405180910390a35b50505050565b60006112b6610b1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561132457506112f4610b1f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561137e5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113d85750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561141057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561144857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561149d5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b60008060646002846114b79190612288565b6114c191906122f9565b90506114ce843083610f82565b60004790506114dc826116ab565b6000479050600082826114ef919061222b565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611559573d6000803e3d6000fd5b508673ffffffffffffffffffffffffffffffffffffffff167fd36a287d29329be76235d68be7c2f841f8d9291425aba5f235d953fc6f6bb10885836040516115a292919061225f565b60405180910390a28394505050505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116295760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016116209190611e5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016116929190611e5d565b60405180910390fd5b6116a68383836118e0565b505050565b6000600267ffffffffffffffff8111156116c8576116c761232a565b5b6040519080825280602002602001820160405280156116f65781602001602082028036833780820191505090505b509050308160008151811061170e5761170d612359565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d991906120dd565b816001815181106117ed576117ec612359565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061184630737a250d5630b4cf539739df2c5dacb4c659f2488d84610e05565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118aa959493929190612481565b600060405180830381600087803b1580156118c457600080fd5b505af11580156118d8573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361193257806002600082825461192691906124db565b92505081905550611a05565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119be578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016119b5939291906121c5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a4e5780600260008282540392505081905550611a9b565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611af89190611d02565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b3f578082015181840152602081019050611b24565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b6782611b05565b611b718185611b10565b9350611b81818560208601611b21565b611b8a81611b4b565b840191505092915050565b60006020820190508181036000830152611baf8184611b5c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611be782611bbc565b9050919050565b611bf781611bdc565b8114611c0257600080fd5b50565b600081359050611c1481611bee565b92915050565b6000819050919050565b611c2d81611c1a565b8114611c3857600080fd5b50565b600081359050611c4a81611c24565b92915050565b60008060408385031215611c6757611c66611bb7565b5b6000611c7585828601611c05565b9250506020611c8685828601611c3b565b9150509250929050565b60008115159050919050565b611ca581611c90565b82525050565b6000602082019050611cc06000830184611c9c565b92915050565b600060208284031215611cdc57611cdb611bb7565b5b6000611cea84828501611c3b565b91505092915050565b611cfc81611c1a565b82525050565b6000602082019050611d176000830184611cf3565b92915050565b600080600060608486031215611d3657611d35611bb7565b5b6000611d4486828701611c05565b9350506020611d5586828701611c05565b9250506040611d6686828701611c3b565b9150509250925092565b600060ff82169050919050565b611d8681611d70565b82525050565b6000602082019050611da16000830184611d7d565b92915050565b600060208284031215611dbd57611dbc611bb7565b5b6000611dcb84828501611c05565b91505092915050565b6000819050919050565b6000611df9611df4611def84611bbc565b611dd4565b611bbc565b9050919050565b6000611e0b82611dde565b9050919050565b6000611e1d82611e00565b9050919050565b611e2d81611e12565b82525050565b6000602082019050611e486000830184611e24565b92915050565b611e5781611bdc565b82525050565b6000602082019050611e726000830184611e4e565b92915050565b611e8181611c90565b8114611e8c57600080fd5b50565b600081359050611e9e81611e78565b92915050565b60008060408385031215611ebb57611eba611bb7565b5b6000611ec985828601611c05565b9250506020611eda85828601611e8f565b9150509250929050565b60008060408385031215611efb57611efa611bb7565b5b6000611f0985828601611c05565b9250506020611f1a85828601611c05565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f6b57607f821691505b602082108103611f7e57611f7d611f24565b5b50919050565b7f43415441493a20496e73756666696369656e742062616c616e636520746f207760008201527f6974686472617700000000000000000000000000000000000000000000000000602082015250565b6000611fe0602783611b10565b9150611feb82611f84565b604082019050919050565b6000602082019050818103600083015261200f81611fd3565b9050919050565b600081905092915050565b50565b6000612031600083612016565b915061203c82612021565b600082019050919050565b600061205282612024565b9150819050919050565b7f4661696c656420746f2077697468647261772045746865720000000000000000600082015250565b6000612092601883611b10565b915061209d8261205c565b602082019050919050565b600060208201905081810360008301526120c181612085565b9050919050565b6000815190506120d781611bee565b92915050565b6000602082840312156120f3576120f2611bb7565b5b6000612101848285016120c8565b91505092915050565b600060408201905061211f6000830185611e4e565b61212c6020830184611e4e565b9392505050565b7f43415441493a205061697220616464726573732063616e6e6f74206265207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b600061218f602a83611b10565b915061219a82612133565b604082019050919050565b600060208201905081810360008301526121be81612182565b9050919050565b60006060820190506121da6000830186611e4e565b6121e76020830185611cf3565b6121f46040830184611cf3565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061223682611c1a565b915061224183611c1a565b9250828203905081811115612259576122586121fc565b5b92915050565b60006040820190506122746000830185611cf3565b6122816020830184611cf3565b9392505050565b600061229382611c1a565b915061229e83611c1a565b92508282026122ac81611c1a565b915082820484148315176122c3576122c26121fc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061230482611c1a565b915061230f83611c1a565b92508261231f5761231e6122ca565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006123ad6123a86123a384612388565b611dd4565b611c1a565b9050919050565b6123bd81612392565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123f881611bdc565b82525050565b600061240a83836123ef565b60208301905092915050565b6000602082019050919050565b600061242e826123c3565b61243881856123ce565b9350612443836123df565b8060005b8381101561247457815161245b88826123fe565b975061246683612416565b925050600181019050612447565b5085935050505092915050565b600060a0820190506124966000830188611cf3565b6124a360208301876123b4565b81810360408301526124b58186612423565b90506124c46060830185611e4e565b6124d16080830184611cf3565b9695505050505050565b60006124e682611c1a565b91506124f183611c1a565b9250828201905080821115612509576125086121fc565b5b9291505056fea2646970667358221220a2e323c65dcee1774ae2dd92c3c8b5c07dc6eb5ae318d8b91d55a3c5a528683964736f6c63430008180033