false
false

Contract Address Details

0x86AF8941e4e84D6CC0e4B0E74B0dB8609a71f3cd

Token
Octa Inu (OINU)
Creator
0x791b07–f2df3b at 0xc073f4–a65b23
Balance
0 OCTA ($0.00 USD)
Tokens
Fetching tokens...
Transactions
3 Transactions
Transfers
0 Transfers
Gas Used
135,971
Last Balance Update
6684363
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
OINU




Optimization enabled
false
Compiler version
v0.8.17+commit.8df45f5f




EVM Version
default




Verified at
2024-05-24T07:55:33.595401Z

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"MinTokensBeforeSwapUpdated","inputs":[{"type":"uint256","name":"minTokensBeforeSwap","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"SwapAndLiquify","inputs":[{"type":"uint256","name":"tokensSwapped","internalType":"uint256","indexed":false},{"type":"uint256","name":"ethReceived","internalType":"uint256","indexed":false},{"type":"uint256","name":"tokensIntoLiqudity","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"SwapAndLiquifyEnabledUpdated","inputs":[{"type":"bool","name":"enabled","internalType":"bool","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burn","inputs":[{"type":"uint256","name":"tokens","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"buyFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"excludeFromFee","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"includeInFee","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isExcludedFromFee","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"numTokensSellToAddToLiquidity","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"sellFee","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFees","inputs":[{"type":"uint256","name":"bFee","internalType":"uint256"},{"type":"uint256","name":"sFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setNumTokensSellToAddToLiquidity","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSwapAndLiquifyEnabled","inputs":[{"type":"bool","name":"_enabled","internalType":"bool"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapAndLiquifyEnabled","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"uniswapV2Pair","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IUniswapV2Router02"}],"name":"uniswapV2Router","inputs":[]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

0x6080604052600060085560016009556001600b60156101000a81548160ff0219169083151502179055503480156200003657600080fd5b506040518060400160405280600881526020017f4f63746120496e750000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4f494e5500000000000000000000000000000000000000000000000000000000815250620000b3620004dc60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600590816200017e91906200095d565b5080600690816200019091906200095d565b505050620001a3620004e460201b60201c565b600a620001b1919062000bd4565b620f4240620001c1919062000c25565b600c8190555060007304142a0effe2c9d8e7189edacf7f65ebfa428b4090508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000252919062000cda565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e0919062000cda565b6040518363ffffffff1660e01b8152600401620002ff92919062000d1d565b6020604051808303816000875af11580156200031f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000345919062000cda565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000620003dc620004dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004d562000499620004ed60201b60201c565b620004a9620004e460201b60201c565b600a620004b7919062000bd4565b640b2d05e000620004c9919062000c25565b6200051660201b60201c565b5062000e36565b600033905090565b60006012905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000588576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200057f9062000dab565b60405180910390fd5b6200059c60008383620006c660201b60201c565b620005b881600454620006cb60201b620013681790919060201c565b6004819055506200061781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620006cb60201b620013681790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006ba919062000dde565b60405180910390a35050565b505050565b60008183620006db919062000dfb565b905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200076557607f821691505b6020821081036200077b576200077a6200071d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007a6565b620007f18683620007a6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200083e62000838620008328462000809565b62000813565b62000809565b9050919050565b6000819050919050565b6200085a836200081d565b62000872620008698262000845565b848454620007b3565b825550505050565b600090565b620008896200087a565b620008968184846200084f565b505050565b5b81811015620008be57620008b26000826200087f565b6001810190506200089c565b5050565b601f8211156200090d57620008d78162000781565b620008e28462000796565b81016020851015620008f2578190505b6200090a620009018562000796565b8301826200089b565b50505b505050565b600082821c905092915050565b6000620009326000198460080262000912565b1980831691505092915050565b60006200094d83836200091f565b9150826002028217905092915050565b6200096882620006e3565b67ffffffffffffffff811115620009845762000983620006ee565b5b6200099082546200074c565b6200099d828285620008c2565b600060209050601f831160018114620009d55760008415620009c0578287015190505b620009cc85826200093f565b86555062000a3c565b601f198416620009e58662000781565b60005b8281101562000a0f57848901518255600182019150602085019450602081019050620009e8565b8683101562000a2f578489015162000a2b601f8916826200091f565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ad25780860481111562000aaa5762000aa962000a44565b5b600185161562000aba5780820291505b808102905062000aca8562000a73565b945062000a8a565b94509492505050565b60008262000aed576001905062000bc0565b8162000afd576000905062000bc0565b816001811462000b16576002811462000b215762000b57565b600191505062000bc0565b60ff84111562000b365762000b3562000a44565b5b8360020a91508482111562000b505762000b4f62000a44565b5b5062000bc0565b5060208310610133831016604e8410600b841016171562000b915782820a90508381111562000b8b5762000b8a62000a44565b5b62000bc0565b62000ba0848484600162000a80565b9250905081840481111562000bba5762000bb962000a44565b5b81810290505b9392505050565b600060ff82169050919050565b600062000be18262000809565b915062000bee8362000bc7565b925062000c1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000adb565b905092915050565b600062000c328262000809565b915062000c3f8362000809565b925082820262000c4f8162000809565b9150828204841483151762000c695762000c6862000a44565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ca28262000c75565b9050919050565b62000cb48162000c95565b811462000cc057600080fd5b50565b60008151905062000cd48162000ca9565b92915050565b60006020828403121562000cf35762000cf262000c70565b5b600062000d038482850162000cc3565b91505092915050565b62000d178162000c95565b82525050565b600060408201905062000d34600083018562000d0c565b62000d43602083018462000d0c565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d93601f8362000d4a565b915062000da08262000d5b565b602082019050919050565b6000602082019050818103600083015262000dc68162000d84565b9050919050565b62000dd88162000809565b82525050565b600060208201905062000df5600083018462000dcd565b92915050565b600062000e088262000809565b915062000e158362000809565b925082820190508082111562000e305762000e2f62000a44565b5b92915050565b6131a38062000e466000396000f3fe6080604052600436106101a05760003560e01c80634a74bb02116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e146105eb578063ea2f0b3714610628578063f0f165af14610651578063f2fde38b1461067a576101a7565b8063a9059cbb1461055a578063c49b9a8014610597578063d12a7688146105c0576101a7565b8063715018a6116100c6578063715018a6146104b05780638da5cb5b146104c757806395d89b41146104f2578063a457c2d71461051d576101a7565b80634a74bb021461040b5780635342acb41461043657806370a0823114610473576101a7565b80632b14ca561161015957806342966c681161013357806342966c6814610363578063437823ec1461038c57806347062402146103b557806349bd5a5e146103e0576101a7565b80632b14ca56146102d0578063313ce567146102fb5780633950935114610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630b78f9c0146102145780631694505e1461023d57806318160ddd1461026857806323b872dd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c16106a3565b6040516101ce91906122df565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061239a565b610735565b60405161020b91906123f5565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612410565b610753565b005b34801561024957600080fd5b506102526107e1565b60405161025f91906124af565b60405180910390f35b34801561027457600080fd5b5061027d610807565b60405161028a91906124d9565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b591906124f4565b610811565b6040516102c791906123f5565b60405180910390f35b3480156102dc57600080fd5b506102e56108ea565b6040516102f291906124d9565b60405180910390f35b34801561030757600080fd5b506103106108f0565b60405161031d9190612563565b60405180910390f35b34801561033257600080fd5b5061034d6004803603810190610348919061239a565b6108f9565b60405161035a91906123f5565b60405180910390f35b34801561036f57600080fd5b5061038a6004803603810190610385919061257e565b6109ac565b005b34801561039857600080fd5b506103b360048036038101906103ae91906125ab565b610a53565b005b3480156103c157600080fd5b506103ca610b2a565b6040516103d791906124d9565b60405180910390f35b3480156103ec57600080fd5b506103f5610b30565b60405161040291906125e7565b60405180910390f35b34801561041757600080fd5b50610420610b56565b60405161042d91906123f5565b60405180910390f35b34801561044257600080fd5b5061045d600480360381019061045891906125ab565b610b69565b60405161046a91906123f5565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906125ab565b610bbf565b6040516104a791906124d9565b60405180910390f35b3480156104bc57600080fd5b506104c5610c08565b005b3480156104d357600080fd5b506104dc610d42565b6040516104e991906125e7565b60405180910390f35b3480156104fe57600080fd5b50610507610d6b565b60405161051491906122df565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f919061239a565b610dfd565b60405161055191906123f5565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c919061239a565b610eca565b60405161058e91906123f5565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b9919061262e565b610ee8565b005b3480156105cc57600080fd5b506105d5610fb8565b6040516105e291906124d9565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d919061265b565b610fbe565b60405161061f91906124d9565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a91906125ab565b611045565b005b34801561065d57600080fd5b506106786004803603810190610673919061257e565b61111c565b005b34801561068657600080fd5b506106a1600480360381019061069c91906125ab565b6111c0565b005b6060600580546106b2906126ca565b80601f01602080910402602001604051908101604052809291908181526020018280546106de906126ca565b801561072b5780601f106107005761010080835404028352916020019161072b565b820191906000526020600020905b81548152906001019060200180831161070e57829003601f168201915b5050505050905090565b600061074961074261137e565b8484611386565b6001905092915050565b61075b61137e565b73ffffffffffffffffffffffffffffffffffffffff16610779610d42565b73ffffffffffffffffffffffffffffffffffffffff16146107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c690612747565b60405180910390fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b600061081e84848461154f565b6108df8461082a61137e565b6108da8560405180606001604052806028815260200161312160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061089061137e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b611386565b600190509392505050565b60095481565b60006012905090565b60006109a261090661137e565b8461099d856003600061091761137e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136890919063ffffffff16565b611386565b6001905092915050565b6109b461137e565b73ffffffffffffffffffffffffffffffffffffffff166109d2610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f90612747565b60405180910390fd5b610a5033610a346108f0565b600a610a4091906128c9565b83610a4b9190612914565b6119b6565b50565b610a5b61137e565b73ffffffffffffffffffffffffffffffffffffffff16610a79610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac690612747565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60159054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c1061137e565b73ffffffffffffffffffffffffffffffffffffffff16610c2e610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90612747565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610d7a906126ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610da6906126ca565b8015610df35780601f10610dc857610100808354040283529160200191610df3565b820191906000526020600020905b815481529060010190602001808311610dd657829003601f168201915b5050505050905090565b6000610ec0610e0a61137e565b84610ebb856040518060600160405280602581526020016131496025913960036000610e3461137e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b611386565b6001905092915050565b6000610ede610ed761137e565b848461154f565b6001905092915050565b610ef061137e565b73ffffffffffffffffffffffffffffffffffffffff16610f0e610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612747565b60405180910390fd5b80600b60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610fad91906123f5565b60405180910390a150565b600c5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61104d61137e565b73ffffffffffffffffffffffffffffffffffffffff1661106b610d42565b73ffffffffffffffffffffffffffffffffffffffff16146110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612747565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61112461137e565b73ffffffffffffffffffffffffffffffffffffffff16611142610d42565b73ffffffffffffffffffffffffffffffffffffffff1614611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612747565b60405180910390fd5b6111a06108f0565b600a6111ac91906128c9565b816111b79190612914565b600c8190555050565b6111c861137e565b73ffffffffffffffffffffffffffffffffffffffff166111e6610d42565b73ffffffffffffffffffffffffffffffffffffffff161461123c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123390612747565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906129c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818361137691906129e8565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612a8e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612b20565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154291906124d9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612bb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612c44565b60405180910390fd5b60008111611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612cd6565b60405180910390fd5b600061167b30610bbf565b90506000600c5482101590508080156116a15750600b60149054906101000a900460ff16155b80156116fb5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117135750600b60159054906101000a900460ff165b1561172757600c54915061172682611b65565b5b600060019050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117ce5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156117e7576117de868686611c49565b60009050611959565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611899576000611866606461185860085488611ee090919063ffffffff16565b611ef690919063ffffffff16565b905061187b8186611f0c90919063ffffffff16565b9450611888873083611c49565b611893878787611c49565b50611958565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361194b576000611918606461190a60095488611ee090919063ffffffff16565b611ef690919063ffffffff16565b905061192d8186611f0c90919063ffffffff16565b945061193a873083611c49565b611945878787611c49565b50611957565b611956868686611c49565b5b5b5b505050505050565b60008383111582906119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a091906122df565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90612d68565b60405180910390fd5b611a3182600083611f22565b611a9d816040518060600160405280602281526020016130d960229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af581600454611f0c90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5991906124d9565b60405180910390a35050565b6001600b60146101000a81548160ff0219169083151502179055506000611baa6064611b9c60095485611ee090919063ffffffff16565b611ef690919063ffffffff16565b9050600081905060008103611bc0575050611c2b565b60006002828486611bd19190612914565b611bdb9190612db7565b611be59190612db7565b9050611bfb8185611bf69190612de8565b611f27565b60004790506000819050600083118015611c155750600081115b15611c2557611c24838261216a565b5b50505050505b6000600b60146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90612bb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90612c44565b60405180910390fd5b611d32838383611f22565b611d9e816040518060600160405280602681526020016130fb60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e3381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136890919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ed391906124d9565b60405180910390a3505050565b60008183611eee9190612914565b905092915050565b60008183611f049190612db7565b905092915050565b60008183611f1a9190612de8565b905092915050565b505050565b6000600267ffffffffffffffff811115611f4457611f43612e1c565b5b604051908082528060200260200182016040528015611f725781602001602082028036833780820191505090505b5090503081600081518110611f8a57611f89612e4b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120559190612e8f565b8160018151811061206957612068612e4b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120d030600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611386565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612134959493929190612fb5565b600060405180830381600087803b15801561214e57600080fd5b505af1158015612162573d6000803e3d6000fd5b505050505050565b61219730600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611386565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806121e3610d42565b426040518863ffffffff1660e01b81526004016122059695949392919061300f565b60606040518083038185885af1158015612223573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122489190613085565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561228957808201518184015260208101905061226e565b60008484015250505050565b6000601f19601f8301169050919050565b60006122b18261224f565b6122bb818561225a565b93506122cb81856020860161226b565b6122d481612295565b840191505092915050565b600060208201905081810360008301526122f981846122a6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061233182612306565b9050919050565b61234181612326565b811461234c57600080fd5b50565b60008135905061235e81612338565b92915050565b6000819050919050565b61237781612364565b811461238257600080fd5b50565b6000813590506123948161236e565b92915050565b600080604083850312156123b1576123b0612301565b5b60006123bf8582860161234f565b92505060206123d085828601612385565b9150509250929050565b60008115159050919050565b6123ef816123da565b82525050565b600060208201905061240a60008301846123e6565b92915050565b6000806040838503121561242757612426612301565b5b600061243585828601612385565b925050602061244685828601612385565b9150509250929050565b6000819050919050565b600061247561247061246b84612306565b612450565b612306565b9050919050565b60006124878261245a565b9050919050565b60006124998261247c565b9050919050565b6124a98161248e565b82525050565b60006020820190506124c460008301846124a0565b92915050565b6124d381612364565b82525050565b60006020820190506124ee60008301846124ca565b92915050565b60008060006060848603121561250d5761250c612301565b5b600061251b8682870161234f565b935050602061252c8682870161234f565b925050604061253d86828701612385565b9150509250925092565b600060ff82169050919050565b61255d81612547565b82525050565b60006020820190506125786000830184612554565b92915050565b60006020828403121561259457612593612301565b5b60006125a284828501612385565b91505092915050565b6000602082840312156125c1576125c0612301565b5b60006125cf8482850161234f565b91505092915050565b6125e181612326565b82525050565b60006020820190506125fc60008301846125d8565b92915050565b61260b816123da565b811461261657600080fd5b50565b60008135905061262881612602565b92915050565b60006020828403121561264457612643612301565b5b600061265284828501612619565b91505092915050565b6000806040838503121561267257612671612301565b5b60006126808582860161234f565b92505060206126918582860161234f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806126e257607f821691505b6020821081036126f5576126f461269b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061273160208361225a565b915061273c826126fb565b602082019050919050565b6000602082019050818103600083015261276081612724565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127ed578086048111156127c9576127c8612767565b5b60018516156127d85780820291505b80810290506127e685612796565b94506127ad565b94509492505050565b60008261280657600190506128c2565b8161281457600090506128c2565b816001811461282a576002811461283457612863565b60019150506128c2565b60ff84111561284657612845612767565b5b8360020a91508482111561285d5761285c612767565b5b506128c2565b5060208310610133831016604e8410600b84101617156128985782820a90508381111561289357612892612767565b5b6128c2565b6128a584848460016127a3565b925090508184048111156128bc576128bb612767565b5b81810290505b9392505050565b60006128d482612364565b91506128df83612547565b925061290c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127f6565b905092915050565b600061291f82612364565b915061292a83612364565b925082820261293881612364565b9150828204841483151761294f5761294e612767565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129b260268361225a565b91506129bd82612956565b604082019050919050565b600060208201905081810360008301526129e1816129a5565b9050919050565b60006129f382612364565b91506129fe83612364565b9250828201905080821115612a1657612a15612767565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a7860248361225a565b9150612a8382612a1c565b604082019050919050565b60006020820190508181036000830152612aa781612a6b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b0a60228361225a565b9150612b1582612aae565b604082019050919050565b60006020820190508181036000830152612b3981612afd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b9c60258361225a565b9150612ba782612b40565b604082019050919050565b60006020820190508181036000830152612bcb81612b8f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c2e60238361225a565b9150612c3982612bd2565b604082019050919050565b60006020820190508181036000830152612c5d81612c21565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cc060298361225a565b9150612ccb82612c64565b604082019050919050565b60006020820190508181036000830152612cef81612cb3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5260218361225a565b9150612d5d82612cf6565b604082019050919050565b60006020820190508181036000830152612d8181612d45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612dc282612364565b9150612dcd83612364565b925082612ddd57612ddc612d88565b5b828204905092915050565b6000612df382612364565b9150612dfe83612364565b9250828203905081811115612e1657612e15612767565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e8981612338565b92915050565b600060208284031215612ea557612ea4612301565b5b6000612eb384828501612e7a565b91505092915050565b6000819050919050565b6000612ee1612edc612ed784612ebc565b612450565b612364565b9050919050565b612ef181612ec6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f2c81612326565b82525050565b6000612f3e8383612f23565b60208301905092915050565b6000602082019050919050565b6000612f6282612ef7565b612f6c8185612f02565b9350612f7783612f13565b8060005b83811015612fa8578151612f8f8882612f32565b9750612f9a83612f4a565b925050600181019050612f7b565b5085935050505092915050565b600060a082019050612fca60008301886124ca565b612fd76020830187612ee8565b8181036040830152612fe98186612f57565b9050612ff860608301856125d8565b61300560808301846124ca565b9695505050505050565b600060c08201905061302460008301896125d8565b61303160208301886124ca565b61303e6040830187612ee8565b61304b6060830186612ee8565b61305860808301856125d8565b61306560a08301846124ca565b979650505050505050565b60008151905061307f8161236e565b92915050565b60008060006060848603121561309e5761309d612301565b5b60006130ac86828701613070565b93505060206130bd86828701613070565b92505060406130ce86828701613070565b915050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ed3b95d3632799328ab7b2fa70850a20828dec1f373b67db77f1124a86b95a3664736f6c63430008110033

Deployed ByteCode

0x6080604052600436106101a05760003560e01c80634a74bb02116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e146105eb578063ea2f0b3714610628578063f0f165af14610651578063f2fde38b1461067a576101a7565b8063a9059cbb1461055a578063c49b9a8014610597578063d12a7688146105c0576101a7565b8063715018a6116100c6578063715018a6146104b05780638da5cb5b146104c757806395d89b41146104f2578063a457c2d71461051d576101a7565b80634a74bb021461040b5780635342acb41461043657806370a0823114610473576101a7565b80632b14ca561161015957806342966c681161013357806342966c6814610363578063437823ec1461038c57806347062402146103b557806349bd5a5e146103e0576101a7565b80632b14ca56146102d0578063313ce567146102fb5780633950935114610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630b78f9c0146102145780631694505e1461023d57806318160ddd1461026857806323b872dd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c16106a3565b6040516101ce91906122df565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061239a565b610735565b60405161020b91906123f5565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612410565b610753565b005b34801561024957600080fd5b506102526107e1565b60405161025f91906124af565b60405180910390f35b34801561027457600080fd5b5061027d610807565b60405161028a91906124d9565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b591906124f4565b610811565b6040516102c791906123f5565b60405180910390f35b3480156102dc57600080fd5b506102e56108ea565b6040516102f291906124d9565b60405180910390f35b34801561030757600080fd5b506103106108f0565b60405161031d9190612563565b60405180910390f35b34801561033257600080fd5b5061034d6004803603810190610348919061239a565b6108f9565b60405161035a91906123f5565b60405180910390f35b34801561036f57600080fd5b5061038a6004803603810190610385919061257e565b6109ac565b005b34801561039857600080fd5b506103b360048036038101906103ae91906125ab565b610a53565b005b3480156103c157600080fd5b506103ca610b2a565b6040516103d791906124d9565b60405180910390f35b3480156103ec57600080fd5b506103f5610b30565b60405161040291906125e7565b60405180910390f35b34801561041757600080fd5b50610420610b56565b60405161042d91906123f5565b60405180910390f35b34801561044257600080fd5b5061045d600480360381019061045891906125ab565b610b69565b60405161046a91906123f5565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906125ab565b610bbf565b6040516104a791906124d9565b60405180910390f35b3480156104bc57600080fd5b506104c5610c08565b005b3480156104d357600080fd5b506104dc610d42565b6040516104e991906125e7565b60405180910390f35b3480156104fe57600080fd5b50610507610d6b565b60405161051491906122df565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f919061239a565b610dfd565b60405161055191906123f5565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c919061239a565b610eca565b60405161058e91906123f5565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b9919061262e565b610ee8565b005b3480156105cc57600080fd5b506105d5610fb8565b6040516105e291906124d9565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d919061265b565b610fbe565b60405161061f91906124d9565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a91906125ab565b611045565b005b34801561065d57600080fd5b506106786004803603810190610673919061257e565b61111c565b005b34801561068657600080fd5b506106a1600480360381019061069c91906125ab565b6111c0565b005b6060600580546106b2906126ca565b80601f01602080910402602001604051908101604052809291908181526020018280546106de906126ca565b801561072b5780601f106107005761010080835404028352916020019161072b565b820191906000526020600020905b81548152906001019060200180831161070e57829003601f168201915b5050505050905090565b600061074961074261137e565b8484611386565b6001905092915050565b61075b61137e565b73ffffffffffffffffffffffffffffffffffffffff16610779610d42565b73ffffffffffffffffffffffffffffffffffffffff16146107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c690612747565b60405180910390fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b600061081e84848461154f565b6108df8461082a61137e565b6108da8560405180606001604052806028815260200161312160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061089061137e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b611386565b600190509392505050565b60095481565b60006012905090565b60006109a261090661137e565b8461099d856003600061091761137e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136890919063ffffffff16565b611386565b6001905092915050565b6109b461137e565b73ffffffffffffffffffffffffffffffffffffffff166109d2610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f90612747565b60405180910390fd5b610a5033610a346108f0565b600a610a4091906128c9565b83610a4b9190612914565b6119b6565b50565b610a5b61137e565b73ffffffffffffffffffffffffffffffffffffffff16610a79610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac690612747565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60159054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c1061137e565b73ffffffffffffffffffffffffffffffffffffffff16610c2e610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90612747565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610d7a906126ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610da6906126ca565b8015610df35780601f10610dc857610100808354040283529160200191610df3565b820191906000526020600020905b815481529060010190602001808311610dd657829003601f168201915b5050505050905090565b6000610ec0610e0a61137e565b84610ebb856040518060600160405280602581526020016131496025913960036000610e3461137e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b611386565b6001905092915050565b6000610ede610ed761137e565b848461154f565b6001905092915050565b610ef061137e565b73ffffffffffffffffffffffffffffffffffffffff16610f0e610d42565b73ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612747565b60405180910390fd5b80600b60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610fad91906123f5565b60405180910390a150565b600c5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61104d61137e565b73ffffffffffffffffffffffffffffffffffffffff1661106b610d42565b73ffffffffffffffffffffffffffffffffffffffff16146110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612747565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61112461137e565b73ffffffffffffffffffffffffffffffffffffffff16611142610d42565b73ffffffffffffffffffffffffffffffffffffffff1614611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612747565b60405180910390fd5b6111a06108f0565b600a6111ac91906128c9565b816111b79190612914565b600c8190555050565b6111c861137e565b73ffffffffffffffffffffffffffffffffffffffff166111e6610d42565b73ffffffffffffffffffffffffffffffffffffffff161461123c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123390612747565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906129c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818361137691906129e8565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612a8e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612b20565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154291906124d9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612bb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612c44565b60405180910390fd5b60008111611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612cd6565b60405180910390fd5b600061167b30610bbf565b90506000600c5482101590508080156116a15750600b60149054906101000a900460ff16155b80156116fb5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117135750600b60159054906101000a900460ff165b1561172757600c54915061172682611b65565b5b600060019050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117ce5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156117e7576117de868686611c49565b60009050611959565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611899576000611866606461185860085488611ee090919063ffffffff16565b611ef690919063ffffffff16565b905061187b8186611f0c90919063ffffffff16565b9450611888873083611c49565b611893878787611c49565b50611958565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361194b576000611918606461190a60095488611ee090919063ffffffff16565b611ef690919063ffffffff16565b905061192d8186611f0c90919063ffffffff16565b945061193a873083611c49565b611945878787611c49565b50611957565b611956868686611c49565b5b5b5b505050505050565b60008383111582906119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a091906122df565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90612d68565b60405180910390fd5b611a3182600083611f22565b611a9d816040518060600160405280602281526020016130d960229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af581600454611f0c90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5991906124d9565b60405180910390a35050565b6001600b60146101000a81548160ff0219169083151502179055506000611baa6064611b9c60095485611ee090919063ffffffff16565b611ef690919063ffffffff16565b9050600081905060008103611bc0575050611c2b565b60006002828486611bd19190612914565b611bdb9190612db7565b611be59190612db7565b9050611bfb8185611bf69190612de8565b611f27565b60004790506000819050600083118015611c155750600081115b15611c2557611c24838261216a565b5b50505050505b6000600b60146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90612bb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90612c44565b60405180910390fd5b611d32838383611f22565b611d9e816040518060600160405280602681526020016130fb60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119619092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e3381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136890919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ed391906124d9565b60405180910390a3505050565b60008183611eee9190612914565b905092915050565b60008183611f049190612db7565b905092915050565b60008183611f1a9190612de8565b905092915050565b505050565b6000600267ffffffffffffffff811115611f4457611f43612e1c565b5b604051908082528060200260200182016040528015611f725781602001602082028036833780820191505090505b5090503081600081518110611f8a57611f89612e4b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120559190612e8f565b8160018151811061206957612068612e4b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120d030600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611386565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612134959493929190612fb5565b600060405180830381600087803b15801561214e57600080fd5b505af1158015612162573d6000803e3d6000fd5b505050505050565b61219730600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611386565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806121e3610d42565b426040518863ffffffff1660e01b81526004016122059695949392919061300f565b60606040518083038185885af1158015612223573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122489190613085565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561228957808201518184015260208101905061226e565b60008484015250505050565b6000601f19601f8301169050919050565b60006122b18261224f565b6122bb818561225a565b93506122cb81856020860161226b565b6122d481612295565b840191505092915050565b600060208201905081810360008301526122f981846122a6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061233182612306565b9050919050565b61234181612326565b811461234c57600080fd5b50565b60008135905061235e81612338565b92915050565b6000819050919050565b61237781612364565b811461238257600080fd5b50565b6000813590506123948161236e565b92915050565b600080604083850312156123b1576123b0612301565b5b60006123bf8582860161234f565b92505060206123d085828601612385565b9150509250929050565b60008115159050919050565b6123ef816123da565b82525050565b600060208201905061240a60008301846123e6565b92915050565b6000806040838503121561242757612426612301565b5b600061243585828601612385565b925050602061244685828601612385565b9150509250929050565b6000819050919050565b600061247561247061246b84612306565b612450565b612306565b9050919050565b60006124878261245a565b9050919050565b60006124998261247c565b9050919050565b6124a98161248e565b82525050565b60006020820190506124c460008301846124a0565b92915050565b6124d381612364565b82525050565b60006020820190506124ee60008301846124ca565b92915050565b60008060006060848603121561250d5761250c612301565b5b600061251b8682870161234f565b935050602061252c8682870161234f565b925050604061253d86828701612385565b9150509250925092565b600060ff82169050919050565b61255d81612547565b82525050565b60006020820190506125786000830184612554565b92915050565b60006020828403121561259457612593612301565b5b60006125a284828501612385565b91505092915050565b6000602082840312156125c1576125c0612301565b5b60006125cf8482850161234f565b91505092915050565b6125e181612326565b82525050565b60006020820190506125fc60008301846125d8565b92915050565b61260b816123da565b811461261657600080fd5b50565b60008135905061262881612602565b92915050565b60006020828403121561264457612643612301565b5b600061265284828501612619565b91505092915050565b6000806040838503121561267257612671612301565b5b60006126808582860161234f565b92505060206126918582860161234f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806126e257607f821691505b6020821081036126f5576126f461269b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061273160208361225a565b915061273c826126fb565b602082019050919050565b6000602082019050818103600083015261276081612724565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127ed578086048111156127c9576127c8612767565b5b60018516156127d85780820291505b80810290506127e685612796565b94506127ad565b94509492505050565b60008261280657600190506128c2565b8161281457600090506128c2565b816001811461282a576002811461283457612863565b60019150506128c2565b60ff84111561284657612845612767565b5b8360020a91508482111561285d5761285c612767565b5b506128c2565b5060208310610133831016604e8410600b84101617156128985782820a90508381111561289357612892612767565b5b6128c2565b6128a584848460016127a3565b925090508184048111156128bc576128bb612767565b5b81810290505b9392505050565b60006128d482612364565b91506128df83612547565b925061290c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127f6565b905092915050565b600061291f82612364565b915061292a83612364565b925082820261293881612364565b9150828204841483151761294f5761294e612767565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129b260268361225a565b91506129bd82612956565b604082019050919050565b600060208201905081810360008301526129e1816129a5565b9050919050565b60006129f382612364565b91506129fe83612364565b9250828201905080821115612a1657612a15612767565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a7860248361225a565b9150612a8382612a1c565b604082019050919050565b60006020820190508181036000830152612aa781612a6b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b0a60228361225a565b9150612b1582612aae565b604082019050919050565b60006020820190508181036000830152612b3981612afd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b9c60258361225a565b9150612ba782612b40565b604082019050919050565b60006020820190508181036000830152612bcb81612b8f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c2e60238361225a565b9150612c3982612bd2565b604082019050919050565b60006020820190508181036000830152612c5d81612c21565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cc060298361225a565b9150612ccb82612c64565b604082019050919050565b60006020820190508181036000830152612cef81612cb3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5260218361225a565b9150612d5d82612cf6565b604082019050919050565b60006020820190508181036000830152612d8181612d45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612dc282612364565b9150612dcd83612364565b925082612ddd57612ddc612d88565b5b828204905092915050565b6000612df382612364565b9150612dfe83612364565b9250828203905081811115612e1657612e15612767565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e8981612338565b92915050565b600060208284031215612ea557612ea4612301565b5b6000612eb384828501612e7a565b91505092915050565b6000819050919050565b6000612ee1612edc612ed784612ebc565b612450565b612364565b9050919050565b612ef181612ec6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f2c81612326565b82525050565b6000612f3e8383612f23565b60208301905092915050565b6000602082019050919050565b6000612f6282612ef7565b612f6c8185612f02565b9350612f7783612f13565b8060005b83811015612fa8578151612f8f8882612f32565b9750612f9a83612f4a565b925050600181019050612f7b565b5085935050505092915050565b600060a082019050612fca60008301886124ca565b612fd76020830187612ee8565b8181036040830152612fe98186612f57565b9050612ff860608301856125d8565b61300560808301846124ca565b9695505050505050565b600060c08201905061302460008301896125d8565b61303160208301886124ca565b61303e6040830187612ee8565b61304b6060830186612ee8565b61305860808301856125d8565b61306560a08301846124ca565b979650505050505050565b60008151905061307f8161236e565b92915050565b60008060006060848603121561309e5761309d612301565b5b60006130ac86828701613070565b93505060206130bd86828701613070565b92505060406130ce86828701613070565b915050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ed3b95d3632799328ab7b2fa70850a20828dec1f373b67db77f1124a86b95a3664736f6c63430008110033