[ { "inputs": [ { "internalType": "address", "name": "liquidityProvider", "type": "address" } ], "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" }, { "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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": "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": "pairAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pairAddress", "type": "address" } ], "name": "setPairAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxWallet", "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": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b50604051620038e4380380620038e4833981810160405281019062000037919062001012565b620000476200038b60201b60201c565b6040518060400160405280600581526020017f53616e74610000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f53414e54410000000000000000000000000000000000000000000000000000008152508160039081620000c49190620012be565b508060049081620000d69190620012be565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200014e5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001459190620013b6565b60405180910390fd5b6200015f816200039360201b60201c565b50600160086000620001766200038b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002df6200038b60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200035f81620003346200045960201b60201c565b600a62000342919062001563565b632cb41780620003539190620015b4565b6200046260201b60201c565b6107d062000372620004ef60201b60201c565b6200037e91906200162e565b6009819055505062001a2c565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004d75760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620004ce9190620013b6565b60405180910390fd5b620004eb60008383620004f960201b60201c565b5050565b6000600254905090565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580620005a15750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b620005e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005da90620016c7565b60405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156200068d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15620006f8576064600483620006a49190620015b4565b620006b091906200162e565b90506000811115620006d057620006cf8430836200071e60201b60201c565b5b620006e06200094e60201b60201c565b15620006f757620006f6620009ef60201b60201c565b5b5b62000718848483856200070c9190620016e9565b6200071e60201b60201c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200077457806002600082825462000767919062001724565b925050819055506200084a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000803578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620007fa9392919062001770565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008955780600260008282540392505081905550620008e2565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009419190620017ad565b60405180910390a3505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16620009996200038b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614158015620009cb5750600a60009054906101000a900460ff16155b8015620009ea5750600954620009e73062000d6660201b60201c565b10155b905090565b6001600a60006101000a81548160ff021916908315150217905550600062000a1d3062000d6660201b60201c565b90506000600267ffffffffffffffff81111562000a3f5762000a3e6200104f565b5b60405190808252806020026020018201604052801562000a6e5781602001602082028036833780820191505090505b509050308160008151811062000a895762000a88620017ca565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507360ae616a2155ee3d9a68541ba4544862310933d473ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b23573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b49919062001012565b8160018151811062000b605762000b5f620017ca565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600047905062000bc6307360ae616a2155ee3d9a68541ba4544862310933d48562000dae60201b60201c565b7360ae616a2155ee3d9a68541ba4544862310933d473ffffffffffffffffffffffffffffffffffffffff1663762b15628460008530426040518663ffffffff1660e01b815260040162000c1e9594939291906200190a565b600060405180830381600087803b15801562000c3957600080fd5b505af115801562000c4e573d6000803e3d6000fd5b505050506000814762000c629190620016e9565b9050600081111562000d45576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405162000cb890620019a3565b60006040518083038185875af1925050503d806000811462000cf7576040519150601f19603f3d011682016040523d82523d6000602084013e62000cfc565b606091505b505090508062000d43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d3a9062001a0a565b60405180910390fd5b505b505050506000600a60006101000a81548160ff021916908315150217905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b62000dc3838383600162000dc860201b60201c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160362000e3d5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040162000e349190620013b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000eb25760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040162000ea99190620013b6565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801562000fa2578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000f999190620017ad565b60405180910390a35b50505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000fda8262000fad565b9050919050565b62000fec8162000fcd565b811462000ff857600080fd5b50565b6000815190506200100c8162000fe1565b92915050565b6000602082840312156200102b576200102a62000fa8565b5b60006200103b8482850162000ffb565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010c657607f821691505b602082108103620010dc57620010db6200107e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001107565b62001152868362001107565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200119f6200119962001193846200116a565b62001174565b6200116a565b9050919050565b6000819050919050565b620011bb836200117e565b620011d3620011ca82620011a6565b84845462001114565b825550505050565b600090565b620011ea620011db565b620011f7818484620011b0565b505050565b5b818110156200121f5762001213600082620011e0565b600181019050620011fd565b5050565b601f8211156200126e576200123881620010e2565b6200124384620010f7565b8101602085101562001253578190505b6200126b6200126285620010f7565b830182620011fc565b50505b505050565b600082821c905092915050565b6000620012936000198460080262001273565b1980831691505092915050565b6000620012ae838362001280565b9150826002028217905092915050565b620012c98262001044565b67ffffffffffffffff811115620012e557620012e46200104f565b5b620012f18254620010ad565b620012fe82828562001223565b600060209050601f83116001811462001336576000841562001321578287015190505b6200132d8582620012a0565b8655506200139d565b601f1984166200134686620010e2565b60005b82811015620013705784890151825560018201915060208501945060208101905062001349565b868310156200139057848901516200138c601f89168262001280565b8355505b6001600288020188555050505b505050505050565b620013b08162000fcd565b82525050565b6000602082019050620013cd6000830184620013a5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200146157808604811115620014395762001438620013d3565b5b6001851615620014495780820291505b8081029050620014598562001402565b945062001419565b94509492505050565b6000826200147c57600190506200154f565b816200148c57600090506200154f565b8160018114620014a55760028114620014b057620014e6565b60019150506200154f565b60ff841115620014c557620014c4620013d3565b5b8360020a915084821115620014df57620014de620013d3565b5b506200154f565b5060208310610133831016604e8410600b8410161715620015205782820a9050838111156200151a5762001519620013d3565b5b6200154f565b6200152f84848460016200140f565b92509050818404811115620015495762001548620013d3565b5b81810290505b9392505050565b600060ff82169050919050565b600062001570826200116a565b91506200157d8362001556565b9250620015ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200146a565b905092915050565b6000620015c1826200116a565b9150620015ce836200116a565b9250828202620015de816200116a565b91508282048414831517620015f857620015f7620013d3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200163b826200116a565b915062001648836200116a565b9250826200165b576200165a620015ff565b5b828204905092915050565b600082825260208201905092915050565b7f74726164696e67206e6f74207374617274656400000000000000000000000000600082015250565b6000620016af60138362001666565b9150620016bc8262001677565b602082019050919050565b60006020820190508181036000830152620016e281620016a0565b9050919050565b6000620016f6826200116a565b915062001703836200116a565b92508282039050818111156200171e576200171d620013d3565b5b92915050565b600062001731826200116a565b91506200173e836200116a565b9250828201905080821115620017595762001758620013d3565b5b92915050565b6200176a816200116a565b82525050565b6000606082019050620017876000830186620013a5565b6200179660208301856200175f565b620017a560408301846200175f565b949350505050565b6000602082019050620017c460008301846200175f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000620018246200181e6200181884620017f9565b62001174565b6200116a565b9050919050565b620018368162001803565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b620018738162000fcd565b82525050565b600062001887838362001868565b60208301905092915050565b6000602082019050919050565b6000620018ad826200183c565b620018b9818562001847565b9350620018c68362001858565b8060005b83811015620018fd578151620018e1888262001879565b9750620018ee8362001893565b925050600181019050620018ca565b5085935050505092915050565b600060a0820190506200192160008301886200175f565b6200193060208301876200182b565b8181036040830152620019448186620018a0565b9050620019556060830185620013a5565b6200196460808301846200175f565b9695505050505050565b600081905092915050565b50565b60006200198b6000836200196e565b9150620019988262001979565b600082019050919050565b6000620019b0826200197c565b9150819050919050565b7f7061796d656e74206661696c6564000000000000000000000000000000000000600082015250565b6000620019f2600e8362001666565b9150620019ff82620019ba565b602082019050919050565b6000602082019050818103600083015262001a2581620019e3565b9050919050565b611ea88062001a3c6000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063a8b0898211610064578063a8b089821461032f578063a9059cbb1461035a578063dd62ed3e14610397578063e0f3ccf5146103d4578063f2fde38b146103ff57610109565b8063715018a6146102995780638da5cb5b146102b057806395d89b41146102db578063a22d48321461030657610109565b806323b872dd116100d157806323b872dd146101c95780632dc0562d14610206578063313ce5671461023157806370a082311461025c57610109565b80630445b6671461010b57806306fdde0314610136578063095ea7b31461016157806318160ddd1461019e57610109565b3661010957005b005b34801561011757600080fd5b50610120610428565b60405161012d91906115bc565b60405180910390f35b34801561014257600080fd5b5061014b61042e565b6040516101589190611667565b60405180910390f35b34801561016d57600080fd5b5061018860048036038101906101839190611718565b6104c0565b6040516101959190611773565b60405180910390f35b3480156101aa57600080fd5b506101b36104e3565b6040516101c091906115bc565b60405180910390f35b3480156101d557600080fd5b506101f060048036038101906101eb919061178e565b6104ed565b6040516101fd9190611773565b60405180910390f35b34801561021257600080fd5b5061021b61051c565b60405161022891906117f0565b60405180910390f35b34801561023d57600080fd5b50610246610542565b6040516102539190611827565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e9190611842565b61054b565b60405161029091906115bc565b60405180910390f35b3480156102a557600080fd5b506102ae610593565b005b3480156102bc57600080fd5b506102c56105a7565b6040516102d291906117f0565b60405180910390f35b3480156102e757600080fd5b506102f06105d1565b6040516102fd9190611667565b60405180910390f35b34801561031257600080fd5b5061032d60048036038101906103289190611842565b610663565b005b34801561033b57600080fd5b5061034461078b565b60405161035191906117f0565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190611718565b6107b1565b60405161038e9190611773565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b9919061186f565b6107d4565b6040516103cb91906115bc565b60405180910390f35b3480156103e057600080fd5b506103e961085b565b6040516103f691906115bc565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190611842565b610860565b005b60095481565b60606003805461043d906118de565b80601f0160208091040260200160405190810160405280929190818152602001828054610469906118de565b80156104b65780601f1061048b576101008083540402835291602001916104b6565b820191906000526020600020905b81548152906001019060200180831161049957829003601f168201915b5050505050905090565b6000806104cb6108e6565b90506104d88185856108ee565b600191505092915050565b6000600254905090565b6000806104f86108e6565b9050610505858285610900565b610510858585610994565b60019150509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61059b610a88565b6105a56000610b0f565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105e0906118de565b80601f016020809104026020016040519081016040528092919081815260200182805461060c906118de565b80156106595780601f1061062e57610100808354040283529160200191610659565b820191906000526020600020905b81548152906001019060200180831161063c57829003601f168201915b5050505050905090565b61066b610a88565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f39061195b565b60405180910390fd5b60006107078261054b565b11610747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073e906119c7565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806107bc6108e6565b90506107c9818585610994565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600481565b610868610a88565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108da5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108d191906117f0565b60405180910390fd5b6108e381610b0f565b50565b600033905090565b6108fb8383836001610bd5565b505050565b600061090c84846107d4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461098e578181101561097e578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610975939291906119e7565b60405180910390fd5b61098d84848484036000610bd5565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a065760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109fd91906117f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a785760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a6f91906117f0565b60405180910390fd5b610a83838383610dac565b505050565b610a906108e6565b73ffffffffffffffffffffffffffffffffffffffff16610aae6105a7565b73ffffffffffffffffffffffffffffffffffffffff1614610b0d57610ad16108e6565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610b0491906117f0565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c475760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610c3e91906117f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb95760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610cb091906117f0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610da6578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d9d91906115bc565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580610e535750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8990611a6a565b60405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f3b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610f87576064600483610f4f9190611ab9565b610f599190611b2a565b90506000811115610f7057610f6f843083610fa3565b5b610f786111c8565b15610f8657610f85611257565b5b5b610f9d84848385610f989190611b5b565b610fa3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff5578060026000828254610fe99190611b8f565b925050819055506110c8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611081578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611078939291906119e7565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611111578060026000828254039250508190555061115e565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111bb91906115bc565b60405180910390a3505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661120b6108e6565b73ffffffffffffffffffffffffffffffffffffffff161415801561123c5750600a60009054906101000a900460ff16155b8015611252575060095461124f3061054b565b10155b905090565b6001600a60006101000a81548160ff021916908315150217905550600061127d3061054b565b90506000600267ffffffffffffffff81111561129c5761129b611bc3565b5b6040519080825280602002602001820160405280156112ca5781602001602082028036833780820191505090505b50905030816000815181106112e2576112e1611bf2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507360ae616a2155ee3d9a68541ba4544862310933d473ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561137b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139f9190611c36565b816001815181106113b3576113b2611bf2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050611411307360ae616a2155ee3d9a68541ba4544862310933d4856108ee565b7360ae616a2155ee3d9a68541ba4544862310933d473ffffffffffffffffffffffffffffffffffffffff1663762b15628460008530426040518663ffffffff1660e01b8152600401611467959493929190611d66565b600060405180830381600087803b15801561148157600080fd5b505af1158015611495573d6000803e3d6000fd5b50505050600081476114a79190611b5b565b90506000811115611582576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516114fa90611df1565b60006040518083038185875af1925050503d8060008114611537576040519150601f19603f3d011682016040523d82523d6000602084013e61153c565b606091505b5050905080611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790611e52565b60405180910390fd5b505b505050506000600a60006101000a81548160ff021916908315150217905550565b6000819050919050565b6115b6816115a3565b82525050565b60006020820190506115d160008301846115ad565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116115780820151818401526020810190506115f6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611639826115d7565b61164381856115e2565b93506116538185602086016115f3565b61165c8161161d565b840191505092915050565b60006020820190508181036000830152611681818461162e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116b98261168e565b9050919050565b6116c9816116ae565b81146116d457600080fd5b50565b6000813590506116e6816116c0565b92915050565b6116f5816115a3565b811461170057600080fd5b50565b600081359050611712816116ec565b92915050565b6000806040838503121561172f5761172e611689565b5b600061173d858286016116d7565b925050602061174e85828601611703565b9150509250929050565b60008115159050919050565b61176d81611758565b82525050565b60006020820190506117886000830184611764565b92915050565b6000806000606084860312156117a7576117a6611689565b5b60006117b5868287016116d7565b93505060206117c6868287016116d7565b92505060406117d786828701611703565b9150509250925092565b6117ea816116ae565b82525050565b600060208201905061180560008301846117e1565b92915050565b600060ff82169050919050565b6118218161180b565b82525050565b600060208201905061183c6000830184611818565b92915050565b60006020828403121561185857611857611689565b5b6000611866848285016116d7565b91505092915050565b6000806040838503121561188657611885611689565b5b6000611894858286016116d7565b92505060206118a5858286016116d7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118f657607f821691505b602082108103611909576119086118af565b5b50919050565b7f616c726561647920736574206279206f776e6572000000000000000000000000600082015250565b60006119456014836115e2565b91506119508261190f565b602082019050919050565b6000602082019050818103600083015261197481611938565b9050919050565b7f77726f6e67207061697200000000000000000000000000000000000000000000600082015250565b60006119b1600a836115e2565b91506119bc8261197b565b602082019050919050565b600060208201905081810360008301526119e0816119a4565b9050919050565b60006060820190506119fc60008301866117e1565b611a0960208301856115ad565b611a1660408301846115ad565b949350505050565b7f74726164696e67206e6f74207374617274656400000000000000000000000000600082015250565b6000611a546013836115e2565b9150611a5f82611a1e565b602082019050919050565b60006020820190508181036000830152611a8381611a47565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ac4826115a3565b9150611acf836115a3565b9250828202611add816115a3565b91508282048414831517611af457611af3611a8a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611b35826115a3565b9150611b40836115a3565b925082611b5057611b4f611afb565b5b828204905092915050565b6000611b66826115a3565b9150611b71836115a3565b9250828203905081811115611b8957611b88611a8a565b5b92915050565b6000611b9a826115a3565b9150611ba5836115a3565b9250828201905080821115611bbd57611bbc611a8a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050611c30816116c0565b92915050565b600060208284031215611c4c57611c4b611689565b5b6000611c5a84828501611c21565b91505092915050565b6000819050919050565b6000819050919050565b6000611c92611c8d611c8884611c63565b611c6d565b6115a3565b9050919050565b611ca281611c77565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611cdd816116ae565b82525050565b6000611cef8383611cd4565b60208301905092915050565b6000602082019050919050565b6000611d1382611ca8565b611d1d8185611cb3565b9350611d2883611cc4565b8060005b83811015611d59578151611d408882611ce3565b9750611d4b83611cfb565b925050600181019050611d2c565b5085935050505092915050565b600060a082019050611d7b60008301886115ad565b611d886020830187611c99565b8181036040830152611d9a8186611d08565b9050611da960608301856117e1565b611db660808301846115ad565b9695505050505050565b600081905092915050565b50565b6000611ddb600083611dc0565b9150611de682611dcb565b600082019050919050565b6000611dfc82611dce565b9150819050919050565b7f7061796d656e74206661696c6564000000000000000000000000000000000000600082015250565b6000611e3c600e836115e2565b9150611e4782611e06565b602082019050919050565b60006020820190508181036000830152611e6b81611e2f565b905091905056fea2646970667358221220b29e23badd86573f05031b7524a9ef38182f6a32a836fa0d361eafee9e0b7f1a64736f6c63430008140033000000000000000000000000d9ed91b1305d45b95271bed87c59f9ee601ff565