Contract Overview
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
Bretttwo
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at basescan.org on 2024-04-12 */ // SPDX-License-Identifier: MIT pragma solidity =0.8.20; interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } function transferOwnership(address newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } 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); } contract Bretttwo is IERC20, Ownable { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; string private constant _name = "Brett 2.0"; string private constant _symbol = "BRETT2.0"; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 1_000_000_000 * 1e9; uint256 public maxTxWallet = 20_000_000 * 1e9; uint256 public buyTax = 0; uint256 public sellTax = 20; uint256 private constant contractSwapLimit = 5_000_000 * 1e9; uint256 private contractSwapMax = 1; uint256 private contractSwapMin = 2; uint256 private contractMinSwaps = 1; IUniswapV2Router private constant UNISWAP_ROUTER = IUniswapV2Router(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24); address private constant ETH = 0x4200000000000000000000000000000000000006; address public immutable uniswapPair; address payable public marketingWallet = payable(tx.origin); address public developmentWallet = 0xDFd5840370482FB5e97E14Ec81eE2783adC7a693; address immutable deployerWallet = payable(msg.sender); bool private inSwap = false; bool private tradingLive; mapping(uint256 => uint256) swapBlocks; uint private swaps; mapping (address => bool) blacklisted; mapping(address => bool) excludedFromFees; modifier swapping { inSwap = true; _; inSwap = false; } modifier tradable(address sender) { require(tradingLive || sender == deployerWallet); _; } constructor () { excludedFromFees[address(this)] = true; excludedFromFees[developmentWallet] = true; (address token0, address token1) = ETH < address(this) ? (ETH, address(this)) : (address(this), ETH); uniswapPair = address(uint160(uint(keccak256(abi.encodePacked( hex'ff', UNISWAP_ROUTER.factory(), keccak256(abi.encodePacked(token0,token1)), hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // pair init code hash ))))); uint256 developmentTokens = 8 * _totalSupply / 100; _balances[developmentWallet] = developmentTokens; emit Transfer(address(0), developmentWallet, developmentTokens); _balances[msg.sender] = _totalSupply - developmentTokens; emit Transfer(address(0), msg.sender, _totalSupply - developmentTokens); } receive() external payable {} function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount); _transfer(sender, recipient, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) tradable(from) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Token: transfer amount must be greater than zero"); require(!blacklisted[from] && !blacklisted[to], "Token: blacklisted cannot trade"); _balances[from] -= amount; if(from != address(this) && from != deployerWallet && to != marketingWallet) { if (from == uniswapPair) require(balanceOf(to) + amount <= maxTxWallet, "Token: max wallet amount restriction"); require(amount <= maxTxWallet, "Token: max tx amount restriction"); uint256 contractTokens = balanceOf(address(this)); if(!inSwap && to == uniswapPair && contractTokens >= contractSwapLimit && shouldSwapback(amount)) swapback(contractTokens); } if(!excludedFromFees[from] && !excludedFromFees[to]) { uint256 taxedTokens = calculateTax(from, to, amount); if(taxedTokens > 0){ amount -= taxedTokens; _balances[address(this)] += taxedTokens; emit Transfer(from, address(this), taxedTokens); } } _balances[to] += amount; emit Transfer(from, to, amount); } function calculateTax(address from, address to, uint256 amount) private view returns (uint256) { return amount * (from == uniswapPair ? buyTax : to == uniswapPair ? sellTax : 0) / 100; } function shouldSwapback(uint256 transferAmount) private returns (bool) { return transferAmount >= (contractSwapMin == 0 ? 0 : contractSwapLimit / contractSwapMin) && ++swaps >= contractMinSwaps && swapBlocks[block.number]++ < 2; } function swapback(uint256 tokenAmount) private swapping { tokenAmount = calculateSwapAmount(tokenAmount); swaps = 0; if(allowance(address(this), address(UNISWAP_ROUTER)) < tokenAmount) { _approve(address(this), address(UNISWAP_ROUTER), _totalSupply); } uint256 contractETHBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = ETH; UNISWAP_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); contractETHBalance = address(this).balance - contractETHBalance; if(contractETHBalance > 0) { transferEth(contractETHBalance); } } function calculateSwapAmount(uint256 tokenAmount) private view returns (uint256) { return tokenAmount > (contractSwapMax * contractSwapLimit) ? (contractSwapMax * contractSwapLimit) : contractSwapLimit; } function transferEth(uint256 amount) private { marketingWallet.transfer(amount); } function recoverTokens(address token, address wallet) external { require(msg.sender == developmentWallet); if(token == address(0)) payable(wallet).transfer(address(this).balance); else if(token != address(this)) IERC20(token).transfer(wallet, IERC20(token).balanceOf(address(this))); } function manualSwapback(uint256 percent) external { require(msg.sender == developmentWallet); uint256 tokensToSwap = percent * balanceOf(address(this)) / 100; swapback(tokensToSwap); } function burn() external { require(msg.sender == developmentWallet); _transfer(address(this), address(0xdEaD), _balances[address(this)]); } function blacklist(address[] calldata blacklists, bool shouldBlock) external onlyOwner { for (uint i = 0; i < blacklists.length; i++) { blacklisted[blacklists[i]] = shouldBlock; } } function setDevelopmentWallet(address newDevelopmentWallet) external onlyOwner { developmentWallet = newDevelopmentWallet; } function setMarketingWallet(address payable newMarketingWallet) external onlyOwner { marketingWallet = newMarketingWallet; } function setStructure(uint256 newSwapMaxMultiplier, uint256 newSwapMinDivisor, uint256 newMinSwaps) external onlyOwner { contractSwapMax = newSwapMaxMultiplier; contractSwapMin = newSwapMinDivisor; contractMinSwaps = newMinSwaps; } function setMaxWallet(uint256 newMaxTxWallet) external onlyOwner { maxTxWallet = newMaxTxWallet; } function removeLimits() external onlyOwner { maxTxWallet = _totalSupply; } function setFees(uint256 newBuyTax, uint256 newSellTax) external onlyOwner { buyTax = newBuyTax; sellTax = newSellTax; } function openTrading() external onlyOwner { require(!tradingLive, "Token: trading already open"); tradingLive = true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"blacklists","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"wallet","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevelopmentWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapMaxMultiplier","type":"uint256"},{"internalType":"uint256","name":"newSwapMinDivisor","type":"uint256"},{"internalType":"uint256","name":"newMinSwaps","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405266470de4df8200006003555f6004556014600555600160068190556002600755600855600980546001600160a01b03191632179055600a80543360a0526001600160a81b03191673dfd5840370482fb5e97e14ec81ee2783adc7a6931790553480156200006f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350305f818152600e60205260408082208054600160ff199182168117909255600a546001600160a01b0316845291832080549092161790559081907342000000000000000000000000000000000000061062000121573073420000000000000000000000000000000000000662000138565b734200000000000000000000000000000000000006305b91509150734752ba5dbc23f44d87826276bf6fd6b1c372ad246001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b391906200035f565b6040516001600160601b0319606085811b8216602084015284901b16603482015260480160405160208183030381529060405280519060200120604051602001620002639291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f1981840301815291905280516020909101206001600160a01b03166080525f60646200029f670de0b6b3a76400006008620003a2565b620002ab9190620003c2565b600a80546001600160a01b039081165f90815260016020526040808220859055925492519394509116915f8051602062001dda83398151915290620002f39085815260200190565b60405180910390a36200030f81670de0b6b3a7640000620003e2565b335f81815260016020526040812092909255905f8051602062001dda8339815191526200034584670de0b6b3a7640000620003e2565b60405190815260200160405180910390a3505050620003f8565b5f6020828403121562000370575f80fd5b81516001600160a01b038116811462000387575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620003bc57620003bc6200038e565b92915050565b5f82620003dd57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115620003bc57620003bc6200038e565b60805160a05161199d6200043d5f395f8181610d380152610f7001525f81816104c001528181610fc6015281816110fb015281816114d3015261150c015261199d5ff3fe6080604052600436106101bd575f3560e01c8063751039fc116100f2578063c0cbdea411610092578063cc1776d311610062578063cc1776d314610515578063dd62ed3e1461052a578063f2fde38b1461056e578063f8d982b21461058d575f80fd5b8063c0cbdea414610490578063c816841b146104af578063c9567bf9146104e2578063c997eb8d146104f6575f80fd5b80638da5cb5b116100cd5780638da5cb5b1461040657806395d89b4114610422578063a9059cbb14610452578063c04a541414610471575f80fd5b8063751039fc146103a657806375f0a874146103ba5780637f698982146103f1575f80fd5b806344df8e701161015d5780635d098b38116101385780635d098b381461032057806370a082311461033f578063715018a61461037357806372ac248614610387575f80fd5b806344df8e70146102d85780634f7041a5146102ec5780635d0044ca14610301575f80fd5b80630b78f9c0116101985780630b78f9c01461025b57806318160ddd1461027a57806323b872dd1461029e578063313ce567146102bd575f80fd5b8063056097ac146101c857806306fdde03146101e9578063095ea7b31461022c575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101e76101e23660046115fd565b6105ac565b005b3480156101f4575f80fd5b506040805180820190915260098152680427265747420322e360bc1b60208201525b6040516102239190611634565b60405180910390f35b348015610237575f80fd5b5061024b61024636600461167f565b6106f7565b6040519015158152602001610223565b348015610266575f80fd5b506101e76102753660046116a9565b61070d565b348015610285575f80fd5b50670de0b6b3a76400005b604051908152602001610223565b3480156102a9575f80fd5b5061024b6102b83660046116c9565b61074a565b3480156102c8575f80fd5b5060405160098152602001610223565b3480156102e3575f80fd5b506101e761081c565b3480156102f7575f80fd5b5061029060045481565b34801561030c575f80fd5b506101e761031b366004611707565b610851565b34801561032b575f80fd5b506101e761033a36600461171e565b61087f565b34801561034a575f80fd5b5061029061035936600461171e565b6001600160a01b03165f9081526001602052604090205490565b34801561037e575f80fd5b506101e76108ca565b348015610392575f80fd5b506101e76103a136600461171e565b61093b565b3480156103b1575f80fd5b506101e7610986565b3480156103c5575f80fd5b506009546103d9906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b3480156103fc575f80fd5b5061029060035481565b348015610411575f80fd5b505f546001600160a01b03166103d9565b34801561042d575f80fd5b5060408051808201909152600881526704252455454322e360c41b6020820152610216565b34801561045d575f80fd5b5061024b61046c36600461167f565b6109bd565b34801561047c575f80fd5b50600a546103d9906001600160a01b031681565b34801561049b575f80fd5b506101e76104aa366004611740565b6109c9565b3480156104ba575f80fd5b506103d97f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ed575f80fd5b506101e7610a00565b348015610501575f80fd5b506101e7610510366004611776565b610a98565b348015610520575f80fd5b5061029060055481565b348015610535575f80fd5b506102906105443660046115fd565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610579575f80fd5b506101e761058836600461171e565b610b35565b348015610598575f80fd5b506101e76105a7366004611707565b610bb7565b600a546001600160a01b031633146105c2575f80fd5b6001600160a01b038216610607576040516001600160a01b038216904780156108fc02915f818181858888f19350505050158015610602573d5f803e3d5ffd5b505050565b6001600160a01b03821630146106f3576040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068791906117f5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156106cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610602919061180c565b5050565b5f610703338484610bfe565b5060015b92915050565b5f546001600160a01b0316331461073f5760405162461bcd60e51b815260040161073690611827565b60405180910390fd5b600491909155600555565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548211156107cd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610736565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610807918691610802908690611870565b610bfe565b610812848484610d21565b5060019392505050565b600a546001600160a01b03163314610832575f80fd5b305f8181526001602052604090205461084f919061dead90610d21565b565b5f546001600160a01b0316331461087a5760405162461bcd60e51b815260040161073690611827565b600355565b5f546001600160a01b031633146108a85760405162461bcd60e51b815260040161073690611827565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146108f35760405162461bcd60e51b815260040161073690611827565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109645760405162461bcd60e51b815260040161073690611827565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109af5760405162461bcd60e51b815260040161073690611827565b670de0b6b3a7640000600355565b5f610703338484610d21565b5f546001600160a01b031633146109f25760405162461bcd60e51b815260040161073690611827565b600692909255600755600855565b5f546001600160a01b03163314610a295760405162461bcd60e51b815260040161073690611827565b600a54600160a81b900460ff1615610a835760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e00000000006044820152606401610736565b600a805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610ac15760405162461bcd60e51b815260040161073690611827565b5f5b82811015610b2f5781600d5f868685818110610ae157610ae1611883565b9050602002016020810190610af6919061171e565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610b2781611897565b915050610ac3565b50505050565b5f546001600160a01b03163314610b5e5760405162461bcd60e51b815260040161073690611827565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610bcd575f80fd5b305f90815260016020526040812054606490610be990846118af565b610bf391906118c6565b90506106f3816112b1565b6001600160a01b038316610c605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610736565b6001600160a01b038216610cc15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610736565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a548390600160a81b900460ff1680610d6c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b610d74575f80fd5b6001600160a01b038416610dd85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610736565b6001600160a01b038316610e3a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610736565b5f8211610ea25760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610736565b6001600160a01b0384165f908152600d602052604090205460ff16158015610ee257506001600160a01b0383165f908152600d602052604090205460ff16155b610f2e5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a20626c61636b6c69737465642063616e6e6f74207472616465006044820152606401610736565b6001600160a01b0384165f9081526001602052604081208054849290610f55908490611870565b90915550506001600160a01b0384163014801590610fa557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b8015610fbf57506009546001600160a01b03848116911614155b15611162577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611083576003548261101f856001600160a01b03165f9081526001602052604090205490565b61102991906118e5565b11156110835760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420726573747269636044820152633a34b7b760e11b6064820152608401610736565b6003548211156110d55760405162461bcd60e51b815260206004820181905260248201527f546f6b656e3a206d617820747820616d6f756e74207265737472696374696f6e6044820152606401610736565b305f90815260016020526040902054600a54600160a01b900460ff1615801561112f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b801561114257506611c37937e080008110155b8015611152575061115283611455565b1561116057611160816112b1565b505b6001600160a01b0384165f908152600e602052604090205460ff161580156111a257506001600160a01b0383165f908152600e602052604090205460ff16155b15611230575f6111b38585856114ce565b9050801561122e576111c58184611870565b305f908152600160205260408120805492955083929091906111e89084906118e5565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505b6001600160a01b0383165f90815260016020526040812080548492906112579084906118e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a391815260200190565b60405180910390a350505050565b600a805460ff60a01b1916600160a01b1790556112cd81611571565b5f600c819055308152600260209081526040808320734752ba5dbc23f44d87826276bf6fd6b1c372ad2484529091529020549091508111156113305761133030734752ba5dbc23f44d87826276bf6fd6b1c372ad24670de0b6b3a7640000610bfe565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f8151811061136757611367611883565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b01816001815181106113a2576113a2611883565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152734752ba5dbc23f44d87826276bf6fd6b1c372ad249063791ac947906113f99086905f908690309042906004016118f8565b5f604051808303815f87803b158015611410575f80fd5b505af1158015611422573d5f803e3d5ffd5b5050505081476114329190611870565b9150811561144357611443826115af565b5050600a805460ff60a01b1916905550565b5f6007545f1461147857600754611473906611c37937e080006118c6565b61147a565b5f5b821015801561149d5750600854600c5f815461149590611897565b918290555010155b80156107075750435f908152600b6020526040812080546002929091906114c383611897565b919050551092915050565b5f60647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614611551577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614611549575f611555565b600554611555565b6004545b61155f90846118af565b61156991906118c6565b949350505050565b5f6611c37937e0800060065461158791906118af565b821161159a576611c37937e08000610707565b6611c37937e0800060065461070791906118af565b6009546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106f3573d5f803e3d5ffd5b6001600160a01b03811681146115fa575f80fd5b50565b5f806040838503121561160e575f80fd5b8235611619816115e6565b91506020830135611629816115e6565b809150509250929050565b5f6020808352835180828501525f5b8181101561165f57858101830151858201604001528201611643565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611690575f80fd5b823561169b816115e6565b946020939093013593505050565b5f80604083850312156116ba575f80fd5b50508035926020909101359150565b5f805f606084860312156116db575f80fd5b83356116e6816115e6565b925060208401356116f6816115e6565b929592945050506040919091013590565b5f60208284031215611717575f80fd5b5035919050565b5f6020828403121561172e575f80fd5b8135611739816115e6565b9392505050565b5f805f60608486031215611752575f80fd5b505081359360208301359350604090920135919050565b80151581146115fa575f80fd5b5f805f60408486031215611788575f80fd5b833567ffffffffffffffff8082111561179f575f80fd5b818601915086601f8301126117b2575f80fd5b8135818111156117c0575f80fd5b8760208260051b85010111156117d4575f80fd5b602092830195509350508401356117ea81611769565b809150509250925092565b5f60208284031215611805575f80fd5b5051919050565b5f6020828403121561181c575f80fd5b815161173981611769565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156107075761070761185c565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118a8576118a861185c565b5060010190565b80820281158282048414176107075761070761185c565b5f826118e057634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107075761070761185c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119465784516001600160a01b031683529383019391830191600101611921565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122066f19aba51423c428d8db9024d3f51c96417f725202d11701f81acb496c048c764736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x6080604052600436106101bd575f3560e01c8063751039fc116100f2578063c0cbdea411610092578063cc1776d311610062578063cc1776d314610515578063dd62ed3e1461052a578063f2fde38b1461056e578063f8d982b21461058d575f80fd5b8063c0cbdea414610490578063c816841b146104af578063c9567bf9146104e2578063c997eb8d146104f6575f80fd5b80638da5cb5b116100cd5780638da5cb5b1461040657806395d89b4114610422578063a9059cbb14610452578063c04a541414610471575f80fd5b8063751039fc146103a657806375f0a874146103ba5780637f698982146103f1575f80fd5b806344df8e701161015d5780635d098b38116101385780635d098b381461032057806370a082311461033f578063715018a61461037357806372ac248614610387575f80fd5b806344df8e70146102d85780634f7041a5146102ec5780635d0044ca14610301575f80fd5b80630b78f9c0116101985780630b78f9c01461025b57806318160ddd1461027a57806323b872dd1461029e578063313ce567146102bd575f80fd5b8063056097ac146101c857806306fdde03146101e9578063095ea7b31461022c575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101e76101e23660046115fd565b6105ac565b005b3480156101f4575f80fd5b506040805180820190915260098152680427265747420322e360bc1b60208201525b6040516102239190611634565b60405180910390f35b348015610237575f80fd5b5061024b61024636600461167f565b6106f7565b6040519015158152602001610223565b348015610266575f80fd5b506101e76102753660046116a9565b61070d565b348015610285575f80fd5b50670de0b6b3a76400005b604051908152602001610223565b3480156102a9575f80fd5b5061024b6102b83660046116c9565b61074a565b3480156102c8575f80fd5b5060405160098152602001610223565b3480156102e3575f80fd5b506101e761081c565b3480156102f7575f80fd5b5061029060045481565b34801561030c575f80fd5b506101e761031b366004611707565b610851565b34801561032b575f80fd5b506101e761033a36600461171e565b61087f565b34801561034a575f80fd5b5061029061035936600461171e565b6001600160a01b03165f9081526001602052604090205490565b34801561037e575f80fd5b506101e76108ca565b348015610392575f80fd5b506101e76103a136600461171e565b61093b565b3480156103b1575f80fd5b506101e7610986565b3480156103c5575f80fd5b506009546103d9906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b3480156103fc575f80fd5b5061029060035481565b348015610411575f80fd5b505f546001600160a01b03166103d9565b34801561042d575f80fd5b5060408051808201909152600881526704252455454322e360c41b6020820152610216565b34801561045d575f80fd5b5061024b61046c36600461167f565b6109bd565b34801561047c575f80fd5b50600a546103d9906001600160a01b031681565b34801561049b575f80fd5b506101e76104aa366004611740565b6109c9565b3480156104ba575f80fd5b506103d97f000000000000000000000000a1b664322dd8266cb072e22cd65af8c19be8a5f881565b3480156104ed575f80fd5b506101e7610a00565b348015610501575f80fd5b506101e7610510366004611776565b610a98565b348015610520575f80fd5b5061029060055481565b348015610535575f80fd5b506102906105443660046115fd565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610579575f80fd5b506101e761058836600461171e565b610b35565b348015610598575f80fd5b506101e76105a7366004611707565b610bb7565b600a546001600160a01b031633146105c2575f80fd5b6001600160a01b038216610607576040516001600160a01b038216904780156108fc02915f818181858888f19350505050158015610602573d5f803e3d5ffd5b505050565b6001600160a01b03821630146106f3576040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068791906117f5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156106cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610602919061180c565b5050565b5f610703338484610bfe565b5060015b92915050565b5f546001600160a01b0316331461073f5760405162461bcd60e51b815260040161073690611827565b60405180910390fd5b600491909155600555565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548211156107cd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610736565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610807918691610802908690611870565b610bfe565b610812848484610d21565b5060019392505050565b600a546001600160a01b03163314610832575f80fd5b305f8181526001602052604090205461084f919061dead90610d21565b565b5f546001600160a01b0316331461087a5760405162461bcd60e51b815260040161073690611827565b600355565b5f546001600160a01b031633146108a85760405162461bcd60e51b815260040161073690611827565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146108f35760405162461bcd60e51b815260040161073690611827565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109645760405162461bcd60e51b815260040161073690611827565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109af5760405162461bcd60e51b815260040161073690611827565b670de0b6b3a7640000600355565b5f610703338484610d21565b5f546001600160a01b031633146109f25760405162461bcd60e51b815260040161073690611827565b600692909255600755600855565b5f546001600160a01b03163314610a295760405162461bcd60e51b815260040161073690611827565b600a54600160a81b900460ff1615610a835760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e00000000006044820152606401610736565b600a805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610ac15760405162461bcd60e51b815260040161073690611827565b5f5b82811015610b2f5781600d5f868685818110610ae157610ae1611883565b9050602002016020810190610af6919061171e565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610b2781611897565b915050610ac3565b50505050565b5f546001600160a01b03163314610b5e5760405162461bcd60e51b815260040161073690611827565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610bcd575f80fd5b305f90815260016020526040812054606490610be990846118af565b610bf391906118c6565b90506106f3816112b1565b6001600160a01b038316610c605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610736565b6001600160a01b038216610cc15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610736565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a548390600160a81b900460ff1680610d6c57507f000000000000000000000000d7e09150ca06e063b91c9e190c407931334c3eb86001600160a01b0316816001600160a01b0316145b610d74575f80fd5b6001600160a01b038416610dd85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610736565b6001600160a01b038316610e3a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610736565b5f8211610ea25760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610736565b6001600160a01b0384165f908152600d602052604090205460ff16158015610ee257506001600160a01b0383165f908152600d602052604090205460ff16155b610f2e5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a20626c61636b6c69737465642063616e6e6f74207472616465006044820152606401610736565b6001600160a01b0384165f9081526001602052604081208054849290610f55908490611870565b90915550506001600160a01b0384163014801590610fa557507f000000000000000000000000d7e09150ca06e063b91c9e190c407931334c3eb86001600160a01b0316846001600160a01b031614155b8015610fbf57506009546001600160a01b03848116911614155b15611162577f000000000000000000000000a1b664322dd8266cb072e22cd65af8c19be8a5f86001600160a01b0316846001600160a01b031603611083576003548261101f856001600160a01b03165f9081526001602052604090205490565b61102991906118e5565b11156110835760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420726573747269636044820152633a34b7b760e11b6064820152608401610736565b6003548211156110d55760405162461bcd60e51b815260206004820181905260248201527f546f6b656e3a206d617820747820616d6f756e74207265737472696374696f6e6044820152606401610736565b305f90815260016020526040902054600a54600160a01b900460ff1615801561112f57507f000000000000000000000000a1b664322dd8266cb072e22cd65af8c19be8a5f86001600160a01b0316846001600160a01b0316145b801561114257506611c37937e080008110155b8015611152575061115283611455565b1561116057611160816112b1565b505b6001600160a01b0384165f908152600e602052604090205460ff161580156111a257506001600160a01b0383165f908152600e602052604090205460ff16155b15611230575f6111b38585856114ce565b9050801561122e576111c58184611870565b305f908152600160205260408120805492955083929091906111e89084906118e5565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505b6001600160a01b0383165f90815260016020526040812080548492906112579084906118e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a391815260200190565b60405180910390a350505050565b600a805460ff60a01b1916600160a01b1790556112cd81611571565b5f600c819055308152600260209081526040808320734752ba5dbc23f44d87826276bf6fd6b1c372ad2484529091529020549091508111156113305761133030734752ba5dbc23f44d87826276bf6fd6b1c372ad24670de0b6b3a7640000610bfe565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f8151811061136757611367611883565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b01816001815181106113a2576113a2611883565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152734752ba5dbc23f44d87826276bf6fd6b1c372ad249063791ac947906113f99086905f908690309042906004016118f8565b5f604051808303815f87803b158015611410575f80fd5b505af1158015611422573d5f803e3d5ffd5b5050505081476114329190611870565b9150811561144357611443826115af565b5050600a805460ff60a01b1916905550565b5f6007545f1461147857600754611473906611c37937e080006118c6565b61147a565b5f5b821015801561149d5750600854600c5f815461149590611897565b918290555010155b80156107075750435f908152600b6020526040812080546002929091906114c383611897565b919050551092915050565b5f60647f000000000000000000000000a1b664322dd8266cb072e22cd65af8c19be8a5f86001600160a01b0316856001600160a01b031614611551577f000000000000000000000000a1b664322dd8266cb072e22cd65af8c19be8a5f86001600160a01b0316846001600160a01b031614611549575f611555565b600554611555565b6004545b61155f90846118af565b61156991906118c6565b949350505050565b5f6611c37937e0800060065461158791906118af565b821161159a576611c37937e08000610707565b6611c37937e0800060065461070791906118af565b6009546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106f3573d5f803e3d5ffd5b6001600160a01b03811681146115fa575f80fd5b50565b5f806040838503121561160e575f80fd5b8235611619816115e6565b91506020830135611629816115e6565b809150509250929050565b5f6020808352835180828501525f5b8181101561165f57858101830151858201604001528201611643565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611690575f80fd5b823561169b816115e6565b946020939093013593505050565b5f80604083850312156116ba575f80fd5b50508035926020909101359150565b5f805f606084860312156116db575f80fd5b83356116e6816115e6565b925060208401356116f6816115e6565b929592945050506040919091013590565b5f60208284031215611717575f80fd5b5035919050565b5f6020828403121561172e575f80fd5b8135611739816115e6565b9392505050565b5f805f60608486031215611752575f80fd5b505081359360208301359350604090920135919050565b80151581146115fa575f80fd5b5f805f60408486031215611788575f80fd5b833567ffffffffffffffff8082111561179f575f80fd5b818601915086601f8301126117b2575f80fd5b8135818111156117c0575f80fd5b8760208260051b85010111156117d4575f80fd5b602092830195509350508401356117ea81611769565b809150509250925092565b5f60208284031215611805575f80fd5b5051919050565b5f6020828403121561181c575f80fd5b815161173981611769565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156107075761070761185c565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118a8576118a861185c565b5060010190565b80820281158282048414176107075761070761185c565b5f826118e057634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107075761070761185c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119465784516001600160a01b031683529383019391830191600101611921565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122066f19aba51423c428d8db9024d3f51c96417f725202d11701f81acb496c048c764736f6c63430008140033
Deployed ByteCode Sourcemap
2060:9490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9499:343;;;;;;;;;;-1:-1:-1;9499:343:0;;;;;:::i;:::-;;:::i;:::-;;4659:83;;;;;;;;;;-1:-1:-1;4729:5:0;;;;;;;;;;;;-1:-1:-1;;;4729:5:0;;;;4659:83;;;;;;;:::i;:::-;;;;;;;;5459:150;;;;;;;;;;-1:-1:-1;5459:150:0;;;;;:::i;:::-;;:::i;:::-;;;1581:14:1;;1574:22;1556:41;;1544:2;1529:18;5459:150:0;1416:187:1;11254:143:0;;;;;;;;;;-1:-1:-1;11254:143:0;;;;;:::i;:::-;;:::i;4936:91::-;;;;;;;;;;-1:-1:-1;2429:19:0;4936:91;;;2007:25:1;;;1995:2;1980:18;4936:91:0;1861:177:1;5617:358:0;;;;;;;;;;-1:-1:-1;5617:358:0;;;;;:::i;:::-;;:::i;4845:83::-;;;;;;;;;;-1:-1:-1;4845:83:0;;2379:1;2646:36:1;;2634:2;2619:18;4845:83:0;2504:184:1;10075:162:0;;;;;;;;;;;;;:::i;2509:25::-;;;;;;;;;;;;;;;;11037:112;;;;;;;;;;-1:-1:-1;11037:112:0;;;;;:::i;:::-;;:::i;10616:138::-;;;;;;;;;;-1:-1:-1;10616:138:0;;;;;:::i;:::-;;:::i;5035:110::-;;;;;;;;;;-1:-1:-1;5035:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;5119:18:0;5092:7;5119:18;;;:9;:18;;;;;;;5035:110;1228:148;;;;;;;;;;;;;:::i;10470:138::-;;;;;;;;;;-1:-1:-1;10470:138:0;;;;;:::i;:::-;;:::i;11157:88::-;;;;;;;;;;;;;:::i;3036:59::-;;;;;;;;;;-1:-1:-1;3036:59:0;;;;-1:-1:-1;;;;;3036:59:0;;;;;;-1:-1:-1;;;;;3570:32:1;;;3552:51;;3540:2;3525:18;3036:59:0;3390:219:1;2455:45:0;;;;;;;;;;;;;;;;973:79;;;;;;;;;;-1:-1:-1;1011:7:0;1038:6;-1:-1:-1;;;;;1038:6:0;973:79;;4750:87;;;;;;;;;;-1:-1:-1;4822:7:0;;;;;;;;;;;;-1:-1:-1;;;4822:7:0;;;;4750:87;;5153:156;;;;;;;;;;-1:-1:-1;5153:156:0;;;;;:::i;:::-;;:::i;3102:77::-;;;;;;;;;;-1:-1:-1;3102:77:0;;;;-1:-1:-1;;;;;3102:77:0;;;10766:263;;;;;;;;;;-1:-1:-1;10766:263:0;;;;;:::i;:::-;;:::i;2991:36::-;;;;;;;;;;;;;;;11405:142;;;;;;;;;;;;;:::i;10245:217::-;;;;;;;;;;-1:-1:-1;10245:217:0;;;;;:::i;:::-;;:::i;2541:27::-;;;;;;;;;;;;;;;;5317:134;;;;;;;;;;-1:-1:-1;5317:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;5416:18:0;;;5389:7;5416:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5317:134;1060:160;;;;;;;;;;-1:-1:-1;1060:160:0;;;;;:::i;:::-;;:::i;9851:216::-;;;;;;;;;;-1:-1:-1;9851:216:0;;;;;:::i;:::-;;:::i;9499:343::-;9595:17;;-1:-1:-1;;;;;9595:17:0;9581:10;:31;9573:40;;;;;;-1:-1:-1;;;;;9627:19:0;;9624:210;;9661:47;;-1:-1:-1;;;;;9661:24:0;;;9686:21;9661:47;;;;;;;;;9686:21;9661:24;:47;;;;;;;;;;;;;;;;;;;;;9499:343;;:::o;9624:210::-;-1:-1:-1;;;;;9727:22:0;;9744:4;9727:22;9724:110;;9795:38;;-1:-1:-1;;;9795:38:0;;9827:4;9795:38;;;3552:51:1;-1:-1:-1;;;;;9764:22:0;;;;;9787:6;;9764:22;;9795:23;;3525:18:1;;9795:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9764:70;;-1:-1:-1;;;;;;9764:70:0;;;;;;;-1:-1:-1;;;;;5402:32:1;;;9764:70:0;;;5384:51:1;5451:18;;;5444:34;5357:18;;9764:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9724:110::-;9499:343;;:::o;5459:150::-;5525:4;5542:37;5551:10;5563:7;5572:6;5542:8;:37::i;:::-;-1:-1:-1;5597:4:0;5459:150;;;;;:::o;11254:143::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;;;;;;;;;11340:6:::1;:18:::0;;;;11369:7:::1;:20:::0;11254:143::o;5617:358::-;-1:-1:-1;;;;;5731:19:0;;5706:4;5731:19;;;:11;:19;;;;;;;;5751:10;5731:31;;;;;;;;:41;-1:-1:-1;5731:41:0;5723:94;;;;-1:-1:-1;;;5723:94:0;;6302:2:1;5723:94:0;;;6284:21:1;6341:2;6321:18;;;6314:30;6380:34;6360:18;;;6353:62;-1:-1:-1;;;6431:18:1;;;6424:38;6479:19;;5723:94:0;6100:404:1;5723:94:0;-1:-1:-1;;;;;5857:19:0;;;;;;:11;:19;;;;;;;;5845:10;5857:31;;;;;;;;;5828:70;;5837:6;;5857:40;;5891:6;;5857:40;:::i;:::-;5828:8;:70::i;:::-;5909:36;5919:6;5927:9;5938:6;5909:9;:36::i;:::-;-1:-1:-1;5963:4:0;5617:358;;;;;:::o;10075:162::-;10133:17;;-1:-1:-1;;;;;10133:17:0;10119:10;:31;10111:40;;;;;;10180:4;10204:24;;;;:9;:24;;;;;;10162:67;;10180:4;10195:6;;10162:9;:67::i;:::-;10075:162::o;11037:112::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;11113:11:::1;:28:::0;11037:112::o;10616:138::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;10710:15:::1;:36:::0;;-1:-1:-1;;;;;;10710:36:0::1;-1:-1:-1::0;;;;;10710:36:0;;;::::1;::::0;;;::::1;::::0;;10616:138::o;1228:148::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;1335:1:::1;1319:6:::0;;1298:40:::1;::::0;-1:-1:-1;;;;;1319:6:0;;::::1;::::0;1298:40:::1;::::0;1335:1;;1298:40:::1;1366:1;1349:19:::0;;-1:-1:-1;;;;;;1349:19:0::1;::::0;;1228:148::o;10470:138::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;10560:17:::1;:40:::0;;-1:-1:-1;;;;;;10560:40:0::1;-1:-1:-1::0;;;;;10560:40:0;;;::::1;::::0;;;::::1;::::0;;10470:138::o;11157:88::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;2429:19:::1;11211:11;:26:::0;11157:88::o;5153:156::-;5222:4;5239:40;5249:10;5261:9;5272:6;5239:9;:40::i;10766:263::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;10896:15:::1;:38:::0;;;;10945:15:::1;:35:::0;10991:16:::1;:30:::0;10766:263::o;11405:142::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;11467:11:::1;::::0;-1:-1:-1;;;11467:11:0;::::1;;;11466:12;11458:52;;;::::0;-1:-1:-1;;;11458:52:0;;6976:2:1;11458:52:0::1;::::0;::::1;6958:21:1::0;7015:2;6995:18;;;6988:30;7054:29;7034:18;;;7027:57;7101:18;;11458:52:0::1;6774:351:1::0;11458:52:0::1;11521:11;:18:::0;;-1:-1:-1;;;;11521:18:0::1;-1:-1:-1::0;;;11521:18:0::1;::::0;;11405:142::o;10245:217::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;10348:6:::1;10343:112;10360:21:::0;;::::1;10343:112;;;10432:11;10403;:26;10415:10;;10426:1;10415:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10403:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10403:26:0;:40;;-1:-1:-1;;10403:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10383:3;::::1;::::0;::::1;:::i;:::-;;;;10343:112;;;;10245:217:::0;;;:::o;1060:160::-;730:6;;-1:-1:-1;;;;;730:6:0;740:10;730:20;722:65;;;;-1:-1:-1;;;722:65:0;;;;;;;:::i;:::-;1167:6:::1;::::0;;1146:38:::1;::::0;-1:-1:-1;;;;;1146:38:0;;::::1;::::0;1167:6;::::1;::::0;1146:38:::1;::::0;::::1;1195:6;:17:::0;;-1:-1:-1;;;;;;1195:17:0::1;-1:-1:-1::0;;;;;1195:17:0;;;::::1;::::0;;;::::1;::::0;;1060:160::o;9851:216::-;9934:17;;-1:-1:-1;;;;;9934:17:0;9920:10;:31;9912:40;;;;;;10014:4;9963:20;5119:18;;;:9;:18;;;;;;10023:3;;9986:34;;:7;:34;:::i;:::-;:40;;;;:::i;:::-;9963:63;;10037:22;10046:12;10037:8;:22::i;5983:335::-;-1:-1:-1;;;;;6076:19:0;;6068:68;;;;-1:-1:-1;;;6068:68:0;;7999:2:1;6068:68:0;;;7981:21:1;8038:2;8018:18;;;8011:30;8077:34;8057:18;;;8050:62;-1:-1:-1;;;8128:18:1;;;8121:34;8172:19;;6068:68:0;7797:400:1;6068:68:0;-1:-1:-1;;;;;6155:21:0;;6147:68;;;;-1:-1:-1;;;6147:68:0;;8404:2:1;6147:68:0;;;8386:21:1;8443:2;8423:18;;;8416:30;8482:34;8462:18;;;8455:62;-1:-1:-1;;;8533:18:1;;;8526:32;8575:19;;6147:68:0;8202:398:1;6147:68:0;-1:-1:-1;;;;;6226:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6278:32;;2007:25:1;;;6278:32:0;;1980:18:1;6278:32:0;;;;;;;5983:335;;;:::o;6326:1490::-;3632:11;;6396:4;;-1:-1:-1;;;3632:11:0;;;;;:39;;;3657:14;-1:-1:-1;;;;;3647:24:0;:6;-1:-1:-1;;;;;3647:24:0;;3632:39;3624:48;;;;;;-1:-1:-1;;;;;6429:18:0;::::1;6421:68;;;::::0;-1:-1:-1;;;6421:68:0;;8807:2:1;6421:68:0::1;::::0;::::1;8789:21:1::0;8846:2;8826:18;;;8819:30;8885:34;8865:18;;;8858:62;-1:-1:-1;;;8936:18:1;;;8929:35;8981:19;;6421:68:0::1;8605:401:1::0;6421:68:0::1;-1:-1:-1::0;;;;;6508:16:0;::::1;6500:64;;;::::0;-1:-1:-1;;;6500:64:0;;9213:2:1;6500:64:0::1;::::0;::::1;9195:21:1::0;9252:2;9232:18;;;9225:30;9291:34;9271:18;;;9264:62;-1:-1:-1;;;9342:18:1;;;9335:33;9385:19;;6500:64:0::1;9011:399:1::0;6500:64:0::1;6592:1;6583:6;:10;6575:71;;;::::0;-1:-1:-1;;;6575:71:0;;9617:2:1;6575:71:0::1;::::0;::::1;9599:21:1::0;9656:2;9636:18;;;9629:30;9695:34;9675:18;;;9668:62;-1:-1:-1;;;9746:18:1;;;9739:46;9802:19;;6575:71:0::1;9415:412:1::0;6575:71:0::1;-1:-1:-1::0;;;;;6666:17:0;::::1;;::::0;;;:11:::1;:17;::::0;;;;;::::1;;6665:18;:38:::0;::::1;;;-1:-1:-1::0;;;;;;6688:15:0;::::1;;::::0;;;:11:::1;:15;::::0;;;;;::::1;;6687:16;6665:38;6657:82;;;::::0;-1:-1:-1;;;6657:82:0;;10034:2:1;6657:82:0::1;::::0;::::1;10016:21:1::0;10073:2;10053:18;;;10046:30;10112:33;10092:18;;;10085:61;10163:18;;6657:82:0::1;9832:355:1::0;6657:82:0::1;-1:-1:-1::0;;;;;6752:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:25;;6771:6;;6752:15;:25:::1;::::0;6771:6;;6752:25:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;6793:21:0;::::1;6809:4;6793:21;::::0;::::1;::::0;:47:::1;;;6826:14;-1:-1:-1::0;;;;;6818:22:0::1;:4;-1:-1:-1::0;;;;;6818:22:0::1;;;6793:47;:72;;;;-1:-1:-1::0;6850:15:0::1;::::0;-1:-1:-1;;;;;6844:21:0;;::::1;6850:15:::0;::::1;6844:21;;6793:72;6790:572;;;6906:11;-1:-1:-1::0;;;;;6898:19:0::1;:4;-1:-1:-1::0;;;;;6898:19:0::1;::::0;6894:129:::1;;6971:11;;6961:6;6945:13;6955:2;-1:-1:-1::0;;;;;5119:18:0;5092:7;5119:18;;;:9;:18;;;;;;;5035:110;6945:13:::1;:22;;;;:::i;:::-;:37;;6937:86;;;::::0;-1:-1:-1;;;6937:86:0;;10524:2:1;6937:86:0::1;::::0;::::1;10506:21:1::0;10563:2;10543:18;;;10536:30;10602:34;10582:18;;;10575:62;-1:-1:-1;;;10653:18:1;;;10646:34;10697:19;;6937:86:0::1;10322:400:1::0;6937:86:0::1;7056:11;;7046:6;:21;;7038:66;;;::::0;-1:-1:-1;;;7038:66:0;;10929:2:1;7038:66:0::1;::::0;::::1;10911:21:1::0;;;10948:18;;;10941:30;11007:34;10987:18;;;10980:62;11059:18;;7038:66:0::1;10727:356:1::0;7038:66:0::1;7162:4;7119:22;5119:18:::0;;;:9;:18;;;;;;7187:6:::1;::::0;-1:-1:-1;;;7187:6:0;::::1;;;7186:7;:28:::0;::::1;;;;7203:11;-1:-1:-1::0;;;;;7197:17:0::1;:2;-1:-1:-1::0;;;;;7197:17:0::1;;7186:28;:67;;;;;2626:15;7218:14;:35;;7186:67;:93;;;;;7257:22;7272:6;7257:14;:22::i;:::-;7183:139;;;7298:24;7307:14;7298:8;:24::i;:::-;6867:495;6790:572;-1:-1:-1::0;;;;;7378:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;7377:23;:48:::0;::::1;;;-1:-1:-1::0;;;;;;7405:20:0;::::1;;::::0;;;:16:::1;:20;::::0;;;;;::::1;;7404:21;7377:48;7374:357;;;7454:19;7476:30;7489:4;7495:2;7499:6;7476:12;:30::i;:::-;7454:52:::0;-1:-1:-1;7524:15:0;;7521:199:::1;;7559:21;7569:11:::0;7559:21;::::1;:::i;:::-;7617:4;7599:24;::::0;;;:9:::1;:24;::::0;;;;:39;;7559:21;;-1:-1:-1;7627:11:0;;7599:24;;;:39:::1;::::0;7627:11;;7599:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;7662:42:0::1;::::0;2007:25:1;;;7685:4:0::1;::::0;-1:-1:-1;;;;;7662:42:0;::::1;::::0;::::1;::::0;1995:2:1;1980:18;7662:42:0::1;;;;;;;7521:199;7427:304;7374:357;-1:-1:-1::0;;;;;7743:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;:23;;7760:6;;7743:13;:23:::1;::::0;7760:6;;7743:23:::1;:::i;:::-;;;;;;;;7797:2;-1:-1:-1::0;;;;;7782:26:0::1;7791:4;-1:-1:-1::0;;;;;7782:26:0::1;;7801:6;7782:26;;;;2007:25:1::0;;1995:2;1980:18;;1861:177;7782:26:0::1;;;;;;;;6326:1490:::0;;;;:::o;8297:864::-;3513:6;:13;;-1:-1:-1;;;;3513:13:0;-1:-1:-1;;;3513:13:0;;;8378:32:::1;8398:11:::0;8378:19:::1;:32::i;:::-;8429:1;8421:5;:9:::0;;;8462:4:::1;5416:18:::0;;:11;:18;;;;;;;;2845:42:::1;5416:27:::0;;;;;;;;8364:46;;-1:-1:-1;8364:46:0;-1:-1:-1;8441:157:0::1;;;8524:62;8541:4;2845:42;2429:19;8524:8;:62::i;:::-;8703:16;::::0;;8717:1:::1;8703:16:::0;;;;;::::1;::::0;;8647:21:::1;::::0;8618:26:::1;::::0;8703:16;8717:1;8703:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8703:16:0::1;8679:40;;8748:4;8730;8735:1;8730:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8730:23:0::1;;;-1:-1:-1::0;;;;;8730:23:0::1;;;::::0;::::1;-1:-1:-1::0;;;;;8764:4:0::1;8769:1;8764:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8764:13:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:13;8788:195:::1;::::0;-1:-1:-1;;;8788:195:0;;2845:42:::1;::::0;8788:65:::1;::::0;:195:::1;::::0;8868:11;;8894:1:::1;::::0;8910:4;;8937::::1;::::0;8957:15:::1;::::0;8788:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9039:18;9015:21;:42;;;;:::i;:::-;8994:63:::0;-1:-1:-1;9071:22:0;;9068:85:::1;;9110:31;9122:18;9110:11;:31::i;:::-;-1:-1:-1::0;;3549:6:0;:14;;-1:-1:-1;;;;3549:14:0;;;-1:-1:-1;8297:864:0:o;8032:257::-;8097:4;8140:15;;8159:1;8140:20;:62;;8187:15;;8167:35;;2626:15;8167:35;:::i;:::-;8140:62;;;8163:1;8140:62;8121:14;:82;;:126;;;;;8231:16;;8222:5;;8220:7;;;;;:::i;:::-;;;;;-1:-1:-1;8220:27:0;;8121:126;:160;;;;-1:-1:-1;8262:12:0;8251:24;;;;:10;:24;;;;;:26;;8280:1;;8251:26;;:24;:26;;;:::i;:::-;;;;;:30;8114:167;8032:257;-1:-1:-1;;8032:257:0:o;7824:200::-;7910:7;8013:3;7955:11;-1:-1:-1;;;;;7947:19:0;:4;-1:-1:-1;;;;;7947:19:0;;:62;;7984:11;-1:-1:-1;;;;;7978:17:0;:2;-1:-1:-1;;;;;7978:17:0;;:31;;8008:1;7947:62;;7978:31;7998:7;;7947:62;;;7969:6;;7947:62;7937:73;;:6;:73;:::i;:::-;:79;;;;:::i;:::-;7930:86;7824:200;-1:-1:-1;;;;7824:200:0:o;9169:218::-;9241:7;2626:15;9283;;:35;;;;:::i;:::-;9268:11;:51;:111;;2626:15;9268:111;;;2626:15;9323;;:35;;;;:::i;9395:96::-;9451:15;;:32;;-1:-1:-1;;;;;9451:15:0;;;;:32;;;;;9476:6;;9451:15;:32;:15;:32;9476:6;9451:15;:32;;;;;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:388::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;-1:-1:-1;460:2:1;445:18;;432:32;473:33;432:32;473:33;:::i;:::-;525:7;515:17;;;150:388;;;;;:::o;543:548::-;655:4;684:2;713;702:9;695:21;745:6;739:13;788:6;783:2;772:9;768:18;761:34;813:1;823:140;837:6;834:1;831:13;823:140;;;932:14;;;928:23;;922:30;898:17;;;917:2;894:26;887:66;852:10;;823:140;;;827:3;1012:1;1007:2;998:6;987:9;983:22;979:31;972:42;1082:2;1075;1071:7;1066:2;1058:6;1054:15;1050:29;1039:9;1035:45;1031:54;1023:62;;;;543:548;;;;:::o;1096:315::-;1164:6;1172;1225:2;1213:9;1204:7;1200:23;1196:32;1193:52;;;1241:1;1238;1231:12;1193:52;1280:9;1267:23;1299:31;1324:5;1299:31;:::i;:::-;1349:5;1401:2;1386:18;;;;1373:32;;-1:-1:-1;;;1096:315:1:o;1608:248::-;1676:6;1684;1737:2;1725:9;1716:7;1712:23;1708:32;1705:52;;;1753:1;1750;1743:12;1705:52;-1:-1:-1;;1776:23:1;;;1846:2;1831:18;;;1818:32;;-1:-1:-1;1608:248:1:o;2043:456::-;2120:6;2128;2136;2189:2;2177:9;2168:7;2164:23;2160:32;2157:52;;;2205:1;2202;2195:12;2157:52;2244:9;2231:23;2263:31;2288:5;2263:31;:::i;:::-;2313:5;-1:-1:-1;2370:2:1;2355:18;;2342:32;2383:33;2342:32;2383:33;:::i;:::-;2043:456;;2435:7;;-1:-1:-1;;;2489:2:1;2474:18;;;;2461:32;;2043:456::o;2693:180::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;-1:-1:-1;2844:23:1;;2693:180;-1:-1:-1;2693:180:1:o;2878:255::-;2945:6;2998:2;2986:9;2977:7;2973:23;2969:32;2966:52;;;3014:1;3011;3004:12;2966:52;3053:9;3040:23;3072:31;3097:5;3072:31;:::i;:::-;3122:5;2878:255;-1:-1:-1;;;2878:255:1:o;3822:316::-;3899:6;3907;3915;3968:2;3956:9;3947:7;3943:23;3939:32;3936:52;;;3984:1;3981;3974:12;3936:52;-1:-1:-1;;4007:23:1;;;4077:2;4062:18;;4049:32;;-1:-1:-1;4128:2:1;4113:18;;;4100:32;;3822:316;-1:-1:-1;3822:316:1:o;4143:118::-;4229:5;4222:13;4215:21;4208:5;4205:32;4195:60;;4251:1;4248;4241:12;4266:750;4358:6;4366;4374;4427:2;4415:9;4406:7;4402:23;4398:32;4395:52;;;4443:1;4440;4433:12;4395:52;4483:9;4470:23;4512:18;4553:2;4545:6;4542:14;4539:34;;;4569:1;4566;4559:12;4539:34;4607:6;4596:9;4592:22;4582:32;;4652:7;4645:4;4641:2;4637:13;4633:27;4623:55;;4674:1;4671;4664:12;4623:55;4714:2;4701:16;4740:2;4732:6;4729:14;4726:34;;;4756:1;4753;4746:12;4726:34;4811:7;4804:4;4794:6;4791:1;4787:14;4783:2;4779:23;4775:34;4772:47;4769:67;;;4832:1;4829;4822:12;4769:67;4863:4;4855:13;;;;-1:-1:-1;4887:6:1;-1:-1:-1;;4928:20:1;;4915:34;4958:28;4915:34;4958:28;:::i;:::-;5005:5;4995:15;;;4266:750;;;;;:::o;5021:184::-;5091:6;5144:2;5132:9;5123:7;5119:23;5115:32;5112:52;;;5160:1;5157;5150:12;5112:52;-1:-1:-1;5183:16:1;;5021:184;-1:-1:-1;5021:184:1:o;5489:245::-;5556:6;5609:2;5597:9;5588:7;5584:23;5580:32;5577:52;;;5625:1;5622;5615:12;5577:52;5657:9;5651:16;5676:28;5698:5;5676:28;:::i;5739:356::-;5941:2;5923:21;;;5960:18;;;5953:30;6019:34;6014:2;5999:18;;5992:62;6086:2;6071:18;;5739:356::o;6509:127::-;6570:10;6565:3;6561:20;6558:1;6551:31;6601:4;6598:1;6591:15;6625:4;6622:1;6615:15;6641:128;6708:9;;;6729:11;;;6726:37;;;6743:18;;:::i;7130:127::-;7191:10;7186:3;7182:20;7179:1;7172:31;7222:4;7219:1;7212:15;7246:4;7243:1;7236:15;7262:135;7301:3;7322:17;;;7319:43;;7342:18;;:::i;:::-;-1:-1:-1;7389:1:1;7378:13;;7262:135::o;7402:168::-;7475:9;;;7506;;7523:15;;;7517:22;;7503:37;7493:71;;7544:18;;:::i;7575:217::-;7615:1;7641;7631:132;;7685:10;7680:3;7676:20;7673:1;7666:31;7720:4;7717:1;7710:15;7748:4;7745:1;7738:15;7631:132;-1:-1:-1;7777:9:1;;7575:217::o;10192:125::-;10257:9;;;10278:10;;;10275:36;;;10291:18;;:::i;11220:980::-;11482:4;11530:3;11519:9;11515:19;11561:6;11550:9;11543:25;11587:2;11625:6;11620:2;11609:9;11605:18;11598:34;11668:3;11663:2;11652:9;11648:18;11641:31;11692:6;11727;11721:13;11758:6;11750;11743:22;11796:3;11785:9;11781:19;11774:26;;11835:2;11827:6;11823:15;11809:29;;11856:1;11866:195;11880:6;11877:1;11874:13;11866:195;;;11945:13;;-1:-1:-1;;;;;11941:39:1;11929:52;;12036:15;;;;12001:12;;;;11977:1;11895:9;11866:195;;;-1:-1:-1;;;;;;;12117:32:1;;;;12112:2;12097:18;;12090:60;-1:-1:-1;;;12181:3:1;12166:19;12159:35;12078:3;11220:980;-1:-1:-1;;;11220:980:1:o
Swarm Source
ipfs://66f19aba51423c428d8db9024d3f51c96417f725202d11701f81acb496c048c7
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.