7 txs
42 calls
constructor
constructor(uint256 initialSupply, address _treasury, address _esteem)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
bonusRate
viewfunction bonusRate() view returns (uint256)
calculateFavorBonuses
viewfunction calculateFavorBonuses(uint256 amount) view returns (uint256 userBonus, uint256 treasuryBonus)
decimals
viewfunction decimals() view returns (uint8)
esteem
viewfunction esteem() view returns (address)
esteemMinter
viewfunction esteemMinter() view returns (address)
isMarketPair
viewfunction isMarketPair(address) view returns (bool)
isMinter
viewfunction isMinter(address) view returns (bool)
isRouter
viewfunction isRouter(address) view returns (bool)
isTaxExempt
viewfunction isTaxExempt(address) view returns (bool)
MAX_TAX
viewfunction MAX_TAX() view returns (uint256)
MULTIPLIER
viewfunction MULTIPLIER() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pendingBonus
viewfunction pendingBonus(address) view returns (uint256)
sellTax
viewfunction sellTax() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
treasuryBonusRate
viewfunction treasuryBonusRate() view returns (uint256)
addMinter
nonpayablefunction addMinter(address account)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(uint256 amount)
burnFrom
nonpayablefunction burnFrom(address account, uint256 amount)
claimBonus
nonpayablefunction claimBonus()
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
logBuy
nonpayablefunction logBuy(address user, uint256 amount)
mint
nonpayablefunction mint(address recipient_, uint256 amount_)
removeMinter
nonpayablefunction removeMinter(address account)
renounceOwnership
nonpayablefunction renounceOwnership()
setBonusRates
nonpayablefunction setBonusRates(uint256 _bonusRate, uint256 _treasuryBonusRate)
setEsteem
nonpayablefunction setEsteem(address _esteem)
setEsteemMinter
nonpayablefunction setEsteemMinter(address _esteemMinter)
setMarketPair
nonpayablefunction setMarketPair(address pair, bool value)
setRouter
nonpayablefunction setRouter(address _router, bool value)
setSellTax
nonpayablefunction setSellTax(uint256 _sellTax)
setTaxExempt
nonpayablefunction setTaxExempt(address account, bool exempt)
setTreasury
nonpayablefunction setTreasury(address _treasury)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BonusRatesUpdated
event BonusRatesUpdated(uint256 newBonusRate, uint256 newtreasuryBonusRate)
EsteemBonusMinted
event EsteemBonusMinted(address indexed recipient, uint256 amount, uint256 treasuryAmount)
EsteemMinterUpdated
event EsteemMinterUpdated(address indexed newMinter)
EsteemTokenUpdated
event EsteemTokenUpdated(address indexed newEsteem)
MarketPairUpdated
event MarketPairUpdated(address indexed pair, bool isPair)
MinterAdded
event MinterAdded(address indexed account)
MinterRemoved
event MinterRemoved(address indexed account)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RouterUpdated
event RouterUpdated(address indexed router, bool isActive)
SellTaxUpdated
event SellTaxUpdated(uint256 newTax)
TaxExemptStatusUpdated
event TaxExemptStatusUpdated(address indexed account, bool isExempt)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TreasuryUpdated
event TreasuryUpdated(address indexed newTreasury)
errors
No errors.
creation bytecode
0x60806040526107d06006556113886007556109c4600855348015610021575f80fd5b506040516143443803806143448339818101604052810190610043919061054c565b6040518060400160405280600a81526020017f4661766f722054455354000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f465553445400000000000000000000000000000000000000000000000000000081525081600390816100be91906107cd565b5080600490816100ce91906107cd565b5050506100ed6100e261028560201b60201c565b61028c60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361015b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610152906108f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c09061095e565b60405180910390fd5b8160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061027d3361025b61034f60201b60201c565b600a6102679190610ae4565b856102729190610b2e565b61035760201b60201c565b505050610c32565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bc90610bb9565b60405180910390fd5b6103d65f83836104b160201b60201c565b8060025f8282546103e79190610bd7565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104949190610c19565b60405180910390a36104ad5f83836104b660201b60201c565b5050565b505050565b505050565b5f80fd5b5f819050919050565b6104d1816104bf565b81146104db575f80fd5b50565b5f815190506104ec816104c8565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61051b826104f2565b9050919050565b61052b81610511565b8114610535575f80fd5b50565b5f8151905061054681610522565b92915050565b5f805f60608486031215610563576105626104bb565b5b5f610570868287016104de565b935050602061058186828701610538565b925050604061059286828701610538565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061061757607f821691505b60208210810361062a576106296105d3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261068c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610651565b6106968683610651565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6106d16106cc6106c7846104bf565b6106ae565b6104bf565b9050919050565b5f819050919050565b6106ea836106b7565b6106fe6106f6826106d8565b84845461065d565b825550505050565b5f90565b610712610706565b61071d8184846106e1565b505050565b5b81811015610740576107355f8261070a565b600181019050610723565b5050565b601f8211156107855761075681610630565b61075f84610642565b8101602085101561076e578190505b61078261077a85610642565b830182610722565b50505b505050565b5f82821c905092915050565b5f6107a55f198460080261078a565b1980831691505092915050565b5f6107bd8383610796565b9150826002028217905092915050565b6107d68261059c565b67ffffffffffffffff8111156107ef576107ee6105a6565b5b6107f98254610600565b610804828285610744565b5f60209050601f831160018114610835575f8415610823578287015190505b61082d85826107b2565b865550610894565b601f19841661084386610630565b5f5b8281101561086a57848901518255600182019150602085019450602081019050610845565b868310156108875784890151610883601f891682610796565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f496e76616c69642045737465656d2061646472657373000000000000000000005f82015250565b5f6108e060168361089c565b91506108eb826108ac565b602082019050919050565b5f6020820190508181035f83015261090d816108d4565b9050919050565b7f496e76616c6964205472656173757279206164647265737300000000000000005f82015250565b5f61094860188361089c565b915061095382610914565b602082019050919050565b5f6020820190508181035f8301526109758161093c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156109fe578086048111156109da576109d961097c565b5b60018516156109e95780820291505b80810290506109f7856109a9565b94506109be565b94509492505050565b5f82610a165760019050610ad1565b81610a23575f9050610ad1565b8160018114610a395760028114610a4357610a72565b6001915050610ad1565b60ff841115610a5557610a5461097c565b5b8360020a915084821115610a6c57610a6b61097c565b5b50610ad1565b5060208310610133831016604e8410600b8410161715610aa75782820a905083811115610aa257610aa161097c565b5b610ad1565b610ab484848460016109b5565b92509050818404811115610acb57610aca61097c565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610aee826104bf565b9150610af983610ad8565b9250610b267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610a07565b905092915050565b5f610b38826104bf565b9150610b43836104bf565b9250828202610b51816104bf565b91508282048414831517610b6857610b6761097c565b5b5092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ba3601f8361089c565b9150610bae82610b6f565b602082019050919050565b5f6020820190508181035f830152610bd081610b97565b9050919050565b5f610be1826104bf565b9150610bec836104bf565b9250828201905080821115610c0457610c0361097c565b5b92915050565b610c13816104bf565b82525050565b5f602082019050610c2c5f830184610c0a565b92915050565b61370580610c3f5f395ff3fe608060405234801561000f575f80fd5b5060043610610267575f3560e01c806379cc67901161014f578063aa271e1a116100c1578063ceb244af11610085578063ceb244af1461074a578063dd62ed3e14610766578063f0f4426014610796578063f2fde38b146107b2578063f3d7d282146107ce578063f8ba0260146107fe57610267565b8063aa271e1a14610694578063c075f5ab146106c4578063c16dd4a4146106f4578063c3c6467414610710578063cc1776d31461072c57610267565b806395d89b411161011357806395d89b41146105ad578063983b2d56146105cb5780639a5c1fd9146105e75780639f7d2bed14610618578063a457c2d714610634578063a9059cbb1461066457610267565b806379cc67901461051b57806382f087e61461053757806386a35f25146105555780638cd09d50146105735780638da5cb5b1461058f57610267565b8063313ce567116101e857806350635394116101ac578063506353941461047d5780635af123f414610487578063611fc1c3146104a557806361d027b3146104c357806370a08231146104e1578063715018a61461051157610267565b8063313ce567146103c757806339509351146103e55780633ecad2711461041557806340c10f191461044557806342966c681461046157610267565b806318160ddd1161022f57806318160ddd14610323578063192e3fbc146103415780631dc610401461035f57806323b872dd1461037b5780633092afd5146103ab57610267565b8063059f8b161461026b57806306fdde0314610289578063095ea7b3146102a75780630c3e0c4e146102d757806316c2be6b146102f3575b5f80fd5b61027361081a565b604051610280919061262c565b60405180910390f35b610291610820565b60405161029e91906126b5565b60405180910390f35b6102c160048036038101906102bc919061275d565b6108b0565b6040516102ce91906127b5565b60405180910390f35b6102f160048036038101906102ec91906127ce565b6108d2565b005b61030d600480360381019061030891906127ce565b6109ce565b60405161031a91906127b5565b60405180910390f35b61032b6109eb565b604051610338919061262c565b60405180910390f35b6103496109f4565b6040516103569190612854565b60405180910390f35b61037960048036038101906103749190612897565b610a19565b005b610395600480360381019061039091906128d5565b610ac7565b6040516103a291906127b5565b60405180910390f35b6103c560048036038101906103c091906127ce565b610af5565b005b6103cf610b97565b6040516103dc9190612940565b60405180910390f35b6103ff60048036038101906103fa919061275d565b610b9f565b60405161040c91906127b5565b60405180910390f35b61042f600480360381019061042a91906127ce565b610bd5565b60405161043c91906127b5565b60405180910390f35b61045f600480360381019061045a919061275d565b610bf2565b005b61047b60048036038101906104769190612959565b610c89565b005b610485610c9d565b005b61048f610dee565b60405161049c919061262c565b60405180910390f35b6104ad610df4565b6040516104ba91906129a4565b60405180910390f35b6104cb610e19565b6040516104d891906129cc565b60405180910390f35b6104fb60048036038101906104f691906127ce565b610e3e565b604051610508919061262c565b60405180910390f35b610519610e83565b005b6105356004803603810190610530919061275d565b610e96565b005b61053f610eb6565b60405161054c919061262c565b60405180910390f35b61055d610ebc565b60405161056a919061262c565b60405180910390f35b61058d60048036038101906105889190612959565b610ec2565b005b610597610f50565b6040516105a491906129cc565b60405180910390f35b6105b5610f78565b6040516105c291906126b5565b60405180910390f35b6105e560048036038101906105e091906127ce565b611008565b005b61060160048036038101906105fc9190612959565b6110ab565b60405161060f9291906129e5565b60405180910390f35b610632600480360381019061062d9190612a0c565b61118e565b005b61064e6004803603810190610649919061275d565b6111e1565b60405161065b91906127b5565b60405180910390f35b61067e6004803603810190610679919061275d565b611256565b60405161068b91906127b5565b60405180910390f35b6106ae60048036038101906106a991906127ce565b611278565b6040516106bb91906127b5565b60405180910390f35b6106de60048036038101906106d991906127ce565b611295565b6040516106eb919061262c565b60405180910390f35b61070e60048036038101906107099190612897565b6112aa565b005b61072a60048036038101906107259190612897565b611358565b005b610734611474565b604051610741919061262c565b60405180910390f35b610764600480360381019061075f91906127ce565b61147a565b005b610780600480360381019061077b9190612a4a565b611576565b60405161078d919061262c565b60405180910390f35b6107b060048036038101906107ab91906127ce565b6115f8565b005b6107cc60048036038101906107c791906127ce565b6116f4565b005b6107e860048036038101906107e391906127ce565b611776565b6040516107f591906127b5565b60405180910390f35b6108186004803603810190610813919061275d565b611793565b005b61271081565b60606003805461082f90612ab5565b80601f016020809104026020016040519081016040528092919081815260200182805461085b90612ab5565b80156108a65780601f1061087d576101008083540402835291602001916108a6565b820191905f5260205f20905b81548152906001019060200180831161088957829003601f168201915b5050505050905090565b5f806108ba61197e565b90506108c7818585611985565b600191505092915050565b6108da611b48565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093f90612b2f565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f587f3bb4a08a183033c0fe85e075a109c37bfe6d1aabbcad47065b04ac949f0960405160405180910390a250565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f600254905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a21611b48565b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8af110e2cdec2af97569417a7ea26d5f5965e7cd29aee2f497eeb460cbefa30382604051610abb91906127b5565b60405180910390a25050565b5f80610ad161197e565b9050610ade858285611bc6565b610ae9858585611c51565b60019150509392505050565b610afd611b48565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b5f6012905090565b5f80610ba961197e565b9050610bca818585610bbb8589611576565b610bc59190612b7a565b611985565b600191505092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290612bf7565b60405180910390fd5b610c858282611d62565b5050565b610c9a610c9461197e565b82611eb0565b50565b5f60105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790612c5f565b60405180910390fd5b5f60105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401610dbe929190612c7d565b5f604051808303815f87803b158015610dd5575f80fd5b505af1158015610de7573d5f803e3d5ffd5b5050505050565b60075481565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e8b611b48565b610e945f612073565b565b610ea882610ea261197e565b83611bc6565b610eb28282611eb0565b5050565b60085481565b61138881565b610eca611b48565b611388811115610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690612cee565b60405180910390fd5b806006819055507fa6255338a5f732d64ceba7f4c18182567f9d1067eb984b46d478b37d72a52d1181604051610f45919061262c565b60405180910390a150565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f8790612ab5565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb390612ab5565b8015610ffe5780601f10610fd557610100808354040283529160200191610ffe565b820191905f5260205f20905b815481529060010190602001808311610fe157829003601f168201915b5050505050905090565b611010611b48565b6001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b5f805f670de0b6b3a764000090505f670de0b6b3a764000082866110cf9190612d0c565b6110d99190612d7a565b90505f612710600754836110ed9190612d0c565b6110f79190612d7a565b90505f67de0b6b3a7640000090505f8111611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612df4565b60405180910390fd5b80670de0b6b3a76400008361115c9190612d0c565b6111669190612d7a565b9550612710600854876111799190612d0c565b6111839190612d7a565b945050505050915091565b611196611b48565b81600781905550806008819055507f21c0bf6ad8ca3495c68d9665bc81b236730941773307cd244084a23018e1126282826040516111d59291906129e5565b60405180910390a15050565b5f806111eb61197e565b90505f6111f88286611576565b90508381101561123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490612e82565b60405180910390fd5b61124a8286868403611985565b60019250505092915050565b5f8061126061197e565b905061126d818585611c51565b600191505092915050565b600e602052805f5260405f205f915054906101000a900460ff1681565b6010602052805f5260405f205f915090505481565b6112b2611b48565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f160ff69a72bc70f3e792a86c87d27070e421562197f032d96bcab11c5010222e8260405161134c91906127b5565b60405180910390a25050565b611360611b48565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590612eea565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fab5814e9f0dc78998a367cdeb77f1143370431cce307f90adb6db02f49fd768a8260405161146891906127b5565b60405180910390a25050565b60065481565b611482611b48565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612f52565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f812c5c488043e57d6aaa09f7c68a7aff11bb9f77a045ab3f6d5c3b8463b2b0c260405160405180910390a250565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611600611b48565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590612fba565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d160405160405180910390a250565b6116fc611b48565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176190613048565b60405180910390fd5b61177381612073565b50565b600f602052805f5260405f205f915054906101000a900460ff1681565b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661181c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611813906130d6565b60405180910390fd5b5f80611827836110ab565b915091508160105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546118779190612b7a565b92505081905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1960095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016118fb929190612c7d565b5f604051808303815f87803b158015611912575f80fd5b505af1158015611924573d5f803e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f494571e6f43290b45ac2ab6e16dceea96b054dc583a123335acfa338e97fa79b83836040516119709291906129e5565b60405180910390a250505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea90613164565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a58906131f2565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b3b919061262c565b60405180910390a3505050565b611b5061197e565b73ffffffffffffffffffffffffffffffffffffffff16611b6e610f50565b73ffffffffffffffffffffffffffffffffffffffff1614611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb9061325a565b60405180910390fd5b565b5f611bd18484611576565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c4b5781811015611c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c34906132c2565b60405180910390fd5b611c4a8484848403611985565b5b50505050565b5f611c5c8484612136565b80611c6d5750611c6c84846121da565b5b15611c8357611c7d8484846122d2565b50611d5d565b5f611c8e858561253e565b90505f611c9b86866125a4565b9050818015611ca75750805b15611ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cde90613350565b60405180910390fd5b8015611d0b5761271060065485611cfe9190612d0c565b611d089190612d7a565b92505b5f831115611d4e57611d3f8660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856122d2565b8284611d4b919061336e565b93505b611d598686866122d2565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc7906133eb565b60405180910390fd5b611ddb5f838361260a565b8060025f828254611dec9190612b7a565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e99919061262c565b60405180910390a3611eac5f838361260f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1590613479565b60405180910390fd5b611f29825f8361260a565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa390613507565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161205b919061262c565b60405180910390a361206e835f8461260f565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806121d25750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b905092915050565b5f600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156122785750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122ca5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790613595565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a590613623565b60405180910390fd5b6123b983838361260a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561243c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612433906136b1565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612525919061262c565b60405180910390a361253884848461260f565b50505050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561259c575061259a83836121da565b155b905092915050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612602575061260083836121da565b155b905092915050565b505050565b505050565b5f819050919050565b61262681612614565b82525050565b5f60208201905061263f5f83018461261d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61268782612645565b612691818561264f565b93506126a181856020860161265f565b6126aa8161266d565b840191505092915050565b5f6020820190508181035f8301526126cd818461267d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612702826126d9565b9050919050565b612712816126f8565b811461271c575f80fd5b50565b5f8135905061272d81612709565b92915050565b61273c81612614565b8114612746575f80fd5b50565b5f8135905061275781612733565b92915050565b5f8060408385031215612773576127726126d5565b5b5f6127808582860161271f565b925050602061279185828601612749565b9150509250929050565b5f8115159050919050565b6127af8161279b565b82525050565b5f6020820190506127c85f8301846127a6565b92915050565b5f602082840312156127e3576127e26126d5565b5b5f6127f08482850161271f565b91505092915050565b5f819050919050565b5f61281c612817612812846126d9565b6127f9565b6126d9565b9050919050565b5f61282d82612802565b9050919050565b5f61283e82612823565b9050919050565b61284e81612834565b82525050565b5f6020820190506128675f830184612845565b92915050565b6128768161279b565b8114612880575f80fd5b50565b5f813590506128918161286d565b92915050565b5f80604083850312156128ad576128ac6126d5565b5b5f6128ba8582860161271f565b92505060206128cb85828601612883565b9150509250929050565b5f805f606084860312156128ec576128eb6126d5565b5b5f6128f98682870161271f565b935050602061290a8682870161271f565b925050604061291b86828701612749565b9150509250925092565b5f60ff82169050919050565b61293a81612925565b82525050565b5f6020820190506129535f830184612931565b92915050565b5f6020828403121561296e5761296d6126d5565b5b5f61297b84828501612749565b91505092915050565b5f61298e82612823565b9050919050565b61299e81612984565b82525050565b5f6020820190506129b75f830184612995565b92915050565b6129c6816126f8565b82525050565b5f6020820190506129df5f8301846129bd565b92915050565b5f6040820190506129f85f83018561261d565b612a05602083018461261d565b9392505050565b5f8060408385031215612a2257612a216126d5565b5b5f612a2f85828601612749565b9250506020612a4085828601612749565b9150509250929050565b5f8060408385031215612a6057612a5f6126d5565b5b5f612a6d8582860161271f565b9250506020612a7e8582860161271f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612acc57607f821691505b602082108103612adf57612ade612a88565b5b50919050565b7f496e76616c69642045737465656d204d696e74657220616464726573730000005f82015250565b5f612b19601d8361264f565b9150612b2482612ae5565b602082019050919050565b5f6020820190508181035f830152612b4681612b0d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b8482612614565b9150612b8f83612614565b9250828201905080821115612ba757612ba6612b4d565b5b92915050565b7f4e6f7420617574686f72697a656420746f206d696e74000000000000000000005f82015250565b5f612be160168361264f565b9150612bec82612bad565b602082019050919050565b5f6020820190508181035f830152612c0e81612bd5565b9050919050565b7f4e6f20626f6e757320617661696c61626c6500000000000000000000000000005f82015250565b5f612c4960128361264f565b9150612c5482612c15565b602082019050919050565b5f6020820190508181035f830152612c7681612c3d565b9050919050565b5f604082019050612c905f8301856129bd565b612c9d602083018461261d565b9392505050565b7f53656c6c2074617820746f6f20686967680000000000000000000000000000005f82015250565b5f612cd860118361264f565b9150612ce382612ca4565b602082019050919050565b5f6020820190508181035f830152612d0581612ccc565b9050919050565b5f612d1682612614565b9150612d2183612614565b9250828202612d2f81612614565b91508282048414831517612d4657612d45612b4d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d8482612614565b9150612d8f83612614565b925082612d9f57612d9e612d4d565b5b828204905092915050565b7f496e76616c69642045737465656d2072617465000000000000000000000000005f82015250565b5f612dde60138361264f565b9150612de982612daa565b602082019050919050565b5f6020820190508181035f830152612e0b81612dd2565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612e6c60258361264f565b9150612e7782612e12565b604082019050919050565b5f6020820190508181035f830152612e9981612e60565b9050919050565b7f496e76616c696420726f757465722061646472657373000000000000000000005f82015250565b5f612ed460168361264f565b9150612edf82612ea0565b602082019050919050565b5f6020820190508181035f830152612f0181612ec8565b9050919050565b7f496e76616c69642045737465656d2061646472657373000000000000000000005f82015250565b5f612f3c60168361264f565b9150612f4782612f08565b602082019050919050565b5f6020820190508181035f830152612f6981612f30565b9050919050565b7f496e76616c6964205472656173757279206164647265737300000000000000005f82015250565b5f612fa460188361264f565b9150612faf82612f70565b602082019050919050565b5f6020820190508181035f830152612fd181612f98565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61303260268361264f565b915061303d82612fd8565b604082019050919050565b5f6020820190508181035f83015261305f81613026565b9050919050565b7f4f6e6c7920617070726f76656420726f757465722063616e206c6f67206275795f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130c060218361264f565b91506130cb82613066565b604082019050919050565b5f6020820190508181035f8301526130ed816130b4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61314e60248361264f565b9150613159826130f4565b604082019050919050565b5f6020820190508181035f83015261317b81613142565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131dc60228361264f565b91506131e782613182565b604082019050919050565b5f6020820190508181035f830152613209816131d0565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61324460208361264f565b915061324f82613210565b602082019050919050565b5f6020820190508181035f83015261327181613238565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6132ac601d8361264f565b91506132b782613278565b602082019050919050565b5f6020820190508181035f8301526132d9816132a0565b9050919050565b7f43616e6e6f742062757920616e642073656c6c20696e207468652073616d65205f8201527f7472616e73616374696f6e000000000000000000000000000000000000000000602082015250565b5f61333a602b8361264f565b9150613345826132e0565b604082019050919050565b5f6020820190508181035f8301526133678161332e565b9050919050565b5f61337882612614565b915061338383612614565b925082820390508181111561339b5761339a612b4d565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6133d5601f8361264f565b91506133e0826133a1565b602082019050919050565b5f6020820190508181035f830152613402816133c9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61346360218361264f565b915061346e82613409565b604082019050919050565b5f6020820190508181035f83015261349081613457565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134f160228361264f565b91506134fc82613497565b604082019050919050565b5f6020820190508181035f83015261351e816134e5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61357f60258361264f565b915061358a82613525565b604082019050919050565b5f6020820190508181035f8301526135ac81613573565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61360d60238361264f565b9150613618826135b3565b604082019050919050565b5f6020820190508181035f83015261363a81613601565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61369b60268361264f565b91506136a682613641565b604082019050919050565b5f6020820190508181035f8301526136c88161368f565b905091905056fea26469706673582212202a4477aef2e05c8a8aa854c27244a2d80eb19525bf1e4a0ad22d139f877e770b64736f6c634300081a003300000000000000000000000000000000000000000000000000000000000027100000000000000000000000005e9e3457433b4b767e458abecaf4128eeb3dcc970000000000000000000000009aea2185b4cc1a8fd5034112bf8429b13932af2c