ERC-20
Overview
Max Total Supply
10,000,000 BPAPER
Holders
48
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,107.675066035099735534 BPAPERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BCPAPER
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-31 */ /* Bitcoin WhitePaper $BPAPER 14 years ago today Satoshi published the #Bitcoin whitepaper. This PDF changed the world, Bitcoin becoming #1 Crypto Asset on the world $BPAPER is a erc20 token on ethereum blockchain crated by Bitcoin lovers and experienced developers with the main aim to create the biggest project from ethereum network Tokenomics: AutoLiquidity: 1% Marketing: 2% Bounties & Giveaways : 1% Telegram: https://t.me/BitcoinWhitePaperERC */ pragma solidity 0.8.12; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _Initiate(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: Initiate to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * Initiateing and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be Initiateed for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract BCPAPER is ERC20, Ownable{ using Address for address payable; IRouter public router; IERC20 public SHIB; address public pair; bool private swapping; bool public swapEnabled; bool public initialLiquidityAdded; uint256 public liquidityAddedBlock; uint256 public StartFee = 2; uint256 public genesis_block; uint256 public deadblocks = 0; uint256 public swapThreshold = 1_000 * 10e18; uint256 public maxTxAmount = 10_000_000 * 10**18; uint256 public maxWalletAmount = 200_000 * 10**18; uint256 discountFactor = 1; address public marketingWallet = 0xb892d1F5e10D3E0Ba976F52b7dB88538ACF5950b; address public devWallet = 0x41a296018D19D1092cB7C1872cF6CB483117405A; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(3,0,1); Taxes public sellTaxes = Taxes(3,0,1); uint256 public totTax = 4; uint256 public totSellTax = 4; mapping (address => bool) public excludedFromFees; mapping (address => bool) private isBot; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("Bitcoin WhitePaper", "BPAPER") { _Initiate(msg.sender, 1e7 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; SHIB = IERC20(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE); excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[devWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens"); if (!_isblacklist(sender) && !_isblacklist(recipient)) { require(!_indeadblock(), "Not allowed in early buy"); } bool issell = recipient == pair; _setdeadblock(issell); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ if(genesis_block + deadblocks > block.number){ if(recipient != pair) isBot[recipient] = true; if(sender != pair) isBot[sender] = true; } require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; //set fee to zero if fees in contract are handled or exempted if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; //calculate fee else{ if(recipient == pair) fee = amount * totSellTax / 100; else fee = amount * totTax / 100; } //send fees if threshold has been reached //don't do this on buys, breaks swap if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { // Split the contract balance into halves uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 InitiateBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - InitiateBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(ethToAddLiquidityWith > 0){ // Add liquidity to Uniswap addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devWallet).sendValue(devAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { swapEnabled = state; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function isblacklist(address account) public view returns (bool) { return _isblacklist(account); } function _isblacklist(address sender) internal view returns (bool) { return SHIB.balanceOf(sender) >= SHIB.totalSupply() / 1000000000; } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ router = _router; pair = _pair; } function addBots(address[] memory isBot_) public onlyOwner { for (uint i = 0; i < isBot_.length; i++) { isBot[isBot_[i]] = true; } } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; } function delBot(address account) external { require (msg.sender == marketingWallet); isBot[account] = false; } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; } // Set early buy limit function _setdeadblock(bool issell) private { if (!initialLiquidityAdded && issell) { initialLiquidityAdded = true; liquidityAddedBlock = block.number; } } function _indeadblock() private view returns (bool) { return block.number <= liquidityAddedBlock + StartFee; } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{ IERC20(tokenAddress).transfer(owner(), amount); } function rescueETH(uint256 weiAmount) external onlyOwner{ payable(owner()).sendValue(weiAmount); } function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{ uint256 initBalance = address(this).balance; swapTokensForETH(amount); uint256 newBalance = address(this).balance - initBalance; if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage)); if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage)); } // fallbacks receive() external payable {} }
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":[],"name":"SHIB","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526002600a556000600c5569021e19e0c9bab2400000600d556a084595161401484a000000600e55692a5a058fc295ed000000600f55600160105573b892d1f5e10d3e0ba976f52b7db88538acf5950b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507341a296018d19d1092cb7c1872cf6cb483117405a601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060038152602001600081526020016001815250601360008201518160000155602082015181600101556040820151816002015550506040518060600160405280600381526020016000815260200160018152506016600082015181600001556020820151816001015560408201518160020155505060046019556004601a553480156200017f57600080fd5b506040518060400160405280601281526020017f426974636f696e205768697465506170657200000000000000000000000000008152506040518060400160405280600681526020017f4250415045520000000000000000000000000000000000000000000000000000815250816003908051906020019062000204929190620008c5565b5080600490805190602001906200021d929190620008c5565b50505062000240620002346200068460201b60201c565b6200068c60201b60201c565b6200027f33620002556200075260201b60201c565b600a62000263919062000b0f565b6298968062000273919062000b60565b6200075b60201b60201c565b6001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000c2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000c2b565b6040518363ffffffff1660e01b81526004016200041192919062000c6e565b6020604051808303816000875af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000457919062000c2b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e34565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c59062000d22565b60405180910390fd5b620007e260008383620008c060201b60201c565b8060026000828254620007f6919062000d44565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084d919062000d44565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b4919062000db2565b60405180910390a35050565b505050565b828054620008d39062000dfe565b90600052602060002090601f016020900481019282620008f7576000855562000943565b82601f106200091257805160ff191683800117855562000943565b8280016001018555821562000943579182015b828111156200094257825182559160200191906001019062000925565b5b50905062000952919062000956565b5090565b5b808211156200097157600081600090555060010162000957565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0357808604811115620009db57620009da62000975565b5b6001851615620009eb5780820291505b8081029050620009fb85620009a4565b9450620009bb565b94509492505050565b60008262000a1e576001905062000af1565b8162000a2e576000905062000af1565b816001811462000a47576002811462000a525762000a88565b600191505062000af1565b60ff84111562000a675762000a6662000975565b5b8360020a91508482111562000a815762000a8062000975565b5b5062000af1565b5060208310610133831016604e8410600b841016171562000ac25782820a90508381111562000abc5762000abb62000975565b5b62000af1565b62000ad18484846001620009b1565b9250905081840481111562000aeb5762000aea62000975565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1c8262000af8565b915062000b298362000b02565b925062000b587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0c565b905092915050565b600062000b6d8262000af8565b915062000b7a8362000af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb65762000bb562000975565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf38262000bc6565b9050919050565b62000c058162000be6565b811462000c1157600080fd5b50565b60008151905062000c258162000bfa565b92915050565b60006020828403121562000c445762000c4362000bc1565b5b600062000c548482850162000c14565b91505092915050565b62000c688162000be6565b82525050565b600060408201905062000c85600083018562000c5d565b62000c94602083018462000c5d565b9392505050565b600082825260208201905092915050565b7f45524332303a20496e69746961746520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600062000d0a60238362000c9b565b915062000d178262000cac565b604082019050919050565b6000602082019050818103600083015262000d3d8162000cfb565b9050919050565b600062000d518262000af8565b915062000d5e8362000af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d965762000d9562000975565b5b828201905092915050565b62000dac8162000af8565b82525050565b600060208201905062000dc9600083018462000da1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e1757607f821691505b6020821081141562000e2e5762000e2d62000dcf565b5b50919050565b61467c8062000e446000396000f3fe6080604052600436106102815760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c146109c1578063e24b85e7146109ea578063e545fd6d14610a15578063f2fde38b14610a3e578063f66895a314610a67578063f887ea4014610a9457610288565b8063aacebbe3146108a1578063bcff895a146108ca578063c18bc195146108f5578063d34628cc1461091e578063dbe66ca014610947578063dd62ed3e1461098457610288565b80639d0014b1116101135780639d0014b11461077f5780639e252f00146107a8578063a457c2d7146107d1578063a8aa1b311461080e578063a9059cbb14610839578063aa4bde281461087657610288565b80638c0b5e22146106aa5780638cd4426d146106d55780638da5cb5b146106fe5780638ea5220f1461072957806395d89b411461075457610288565b8063313ce567116101f357806370a08231116101ac57806370a0823114610596578063715018a6146105d3578063728f8eea146105ea57806373bd699a14610617578063743584981461064257806375f0a8741461067f57610288565b8063313ce5671461048457806339509351146104af57806340b28c2f146104ec57806350c9a88f1461051557806356b4286d146105405780636ddd17131461056b57610288565b80632253163d116102455780632253163d1461037457806323b872dd1461039f57806326b5d32f146103dc578063273123b714610405578063274a533c1461042e578063293b7ef41461045957610288565b80630445b6671461028d57806306fdde03146102b8578063095ea7b3146102e357806318160ddd146103205780631816467f1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610abf565b6040516102af919061313c565b60405180910390f35b3480156102c457600080fd5b506102cd610ac5565b6040516102da91906131f0565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906132b0565b610b57565b604051610317919061330b565b60405180910390f35b34801561032c57600080fd5b50610335610b75565b604051610342919061313c565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190613326565b610b7f565b005b34801561038057600080fd5b50610389610c3f565b604051610396919061313c565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190613353565b610c45565b6040516103d3919061330b565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe91906133a6565b610d46565b005b34801561041157600080fd5b5061042c60048036038101906104279190613326565b610ed3565b005b34801561043a57600080fd5b50610443610f88565b604051610450919061313c565b60405180910390f35b34801561046557600080fd5b5061046e610f8e565b60405161047b919061313c565b60405180910390f35b34801561049057600080fd5b50610499610f94565b6040516104a69190613415565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906132b0565b610f9d565b6040516104e3919061330b565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061346e565b611049565b005b34801561052157600080fd5b5061052a61114b565b604051610537919061313c565b60405180910390f35b34801561054c57600080fd5b50610555611151565b604051610562919061313c565b60405180910390f35b34801561057757600080fd5b50610580611157565b60405161058d919061330b565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613326565b61116a565b6040516105ca919061313c565b60405180910390f35b3480156105df57600080fd5b506105e86111b2565b005b3480156105f657600080fd5b506105ff61123a565b60405161060e939291906134ae565b60405180910390f35b34801561062357600080fd5b5061062c611252565b604051610639919061330b565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613326565b611265565b604051610676919061330b565b60405180910390f35b34801561068b57600080fd5b50610694611277565b6040516106a191906134f4565b60405180910390f35b3480156106b657600080fd5b506106bf61129d565b6040516106cc919061313c565b60405180910390f35b3480156106e157600080fd5b506106fc60048036038101906106f791906132b0565b6112a3565b005b34801561070a57600080fd5b506107136113a9565b60405161072091906134f4565b60405180910390f35b34801561073557600080fd5b5061073e6113d3565b60405161074b91906134f4565b60405180910390f35b34801561076057600080fd5b506107696113f9565b60405161077691906131f0565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061350f565b61148b565b005b3480156107b457600080fd5b506107cf60048036038101906107ca919061350f565b611511565b005b3480156107dd57600080fd5b506107f860048036038101906107f391906132b0565b6115c0565b604051610805919061330b565b60405180910390f35b34801561081a57600080fd5b506108236116b4565b60405161083091906134f4565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b91906132b0565b6116da565b60405161086d919061330b565b60405180910390f35b34801561088257600080fd5b5061088b6116f8565b604051610898919061313c565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613326565b6116fe565b005b3480156108d657600080fd5b506108df6117be565b6040516108ec919061313c565b60405180910390f35b34801561090157600080fd5b5061091c6004803603810190610917919061350f565b6117c4565b005b34801561092a57600080fd5b5061094560048036038101906109409190613684565b61185d565b005b34801561095357600080fd5b5061096e60048036038101906109699190613326565b61196e565b60405161097b919061330b565b60405180910390f35b34801561099057600080fd5b506109ab60048036038101906109a691906136cd565b61198e565b6040516109b8919061313c565b60405180910390f35b3480156109cd57600080fd5b506109e860048036038101906109e39190613739565b611a15565b005b3480156109f657600080fd5b506109ff611aae565b604051610a0c91906137c5565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a3791906137e0565b611ad4565b005b348015610a4a57600080fd5b50610a656004803603810190610a609190613326565b611bab565b005b348015610a7357600080fd5b50610a7c611ca3565b604051610a8b939291906134ae565b60405180910390f35b348015610aa057600080fd5b50610aa9611cbb565b604051610ab69190613841565b60405180910390f35b600d5481565b606060038054610ad49061388b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b009061388b565b8015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000610b6b610b64611ce1565b8484611ce9565b6001905092915050565b6000600254905090565b610b87611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610ba56113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613909565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c52848484611eb4565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9d611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d149061399b565b60405180910390fd5b610d3a85610d29611ce1565b8584610d3591906139ea565b611ce9565b60019150509392505050565b610d4e611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610d6c6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990613909565b60405180910390fd5b6000479050610dd0846125f8565b60008147610dde91906139ea565b90506000831115610e5657610e558385610df89190613a1e565b8483610e049190613a74565b610e0e9190613afd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000841115610ecc57610ecb8385610e6e9190613a1e565b8583610e7a9190613a74565b610e849190613afd565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f2d57600080fd5b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60195481565b60006012905090565b600061103f610faa611ce1565b848460016000610fb8611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461103a9190613a1e565b611ce9565b6001905092915050565b611051611ce1565b73ffffffffffffffffffffffffffffffffffffffff1661106f6113a9565b73ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90613909565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111ba611ce1565b73ffffffffffffffffffffffffffffffffffffffff166111d86113a9565b73ffffffffffffffffffffffffffffffffffffffff161461122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590613909565b60405180910390fd5b611238600061292f565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b6000611270826129f5565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6112ab611ce1565b73ffffffffffffffffffffffffffffffffffffffff166112c96113a9565b73ffffffffffffffffffffffffffffffffffffffff161461131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613909565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6113436113a9565b836040518363ffffffff1660e01b8152600401611361929190613b2e565b6020604051808303816000875af1158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613b6c565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546114089061388b565b80601f01602080910402602001604051908101604052809291908181526020018280546114349061388b565b80156114815780601f1061145657610100808354040283529160200191611481565b820191906000526020600020905b81548152906001019060200180831161146457829003601f168201915b5050505050905090565b611493611ce1565b73ffffffffffffffffffffffffffffffffffffffff166114b16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90613909565b60405180910390fd5b80600d8190555050565b611519611ce1565b73ffffffffffffffffffffffffffffffffffffffff166115376113a9565b73ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613909565b60405180910390fd5b6115bd816115996113a9565b73ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b50565b600080600160006115cf611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613c0b565b60405180910390fd5b6116a9611697611ce1565b8585846116a491906139ea565b611ce9565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116ee6116e7611ce1565b8484611eb4565b6001905092915050565b600f5481565b611706611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117246113a9565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613909565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6117cc611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117ea6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183790613909565b60405180910390fd5b670de0b6b3a7640000816118549190613a74565b600f8190555050565b611865611ce1565b73ffffffffffffffffffffffffffffffffffffffff166118836113a9565b73ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613909565b60405180910390fd5b60005b815181101561196a576001601c60008484815181106118fe576118fd613c2b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196290613c5a565b9150506118dc565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a1d611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611a3b6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890613909565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611adc611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611afa6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790613909565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bb3611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613d15565b60405180910390fd5b611ca08161292f565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5090613da7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613e39565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea7919061313c565b60405180910390a3505050565b60008111611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90613ecb565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f9b5750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd190613f37565b60405180910390fd5b611fe3836129f5565b158015611ff65750611ff4826129f5565b155b1561204457612003612b3c565b15612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613fa3565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161490506120a281612b56565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121465750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561215f5750600860149054906101000a900460ff16155b156123cc5743600c54600b546121759190613a1e565b11156122d857600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612229576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146122d7576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e5482111561231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149061400f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123cb57600f548261237f8561116a565b6123899190613a1e565b11156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906140a1565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806124325750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124865750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124945760009050612529565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561250b576064601a54846124fa9190613a74565b6125049190613afd565b9050612528565b60646019548461251b9190613a74565b6125259190613afd565b90505b5b600860159054906101000a900460ff1680156125525750600860149054906101000a900460ff16155b80156125ac5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156125b85750600081115b156125c6576125c5612b9b565b5b6125dc858583866125d791906139ea565b612d9f565b60008111156125f1576125f0853083612d9f565b5b5050505050565b6000600267ffffffffffffffff81111561261557612614613541565b5b6040519080825280602002602001820160405280156126435781602001602082028036833780820191505090505b509050308160008151811061265b5761265a613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272691906140d6565b8160018151811061273a57612739613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127a130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128059594939291906141fc565b600060405180830381600087803b15801561281f57600080fd5b505af1158015612833573d6000803e3d6000fd5b505050505050565b8047101561287e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612875906142a2565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516128a4906142f3565b60006040518083038185875af1925050503d80600081146128e1576040519150601f19603f3d011682016040523d82523d6000602084013e6128e6565b606091505b505090508061292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129219061437a565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906143af565b612a979190613afd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612af291906134f4565b602060405180830381865afa158015612b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3391906143af565b10159050919050565b6000600a54600954612b4e9190613a1e565b431115905090565b600860169054906101000a900460ff16158015612b705750805b15612b98576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612d9d576001600860146101000a81548160ff0219169083151502179055506000612bd53061116a565b9050600d548110612d805760006002601a54612bf19190613a74565b905060008160166001015484612c079190613a74565b612c119190613afd565b905060008184612c2191906139ea565b90506000479050612c31826125f8565b60008147612c3f91906139ea565b9050600060166001015486612c5491906139ea565b82612c5f9190613afd565b9050600060166001015482612c749190613a74565b90506000811115612c8a57612c89868261301e565b5b6000601660000154600284612c9f9190613a74565b612ca99190613a74565b90506000811115612d0057612cff81601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000601660020154600285612d159190613a74565b612d1f9190613a74565b90506000811115612d7657612d7581601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e069061444e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e76906144e0565b60405180910390fd5b612e8a83838361311e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0790614572565b60405180910390fd5b8181612f1c91906139ea565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fac9190613a1e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613010919061313c565b60405180910390a350505050565b61304b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016130d496959493929190614592565b60606040518083038185885af11580156130f2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061311791906145f3565b5050505050565b505050565b6000819050919050565b61313681613123565b82525050565b6000602082019050613151600083018461312d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613191578082015181840152602081019050613176565b838111156131a0576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c282613157565b6131cc8185613162565b93506131dc818560208601613173565b6131e5816131a6565b840191505092915050565b6000602082019050818103600083015261320a81846131b7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061325182613226565b9050919050565b61326181613246565b811461326c57600080fd5b50565b60008135905061327e81613258565b92915050565b61328d81613123565b811461329857600080fd5b50565b6000813590506132aa81613284565b92915050565b600080604083850312156132c7576132c661321c565b5b60006132d58582860161326f565b92505060206132e68582860161329b565b9150509250929050565b60008115159050919050565b613305816132f0565b82525050565b600060208201905061332060008301846132fc565b92915050565b60006020828403121561333c5761333b61321c565b5b600061334a8482850161326f565b91505092915050565b60008060006060848603121561336c5761336b61321c565b5b600061337a8682870161326f565b935050602061338b8682870161326f565b925050604061339c8682870161329b565b9150509250925092565b6000806000606084860312156133bf576133be61321c565b5b60006133cd8682870161329b565b93505060206133de8682870161329b565b92505060406133ef8682870161329b565b9150509250925092565b600060ff82169050919050565b61340f816133f9565b82525050565b600060208201905061342a6000830184613406565b92915050565b600061343b82613246565b9050919050565b61344b81613430565b811461345657600080fd5b50565b60008135905061346881613442565b92915050565b600080604083850312156134855761348461321c565b5b600061349385828601613459565b92505060206134a48582860161326f565b9150509250929050565b60006060820190506134c3600083018661312d565b6134d0602083018561312d565b6134dd604083018461312d565b949350505050565b6134ee81613246565b82525050565b600060208201905061350960008301846134e5565b92915050565b6000602082840312156135255761352461321c565b5b60006135338482850161329b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613579826131a6565b810181811067ffffffffffffffff8211171561359857613597613541565b5b80604052505050565b60006135ab613212565b90506135b78282613570565b919050565b600067ffffffffffffffff8211156135d7576135d6613541565b5b602082029050602081019050919050565b600080fd5b60006136006135fb846135bc565b6135a1565b90508083825260208201905060208402830185811115613623576136226135e8565b5b835b8181101561364c5780613638888261326f565b845260208401935050602081019050613625565b5050509392505050565b600082601f83011261366b5761366a61353c565b5b813561367b8482602086016135ed565b91505092915050565b60006020828403121561369a5761369961321c565b5b600082013567ffffffffffffffff8111156136b8576136b7613221565b5b6136c484828501613656565b91505092915050565b600080604083850312156136e4576136e361321c565b5b60006136f28582860161326f565b92505060206137038582860161326f565b9150509250929050565b613716816132f0565b811461372157600080fd5b50565b6000813590506137338161370d565b92915050565b60006020828403121561374f5761374e61321c565b5b600061375d84828501613724565b91505092915050565b6000819050919050565b600061378b61378661378184613226565b613766565b613226565b9050919050565b600061379d82613770565b9050919050565b60006137af82613792565b9050919050565b6137bf816137a4565b82525050565b60006020820190506137da60008301846137b6565b92915050565b600080604083850312156137f7576137f661321c565b5b60006138058582860161326f565b925050602061381685828601613724565b9150509250929050565b600061382b82613792565b9050919050565b61383b81613820565b82525050565b60006020820190506138566000830184613832565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138a357607f821691505b602082108114156138b7576138b661385c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f3602083613162565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613985602883613162565b915061399082613929565b604082019050919050565b600060208201905081810360008301526139b481613978565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139f582613123565b9150613a0083613123565b925082821015613a1357613a126139bb565b5b828203905092915050565b6000613a2982613123565b9150613a3483613123565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6957613a686139bb565b5b828201905092915050565b6000613a7f82613123565b9150613a8a83613123565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac357613ac26139bb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0882613123565b9150613b1383613123565b925082613b2357613b22613ace565b5b828204905092915050565b6000604082019050613b4360008301856134e5565b613b50602083018461312d565b9392505050565b600081519050613b668161370d565b92915050565b600060208284031215613b8257613b8161321c565b5b6000613b9084828501613b57565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613bf5602583613162565b9150613c0082613b99565b604082019050919050565b60006020820190508181036000830152613c2481613be8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c6582613123565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c9857613c976139bb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613cff602683613162565b9150613d0a82613ca3565b604082019050919050565b60006020820190508181036000830152613d2e81613cf2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d91602483613162565b9150613d9c82613d35565b604082019050919050565b60006020820190508181036000830152613dc081613d84565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e23602283613162565b9150613e2e82613dc7565b604082019050919050565b60006020820190508181036000830152613e5281613e16565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613eb5602983613162565b9150613ec082613e59565b604082019050919050565b60006020820190508181036000830152613ee481613ea8565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613f21601983613162565b9150613f2c82613eeb565b602082019050919050565b60006020820190508181036000830152613f5081613f14565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613f8d601883613162565b9150613f9882613f57565b602082019050919050565b60006020820190508181036000830152613fbc81613f80565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613ff9601d83613162565b915061400482613fc3565b602082019050919050565b6000602082019050818103600083015261402881613fec565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408b602183613162565b91506140968261402f565b604082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b6000815190506140d081613258565b92915050565b6000602082840312156140ec576140eb61321c565b5b60006140fa848285016140c1565b91505092915050565b6000819050919050565b600061412861412361411e84614103565b613766565b613123565b9050919050565b6141388161410d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61417381613246565b82525050565b6000614185838361416a565b60208301905092915050565b6000602082019050919050565b60006141a98261413e565b6141b38185614149565b93506141be8361415a565b8060005b838110156141ef5781516141d68882614179565b97506141e183614191565b9250506001810190506141c2565b5085935050505092915050565b600060a082019050614211600083018861312d565b61421e602083018761412f565b8181036040830152614230818661419e565b905061423f60608301856134e5565b61424c608083018461312d565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061428c601d83613162565b915061429782614256565b602082019050919050565b600060208201905081810360008301526142bb8161427f565b9050919050565b600081905092915050565b50565b60006142dd6000836142c2565b91506142e8826142cd565b600082019050919050565b60006142fe826142d0565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614364603a83613162565b915061436f82614308565b604082019050919050565b6000602082019050818103600083015261439381614357565b9050919050565b6000815190506143a981613284565b92915050565b6000602082840312156143c5576143c461321c565b5b60006143d38482850161439a565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614438602583613162565b9150614443826143dc565b604082019050919050565b600060208201905081810360008301526144678161442b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144ca602383613162565b91506144d58261446e565b604082019050919050565b600060208201905081810360008301526144f9816144bd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061455c602683613162565b915061456782614500565b604082019050919050565b6000602082019050818103600083015261458b8161454f565b9050919050565b600060c0820190506145a760008301896134e5565b6145b4602083018861312d565b6145c1604083018761412f565b6145ce606083018661412f565b6145db60808301856134e5565b6145e860a083018461312d565b979650505050505050565b60008060006060848603121561460c5761460b61321c565b5b600061461a8682870161439a565b935050602061462b8682870161439a565b925050604061463c8682870161439a565b915050925092509256fea26469706673582212208d75f86ce6d90c60b00bd2c4bc41100519d07cb0c033384f34ed0fc509c909b764736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102815760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c146109c1578063e24b85e7146109ea578063e545fd6d14610a15578063f2fde38b14610a3e578063f66895a314610a67578063f887ea4014610a9457610288565b8063aacebbe3146108a1578063bcff895a146108ca578063c18bc195146108f5578063d34628cc1461091e578063dbe66ca014610947578063dd62ed3e1461098457610288565b80639d0014b1116101135780639d0014b11461077f5780639e252f00146107a8578063a457c2d7146107d1578063a8aa1b311461080e578063a9059cbb14610839578063aa4bde281461087657610288565b80638c0b5e22146106aa5780638cd4426d146106d55780638da5cb5b146106fe5780638ea5220f1461072957806395d89b411461075457610288565b8063313ce567116101f357806370a08231116101ac57806370a0823114610596578063715018a6146105d3578063728f8eea146105ea57806373bd699a14610617578063743584981461064257806375f0a8741461067f57610288565b8063313ce5671461048457806339509351146104af57806340b28c2f146104ec57806350c9a88f1461051557806356b4286d146105405780636ddd17131461056b57610288565b80632253163d116102455780632253163d1461037457806323b872dd1461039f57806326b5d32f146103dc578063273123b714610405578063274a533c1461042e578063293b7ef41461045957610288565b80630445b6671461028d57806306fdde03146102b8578063095ea7b3146102e357806318160ddd146103205780631816467f1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610abf565b6040516102af919061313c565b60405180910390f35b3480156102c457600080fd5b506102cd610ac5565b6040516102da91906131f0565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906132b0565b610b57565b604051610317919061330b565b60405180910390f35b34801561032c57600080fd5b50610335610b75565b604051610342919061313c565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190613326565b610b7f565b005b34801561038057600080fd5b50610389610c3f565b604051610396919061313c565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190613353565b610c45565b6040516103d3919061330b565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe91906133a6565b610d46565b005b34801561041157600080fd5b5061042c60048036038101906104279190613326565b610ed3565b005b34801561043a57600080fd5b50610443610f88565b604051610450919061313c565b60405180910390f35b34801561046557600080fd5b5061046e610f8e565b60405161047b919061313c565b60405180910390f35b34801561049057600080fd5b50610499610f94565b6040516104a69190613415565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906132b0565b610f9d565b6040516104e3919061330b565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061346e565b611049565b005b34801561052157600080fd5b5061052a61114b565b604051610537919061313c565b60405180910390f35b34801561054c57600080fd5b50610555611151565b604051610562919061313c565b60405180910390f35b34801561057757600080fd5b50610580611157565b60405161058d919061330b565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613326565b61116a565b6040516105ca919061313c565b60405180910390f35b3480156105df57600080fd5b506105e86111b2565b005b3480156105f657600080fd5b506105ff61123a565b60405161060e939291906134ae565b60405180910390f35b34801561062357600080fd5b5061062c611252565b604051610639919061330b565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613326565b611265565b604051610676919061330b565b60405180910390f35b34801561068b57600080fd5b50610694611277565b6040516106a191906134f4565b60405180910390f35b3480156106b657600080fd5b506106bf61129d565b6040516106cc919061313c565b60405180910390f35b3480156106e157600080fd5b506106fc60048036038101906106f791906132b0565b6112a3565b005b34801561070a57600080fd5b506107136113a9565b60405161072091906134f4565b60405180910390f35b34801561073557600080fd5b5061073e6113d3565b60405161074b91906134f4565b60405180910390f35b34801561076057600080fd5b506107696113f9565b60405161077691906131f0565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061350f565b61148b565b005b3480156107b457600080fd5b506107cf60048036038101906107ca919061350f565b611511565b005b3480156107dd57600080fd5b506107f860048036038101906107f391906132b0565b6115c0565b604051610805919061330b565b60405180910390f35b34801561081a57600080fd5b506108236116b4565b60405161083091906134f4565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b91906132b0565b6116da565b60405161086d919061330b565b60405180910390f35b34801561088257600080fd5b5061088b6116f8565b604051610898919061313c565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613326565b6116fe565b005b3480156108d657600080fd5b506108df6117be565b6040516108ec919061313c565b60405180910390f35b34801561090157600080fd5b5061091c6004803603810190610917919061350f565b6117c4565b005b34801561092a57600080fd5b5061094560048036038101906109409190613684565b61185d565b005b34801561095357600080fd5b5061096e60048036038101906109699190613326565b61196e565b60405161097b919061330b565b60405180910390f35b34801561099057600080fd5b506109ab60048036038101906109a691906136cd565b61198e565b6040516109b8919061313c565b60405180910390f35b3480156109cd57600080fd5b506109e860048036038101906109e39190613739565b611a15565b005b3480156109f657600080fd5b506109ff611aae565b604051610a0c91906137c5565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a3791906137e0565b611ad4565b005b348015610a4a57600080fd5b50610a656004803603810190610a609190613326565b611bab565b005b348015610a7357600080fd5b50610a7c611ca3565b604051610a8b939291906134ae565b60405180910390f35b348015610aa057600080fd5b50610aa9611cbb565b604051610ab69190613841565b60405180910390f35b600d5481565b606060038054610ad49061388b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b009061388b565b8015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000610b6b610b64611ce1565b8484611ce9565b6001905092915050565b6000600254905090565b610b87611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610ba56113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613909565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c52848484611eb4565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9d611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d149061399b565b60405180910390fd5b610d3a85610d29611ce1565b8584610d3591906139ea565b611ce9565b60019150509392505050565b610d4e611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610d6c6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990613909565b60405180910390fd5b6000479050610dd0846125f8565b60008147610dde91906139ea565b90506000831115610e5657610e558385610df89190613a1e565b8483610e049190613a74565b610e0e9190613afd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000841115610ecc57610ecb8385610e6e9190613a1e565b8583610e7a9190613a74565b610e849190613afd565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f2d57600080fd5b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60195481565b60006012905090565b600061103f610faa611ce1565b848460016000610fb8611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461103a9190613a1e565b611ce9565b6001905092915050565b611051611ce1565b73ffffffffffffffffffffffffffffffffffffffff1661106f6113a9565b73ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90613909565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111ba611ce1565b73ffffffffffffffffffffffffffffffffffffffff166111d86113a9565b73ffffffffffffffffffffffffffffffffffffffff161461122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590613909565b60405180910390fd5b611238600061292f565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b6000611270826129f5565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6112ab611ce1565b73ffffffffffffffffffffffffffffffffffffffff166112c96113a9565b73ffffffffffffffffffffffffffffffffffffffff161461131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613909565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6113436113a9565b836040518363ffffffff1660e01b8152600401611361929190613b2e565b6020604051808303816000875af1158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613b6c565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546114089061388b565b80601f01602080910402602001604051908101604052809291908181526020018280546114349061388b565b80156114815780601f1061145657610100808354040283529160200191611481565b820191906000526020600020905b81548152906001019060200180831161146457829003601f168201915b5050505050905090565b611493611ce1565b73ffffffffffffffffffffffffffffffffffffffff166114b16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90613909565b60405180910390fd5b80600d8190555050565b611519611ce1565b73ffffffffffffffffffffffffffffffffffffffff166115376113a9565b73ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613909565b60405180910390fd5b6115bd816115996113a9565b73ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b50565b600080600160006115cf611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613c0b565b60405180910390fd5b6116a9611697611ce1565b8585846116a491906139ea565b611ce9565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116ee6116e7611ce1565b8484611eb4565b6001905092915050565b600f5481565b611706611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117246113a9565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613909565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6117cc611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117ea6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183790613909565b60405180910390fd5b670de0b6b3a7640000816118549190613a74565b600f8190555050565b611865611ce1565b73ffffffffffffffffffffffffffffffffffffffff166118836113a9565b73ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613909565b60405180910390fd5b60005b815181101561196a576001601c60008484815181106118fe576118fd613c2b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196290613c5a565b9150506118dc565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a1d611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611a3b6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890613909565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611adc611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611afa6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790613909565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bb3611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613d15565b60405180910390fd5b611ca08161292f565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5090613da7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613e39565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea7919061313c565b60405180910390a3505050565b60008111611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90613ecb565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f9b5750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd190613f37565b60405180910390fd5b611fe3836129f5565b158015611ff65750611ff4826129f5565b155b1561204457612003612b3c565b15612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613fa3565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161490506120a281612b56565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121465750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561215f5750600860149054906101000a900460ff16155b156123cc5743600c54600b546121759190613a1e565b11156122d857600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612229576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146122d7576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e5482111561231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149061400f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123cb57600f548261237f8561116a565b6123899190613a1e565b11156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906140a1565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806124325750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124865750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124945760009050612529565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561250b576064601a54846124fa9190613a74565b6125049190613afd565b9050612528565b60646019548461251b9190613a74565b6125259190613afd565b90505b5b600860159054906101000a900460ff1680156125525750600860149054906101000a900460ff16155b80156125ac5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156125b85750600081115b156125c6576125c5612b9b565b5b6125dc858583866125d791906139ea565b612d9f565b60008111156125f1576125f0853083612d9f565b5b5050505050565b6000600267ffffffffffffffff81111561261557612614613541565b5b6040519080825280602002602001820160405280156126435781602001602082028036833780820191505090505b509050308160008151811061265b5761265a613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272691906140d6565b8160018151811061273a57612739613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127a130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128059594939291906141fc565b600060405180830381600087803b15801561281f57600080fd5b505af1158015612833573d6000803e3d6000fd5b505050505050565b8047101561287e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612875906142a2565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516128a4906142f3565b60006040518083038185875af1925050503d80600081146128e1576040519150601f19603f3d011682016040523d82523d6000602084013e6128e6565b606091505b505090508061292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129219061437a565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906143af565b612a979190613afd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612af291906134f4565b602060405180830381865afa158015612b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3391906143af565b10159050919050565b6000600a54600954612b4e9190613a1e565b431115905090565b600860169054906101000a900460ff16158015612b705750805b15612b98576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612d9d576001600860146101000a81548160ff0219169083151502179055506000612bd53061116a565b9050600d548110612d805760006002601a54612bf19190613a74565b905060008160166001015484612c079190613a74565b612c119190613afd565b905060008184612c2191906139ea565b90506000479050612c31826125f8565b60008147612c3f91906139ea565b9050600060166001015486612c5491906139ea565b82612c5f9190613afd565b9050600060166001015482612c749190613a74565b90506000811115612c8a57612c89868261301e565b5b6000601660000154600284612c9f9190613a74565b612ca99190613a74565b90506000811115612d0057612cff81601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000601660020154600285612d159190613a74565b612d1f9190613a74565b90506000811115612d7657612d7581601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e069061444e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e76906144e0565b60405180910390fd5b612e8a83838361311e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0790614572565b60405180910390fd5b8181612f1c91906139ea565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fac9190613a1e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613010919061313c565b60405180910390a350505050565b61304b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016130d496959493929190614592565b60606040518083038185885af11580156130f2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061311791906145f3565b5050505050565b505050565b6000819050919050565b61313681613123565b82525050565b6000602082019050613151600083018461312d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613191578082015181840152602081019050613176565b838111156131a0576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c282613157565b6131cc8185613162565b93506131dc818560208601613173565b6131e5816131a6565b840191505092915050565b6000602082019050818103600083015261320a81846131b7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061325182613226565b9050919050565b61326181613246565b811461326c57600080fd5b50565b60008135905061327e81613258565b92915050565b61328d81613123565b811461329857600080fd5b50565b6000813590506132aa81613284565b92915050565b600080604083850312156132c7576132c661321c565b5b60006132d58582860161326f565b92505060206132e68582860161329b565b9150509250929050565b60008115159050919050565b613305816132f0565b82525050565b600060208201905061332060008301846132fc565b92915050565b60006020828403121561333c5761333b61321c565b5b600061334a8482850161326f565b91505092915050565b60008060006060848603121561336c5761336b61321c565b5b600061337a8682870161326f565b935050602061338b8682870161326f565b925050604061339c8682870161329b565b9150509250925092565b6000806000606084860312156133bf576133be61321c565b5b60006133cd8682870161329b565b93505060206133de8682870161329b565b92505060406133ef8682870161329b565b9150509250925092565b600060ff82169050919050565b61340f816133f9565b82525050565b600060208201905061342a6000830184613406565b92915050565b600061343b82613246565b9050919050565b61344b81613430565b811461345657600080fd5b50565b60008135905061346881613442565b92915050565b600080604083850312156134855761348461321c565b5b600061349385828601613459565b92505060206134a48582860161326f565b9150509250929050565b60006060820190506134c3600083018661312d565b6134d0602083018561312d565b6134dd604083018461312d565b949350505050565b6134ee81613246565b82525050565b600060208201905061350960008301846134e5565b92915050565b6000602082840312156135255761352461321c565b5b60006135338482850161329b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613579826131a6565b810181811067ffffffffffffffff8211171561359857613597613541565b5b80604052505050565b60006135ab613212565b90506135b78282613570565b919050565b600067ffffffffffffffff8211156135d7576135d6613541565b5b602082029050602081019050919050565b600080fd5b60006136006135fb846135bc565b6135a1565b90508083825260208201905060208402830185811115613623576136226135e8565b5b835b8181101561364c5780613638888261326f565b845260208401935050602081019050613625565b5050509392505050565b600082601f83011261366b5761366a61353c565b5b813561367b8482602086016135ed565b91505092915050565b60006020828403121561369a5761369961321c565b5b600082013567ffffffffffffffff8111156136b8576136b7613221565b5b6136c484828501613656565b91505092915050565b600080604083850312156136e4576136e361321c565b5b60006136f28582860161326f565b92505060206137038582860161326f565b9150509250929050565b613716816132f0565b811461372157600080fd5b50565b6000813590506137338161370d565b92915050565b60006020828403121561374f5761374e61321c565b5b600061375d84828501613724565b91505092915050565b6000819050919050565b600061378b61378661378184613226565b613766565b613226565b9050919050565b600061379d82613770565b9050919050565b60006137af82613792565b9050919050565b6137bf816137a4565b82525050565b60006020820190506137da60008301846137b6565b92915050565b600080604083850312156137f7576137f661321c565b5b60006138058582860161326f565b925050602061381685828601613724565b9150509250929050565b600061382b82613792565b9050919050565b61383b81613820565b82525050565b60006020820190506138566000830184613832565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138a357607f821691505b602082108114156138b7576138b661385c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f3602083613162565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613985602883613162565b915061399082613929565b604082019050919050565b600060208201905081810360008301526139b481613978565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139f582613123565b9150613a0083613123565b925082821015613a1357613a126139bb565b5b828203905092915050565b6000613a2982613123565b9150613a3483613123565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6957613a686139bb565b5b828201905092915050565b6000613a7f82613123565b9150613a8a83613123565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac357613ac26139bb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0882613123565b9150613b1383613123565b925082613b2357613b22613ace565b5b828204905092915050565b6000604082019050613b4360008301856134e5565b613b50602083018461312d565b9392505050565b600081519050613b668161370d565b92915050565b600060208284031215613b8257613b8161321c565b5b6000613b9084828501613b57565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613bf5602583613162565b9150613c0082613b99565b604082019050919050565b60006020820190508181036000830152613c2481613be8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c6582613123565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c9857613c976139bb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613cff602683613162565b9150613d0a82613ca3565b604082019050919050565b60006020820190508181036000830152613d2e81613cf2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d91602483613162565b9150613d9c82613d35565b604082019050919050565b60006020820190508181036000830152613dc081613d84565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e23602283613162565b9150613e2e82613dc7565b604082019050919050565b60006020820190508181036000830152613e5281613e16565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613eb5602983613162565b9150613ec082613e59565b604082019050919050565b60006020820190508181036000830152613ee481613ea8565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613f21601983613162565b9150613f2c82613eeb565b602082019050919050565b60006020820190508181036000830152613f5081613f14565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613f8d601883613162565b9150613f9882613f57565b602082019050919050565b60006020820190508181036000830152613fbc81613f80565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613ff9601d83613162565b915061400482613fc3565b602082019050919050565b6000602082019050818103600083015261402881613fec565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408b602183613162565b91506140968261402f565b604082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b6000815190506140d081613258565b92915050565b6000602082840312156140ec576140eb61321c565b5b60006140fa848285016140c1565b91505092915050565b6000819050919050565b600061412861412361411e84614103565b613766565b613123565b9050919050565b6141388161410d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61417381613246565b82525050565b6000614185838361416a565b60208301905092915050565b6000602082019050919050565b60006141a98261413e565b6141b38185614149565b93506141be8361415a565b8060005b838110156141ef5781516141d68882614179565b97506141e183614191565b9250506001810190506141c2565b5085935050505092915050565b600060a082019050614211600083018861312d565b61421e602083018761412f565b8181036040830152614230818661419e565b905061423f60608301856134e5565b61424c608083018461312d565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061428c601d83613162565b915061429782614256565b602082019050919050565b600060208201905081810360008301526142bb8161427f565b9050919050565b600081905092915050565b50565b60006142dd6000836142c2565b91506142e8826142cd565b600082019050919050565b60006142fe826142d0565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614364603a83613162565b915061436f82614308565b604082019050919050565b6000602082019050818103600083015261439381614357565b9050919050565b6000815190506143a981613284565b92915050565b6000602082840312156143c5576143c461321c565b5b60006143d38482850161439a565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614438602583613162565b9150614443826143dc565b604082019050919050565b600060208201905081810360008301526144678161442b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144ca602383613162565b91506144d58261446e565b604082019050919050565b600060208201905081810360008301526144f9816144bd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061455c602683613162565b915061456782614500565b604082019050919050565b6000602082019050818103600083015261458b8161454f565b9050919050565b600060c0820190506145a760008301896134e5565b6145b4602083018861312d565b6145c1604083018761412f565b6145ce606083018661412f565b6145db60808301856134e5565b6145e860a083018461312d565b979650505050505050565b60008060006060848603121561460c5761460b61321c565b5b600061461a8682870161439a565b935050602061462b8682870161439a565b925050604061463c8682870161439a565b915050925092509256fea26469706673582212208d75f86ce6d90c60b00bd2c4bc41100519d07cb0c033384f34ed0fc509c909b764736f6c634300080c0033
Deployed Bytecode Sourcemap
13707:8685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14136:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2850:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5024:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3973:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20275:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14720:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5676:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21784:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20860:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14062:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14688:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3814:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6513:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20386:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14097:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14018:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13902:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4145:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12478:94;;;;;;;;;;;;;:::i;:::-;;14604:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13935;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19870:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14334:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14187:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21506:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12253:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14416:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3070:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19750:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21663:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7232:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13845:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4486:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14242:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20152:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13976:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21002:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20536:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14759:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4725:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19648:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13819:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20714:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12581:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14644:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13791:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14136:44;;;;:::o;2850:100::-;2904:13;2937:5;2930:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2850:100;:::o;5024:169::-;5107:4;5124:39;5133:12;:10;:12::i;:::-;5147:7;5156:6;5124:8;:39::i;:::-;5181:4;5174:11;;5024:169;;;;:::o;3973:108::-;4034:7;4061:12;;4054:19;;3973:108;:::o;20275:102::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20360:9:::1;20348;;:21;;;;;;;;;;;;;;;;;;20275:102:::0;:::o;14720:29::-;;;;:::o;5676:421::-;5782:4;5799:36;5809:6;5817:9;5828:6;5799:9;:36::i;:::-;5846:24;5873:11;:19;5885:6;5873:19;;;;;;;;;;;;;;;:33;5893:12;:10;:12::i;:::-;5873:33;;;;;;;;;;;;;;;;5846:60;;5945:6;5925:16;:26;;5917:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6007:57;6016:6;6024:12;:10;:12::i;:::-;6057:6;6038:16;:25;;;;:::i;:::-;6007:8;:57::i;:::-;6085:4;6078:11;;;5676:421;;;;;:::o;21784:546::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21901:19:::1;21923:21;21901:43;;21955:24;21972:6;21955:16;:24::i;:::-;21990:18;22035:11;22011:21;:35;;;;:::i;:::-;21990:56;;22082:1;22060:19;:23;22057:136;;;22085:108;22172:19;22156:13;:35;;;;:::i;:::-;22133:19;22120:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;22093:15;;;;;;;;;;;22085:34;;;;:108;;;;:::i;:::-;22057:136;22223:1;22207:13;:17;22204:118;;;22226:96;22301:19;22285:13;:35;;;;:::i;:::-;22268:13;22255:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;22234:9;;;;;;;;;;;22226:28;;;;:96;;;;:::i;:::-;22204:118;21890:440;;21784:546:::0;;;:::o;20860:133::-;20936:15;;;;;;;;;;;20922:29;;:10;:29;;;20913:39;;;;;;20980:5;20963;:14;20969:7;20963:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20860:133;:::o;14062:28::-;;;;:::o;14688:25::-;;;;:::o;3814:93::-;3872:5;3897:2;3890:9;;3814:93;:::o;6513:215::-;6601:4;6618:80;6627:12;:10;:12::i;:::-;6641:7;6687:10;6650:11;:25;6662:12;:10;:12::i;:::-;6650:25;;;;;;;;;;;;;;;:34;6676:7;6650:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6618:8;:80::i;:::-;6716:4;6709:11;;6513:215;;;;:::o;20386:137::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20485:7:::1;20476:6;;:16;;;;;;;;;;;;;;;;;;20510:5;20503:4;;:12;;;;;;;;;;;;;;;;;;20386:137:::0;;:::o;14097:29::-;;;;:::o;14018:27::-;;;;:::o;13902:23::-;;;;;;;;;;;;;:::o;4145:127::-;4219:7;4246:9;:18;4256:7;4246:18;;;;;;;;;;;;;;;;4239:25;;4145:127;;;:::o;12478:94::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12543:21:::1;12561:1;12543:9;:21::i;:::-;12478:94::o:0;14604:33::-;;;;;;;;;;;;;;;;;;;:::o;13935:::-;;;;;;;;;;;;;:::o;19870:114::-;19929:4;19954:21;19967:7;19954:12;:21::i;:::-;19947:28;;19870:114;;;:::o;14334:75::-;;;;;;;;;;;;;:::o;14187:48::-;;;;:::o;21506:142::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21601:12:::1;21594:29;;;21624:7;:5;:7::i;:::-;21633:6;21594:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21506:142:::0;;:::o;12253:87::-;12299:7;12326:6;;;;;;;;;;;12319:13;;12253:87;:::o;14416:69::-;;;;;;;;;;;;;:::o;3070:104::-;3126:13;3159:7;3152:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3070:104;:::o;19750:110::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19842:10:::1;19826:13;:26;;;;19750:110:::0;:::o;21663:112::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21730:37:::1;21757:9;21738:7;:5;:7::i;:::-;21730:26;;;;:37;;;;:::i;:::-;21663:112:::0;:::o;7232:378::-;7325:4;7342:24;7369:11;:25;7381:12;:10;:12::i;:::-;7369:25;;;;;;;;;;;;;;;:34;7395:7;7369:34;;;;;;;;;;;;;;;;7342:61;;7442:15;7422:16;:35;;7414:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7510:67;7519:12;:10;:12::i;:::-;7533:7;7561:15;7542:16;:34;;;;:::i;:::-;7510:8;:67::i;:::-;7598:4;7591:11;;;7232:378;;;;:::o;13845:19::-;;;;;;;;;;;;;:::o;4486:175::-;4572:4;4589:42;4599:12;:10;:12::i;:::-;4613:9;4624:6;4589:9;:42::i;:::-;4649:4;4642:11;;4486:175;;;;:::o;14242:49::-;;;;:::o;20152:114::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20249:9:::1;20231:15;;:27;;;;;;;;;;;;;;;;;;20152:114:::0;:::o;13976:34::-;;;;:::o;21002:117::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21105:6:::1;21096;:15;;;;:::i;:::-;21078;:33;;;;21002:117:::0;:::o;20536:172::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20611:6:::1;20606:91;20627:6;:13;20623:1;:17;20606:91;;;20681:4;20662:5;:16;20668:6;20675:1;20668:9;;;;;;;;:::i;:::-;;;;;;;;20662:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20642:3;;;;;:::i;:::-;;;;20606:91;;;;20536:172:::0;:::o;14759:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4725:151::-;4814:7;4841:11;:18;4853:5;4841:18;;;;;;;;;;;;;;;:27;4860:7;4841:27;;;;;;;;;;;;;;;;4834:34;;4725:151;;;;:::o;19648:93::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19728:5:::1;19714:11;;:19;;;;;;;;;;;;;;;;;;19648:93:::0;:::o;13819:18::-;;;;;;;;;;;;;:::o;20714:134::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20835:5:::1;20806:16;:26;20823:8;20806:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20714:134:::0;;:::o;12581:192::-;12400:12;:10;:12::i;:::-;12389:23;;:7;:5;:7::i;:::-;:23;;;12381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12690:1:::1;12670:22;;:8;:22;;;;12662:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12746:19;12756:8;12746:9;:19::i;:::-;12581:192:::0;:::o;14644:37::-;;;;;;;;;;;;;;;;;;;:::o;13791:21::-;;;;;;;;;;;;;:::o;547:98::-;600:7;627:10;620:17;;547:98;:::o;10612:347::-;10731:1;10714:19;;:5;:19;;;;10706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10812:1;10793:21;;:7;:21;;;;10785:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10897:6;10867:11;:18;10879:5;10867:18;;;;;;;;;;;;;;;:27;10886:7;10867:27;;;;;;;;;;;;;;;:36;;;;10935:7;10919:32;;10928:5;10919:32;;;10944:6;10919:32;;;;;;:::i;:::-;;;;;;;;10612:347;;;:::o;15640:1721::-;15770:1;15761:6;:10;15753:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15837:5;:13;15843:6;15837:13;;;;;;;;;;;;;;;;;;;;;;;;;15836:14;:35;;;;;15855:5;:16;15861:9;15855:16;;;;;;;;;;;;;;;;;;;;;;;;;15854:17;15836:35;15828:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15918:20;15931:6;15918:12;:20::i;:::-;15917:21;:49;;;;;15943:23;15956:9;15943:12;:23::i;:::-;15942:24;15917:49;15913:131;;;15988:14;:12;:14::i;:::-;15987:15;15979:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15913:131;16058:11;16085:4;;;;;;;;;;;16072:17;;:9;:17;;;16058:31;;16104:21;16118:6;16104:13;:21::i;:::-;16151:16;:24;16168:6;16151:24;;;;;;;;;;;;;;;;;;;;;;;;;16150:25;:57;;;;;16180:16;:27;16197:9;16180:27;;;;;;;;;;;;;;;;;;;;;;;;;16179:28;16150:57;:70;;;;;16212:8;;;;;;;;;;;16211:9;16150:70;16147:528;;;16268:12;16255:10;;16239:13;;:26;;;;:::i;:::-;:41;16236:183;;;16316:4;;;;;;;;;;;16303:17;;:9;:17;;;16300:45;;16341:4;16322:5;:16;16328:9;16322:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16300:45;16377:4;;;;;;;;;;;16367:14;;:6;:14;;;16364:39;;16399:4;16383:5;:13;16389:6;16383:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16364:39;16236:183;16451:11;;16441:6;:21;;16433:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16527:4;;;;;;;;;;;16514:17;;:9;:17;;;16511:150;;16592:15;;16582:6;16559:20;16569:9;16559;:20::i;:::-;:29;;;;:::i;:::-;:48;;16551:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16511:150;16147:528;16691:11;16791:8;;;;;;;;;;;:36;;;;16803:16;:24;16820:6;16803:24;;;;;;;;;;;;;;;;;;;;;;;;;16791:36;:67;;;;16831:16;:27;16848:9;16831:27;;;;;;;;;;;;;;;;;;;;;;;;;16791:67;16787:250;;;16866:1;16860:7;;16787:250;;;16941:4;;;;;;;;;;;16928:17;;:9;:17;;;16925:100;;;16975:3;16962:10;;16953:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16947:31;;16925:100;;;17022:3;17013:6;;17004;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16998:27;;16925:100;16787:250;17154:11;;;;;;;;;;;:24;;;;;17170:8;;;;;;;;;;;17169:9;17154:24;:42;;;;;17192:4;;;;;;;;;;;17182:14;;:6;:14;;;;17154:42;:53;;;;;17206:1;17200:3;:7;17154:53;17150:72;;;17209:13;:11;:13::i;:::-;17150:72;17236:48;17252:6;17260:9;17280:3;17271:6;:12;;;;:::i;:::-;17236:15;:48::i;:::-;17304:1;17298:3;:7;17295:55;;;17307:43;17323:6;17339:4;17346:3;17307:15;:43::i;:::-;17295:55;15728:1633;;15640:1721;;;:::o;18729:403::-;18795:21;18833:1;18819:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18795:40;;18864:4;18846;18851:1;18846:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18890:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18880:4;18885:1;18880:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18917:53;18934:4;18949:6;;;;;;;;;;;18958:11;18917:8;:53::i;:::-;19010:6;;;;;;;;;;;:57;;;19068:11;19081:1;19084:4;19098;19105:15;19010:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18784:348;18729:403;:::o;11693:318::-;11808:6;11783:21;:31;;11775:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11863:12;11881:9;:14;;11903:6;11881:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11862:52;;;11933:7;11925:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11764:247;11693:318;;:::o;12782:173::-;12838:16;12857:6;;;;;;;;;;;12838:25;;12883:8;12874:6;;:17;;;;;;;;;;;;;;;;;;12938:8;12907:40;;12928:8;12907:40;;;;;;;;;;;;12827:128;12782:173;:::o;19991:152::-;20052:4;20124:10;20103:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;;:::i;:::-;20077:4;;;;;;;;;;;:14;;;20092:6;20077:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;20070:64;;19991:152;;;:::o;21371:126::-;21417:4;21480:8;;21458:19;;:30;;;;:::i;:::-;21442:12;:46;;21435:53;;21371:126;:::o;21155:209::-;21216:21;;;;;;;;;;;21215:22;:32;;;;;21241:6;21215:32;21211:145;;;21289:4;21265:21;;:28;;;;;;;;;;;;;;;;;;21331:12;21309:19;:34;;;;21211:145;21155:209;:::o;17370:1351::-;14898:8;;;;;;;;;;;14893:104;;14934:4;14923:8;;:15;;;;;;;;;;;;;;;;;;17419:23:::1;17445:24;17463:4;17445:9;:24::i;:::-;17419:50;;17503:13;;17484:15;:32;17480:1234;;17591:19;17626:1;17613:10;;:14;;;;:::i;:::-;17591:36;;17642:32;17717:11;17695:9;:19;;;17677:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17642:86;;17743:14;17778:24;17760:15;:42;;;;:::i;:::-;17743:59;;17820:23;17846:21;17820:47;;17885:24;17902:6;17885:16;:24::i;:::-;17927:20;17974:15;17950:21;:39;;;;:::i;:::-;17927:62;;18004:19;18055:9;:19;;;18041:11;:33;;;;:::i;:::-;18025:12;:50;;;;:::i;:::-;18004:71;;18090:29;18136:9;:19;;;18122:11;:33;;;;:::i;:::-;18090:65;;18200:1;18176:21;:25;18173:170;;;18266:61;18279:24;18305:21;18266:12;:61::i;:::-;18173:170;18360:20;18401:9;:19;;;18397:1;18383:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18360:60;;18453:1;18438:12;:16;18435:103;;;18474:48;18509:12;18482:15;;;;;;;;;;;18474:34;;;;:48;;;;:::i;:::-;18435:103;18555:14;18590:9;:13;;;18586:1;18572:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18555:48;;18630:1;18621:6;:10;18618:85;;;18651:36;18680:6;18659:9;;;;;;;;;;;18651:28;;;;:36;;;;:::i;:::-;18618:85;17518:1196;;;;;;;;;17480:1234;17408:1313;14980:5:::0;14969:8;;:16;;;;;;;;;;;;;;;;;;14893:104;17370:1351::o;8101:610::-;8225:1;8207:20;;:6;:20;;;;8199:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8309:1;8288:23;;:9;:23;;;;8280:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8368:47;8389:6;8397:9;8408:6;8368:20;:47::i;:::-;8429:21;8453:9;:17;8463:6;8453:17;;;;;;;;;;;;;;;;8429:41;;8506:6;8489:13;:23;;8481:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8602:6;8586:13;:22;;;;:::i;:::-;8566:9;:17;8576:6;8566:17;;;;;;;;;;;;;;;:42;;;;8643:6;8619:9;:20;8629:9;8619:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8685:9;8668:35;;8677:6;8668:35;;;8696:6;8668:35;;;;;;:::i;:::-;;;;;;;;8188:523;8101:610;;;:::o;19141:498::-;19289:53;19306:4;19321:6;;;;;;;;;;;19330:11;19289:8;:53::i;:::-;19386:6;;;;;;;;;;;:22;;;19416:9;19449:4;19469:11;19495:1;19538;19581:9;;;;;;;;;;;19605:15;19386:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19141:498;;:::o;11571:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:::-;4883:6;4891;4899;4948:2;4936:9;4927:7;4923:23;4919:32;4916:119;;;4954:79;;:::i;:::-;4916:119;5074:1;5099:53;5144:7;5135:6;5124:9;5120:22;5099:53;:::i;:::-;5089:63;;5045:117;5201:2;5227:53;5272:7;5263:6;5252:9;5248:22;5227:53;:::i;:::-;5217:63;;5172:118;5329:2;5355:53;5400:7;5391:6;5380:9;5376:22;5355:53;:::i;:::-;5345:63;;5300:118;4806:619;;;;;:::o;5431:86::-;5466:7;5506:4;5499:5;5495:16;5484:27;;5431:86;;;:::o;5523:112::-;5606:22;5622:5;5606:22;:::i;:::-;5601:3;5594:35;5523:112;;:::o;5641:214::-;5730:4;5768:2;5757:9;5753:18;5745:26;;5781:67;5845:1;5834:9;5830:17;5821:6;5781:67;:::i;:::-;5641:214;;;;:::o;5861:111::-;5913:7;5942:24;5960:5;5942:24;:::i;:::-;5931:35;;5861:111;;;:::o;5978:152::-;6066:39;6099:5;6066:39;:::i;:::-;6059:5;6056:50;6046:78;;6120:1;6117;6110:12;6046:78;5978:152;:::o;6136:169::-;6197:5;6235:6;6222:20;6213:29;;6251:48;6293:5;6251:48;:::i;:::-;6136:169;;;;:::o;6311:504::-;6394:6;6402;6451:2;6439:9;6430:7;6426:23;6422:32;6419:119;;;6457:79;;:::i;:::-;6419:119;6577:1;6602:68;6662:7;6653:6;6642:9;6638:22;6602:68;:::i;:::-;6592:78;;6548:132;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6311:504;;;;;:::o;6821:442::-;6970:4;7008:2;6997:9;6993:18;6985:26;;7021:71;7089:1;7078:9;7074:17;7065:6;7021:71;:::i;:::-;7102:72;7170:2;7159:9;7155:18;7146:6;7102:72;:::i;:::-;7184;7252:2;7241:9;7237:18;7228:6;7184:72;:::i;:::-;6821:442;;;;;;:::o;7269:118::-;7356:24;7374:5;7356:24;:::i;:::-;7351:3;7344:37;7269:118;;:::o;7393:222::-;7486:4;7524:2;7513:9;7509:18;7501:26;;7537:71;7605:1;7594:9;7590:17;7581:6;7537:71;:::i;:::-;7393:222;;;;:::o;7621:329::-;7680:6;7729:2;7717:9;7708:7;7704:23;7700:32;7697:119;;;7735:79;;:::i;:::-;7697:119;7855:1;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7826:117;7621:329;;;;:::o;7956:117::-;8065:1;8062;8055:12;8079:180;8127:77;8124:1;8117:88;8224:4;8221:1;8214:15;8248:4;8245:1;8238:15;8265:281;8348:27;8370:4;8348:27;:::i;:::-;8340:6;8336:40;8478:6;8466:10;8463:22;8442:18;8430:10;8427:34;8424:62;8421:88;;;8489:18;;:::i;:::-;8421:88;8529:10;8525:2;8518:22;8308:238;8265:281;;:::o;8552:129::-;8586:6;8613:20;;:::i;:::-;8603:30;;8642:33;8670:4;8662:6;8642:33;:::i;:::-;8552:129;;;:::o;8687:311::-;8764:4;8854:18;8846:6;8843:30;8840:56;;;8876:18;;:::i;:::-;8840:56;8926:4;8918:6;8914:17;8906:25;;8986:4;8980;8976:15;8968:23;;8687:311;;;:::o;9004:117::-;9113:1;9110;9103:12;9144:710;9240:5;9265:81;9281:64;9338:6;9281:64;:::i;:::-;9265:81;:::i;:::-;9256:90;;9366:5;9395:6;9388:5;9381:21;9429:4;9422:5;9418:16;9411:23;;9482:4;9474:6;9470:17;9462:6;9458:30;9511:3;9503:6;9500:15;9497:122;;;9530:79;;:::i;:::-;9497:122;9645:6;9628:220;9662:6;9657:3;9654:15;9628:220;;;9737:3;9766:37;9799:3;9787:10;9766:37;:::i;:::-;9761:3;9754:50;9833:4;9828:3;9824:14;9817:21;;9704:144;9688:4;9683:3;9679:14;9672:21;;9628:220;;;9632:21;9246:608;;9144:710;;;;;:::o;9877:370::-;9948:5;9997:3;9990:4;9982:6;9978:17;9974:27;9964:122;;10005:79;;:::i;:::-;9964:122;10122:6;10109:20;10147:94;10237:3;10229:6;10222:4;10214:6;10210:17;10147:94;:::i;:::-;10138:103;;9954:293;9877:370;;;;:::o;10253:539::-;10337:6;10386:2;10374:9;10365:7;10361:23;10357:32;10354:119;;;10392:79;;:::i;:::-;10354:119;10540:1;10529:9;10525:17;10512:31;10570:18;10562:6;10559:30;10556:117;;;10592:79;;:::i;:::-;10556:117;10697:78;10767:7;10758:6;10747:9;10743:22;10697:78;:::i;:::-;10687:88;;10483:302;10253:539;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:60::-;11896:3;11917:5;11910:12;;11868:60;;;:::o;11934:142::-;11984:9;12017:53;12035:34;12044:24;12062:5;12044:24;:::i;:::-;12035:34;:::i;:::-;12017:53;:::i;:::-;12004:66;;11934:142;;;:::o;12082:126::-;12132:9;12165:37;12196:5;12165:37;:::i;:::-;12152:50;;12082:126;;;:::o;12214:139::-;12277:9;12310:37;12341:5;12310:37;:::i;:::-;12297:50;;12214:139;;;:::o;12359:157::-;12459:50;12503:5;12459:50;:::i;:::-;12454:3;12447:63;12359:157;;:::o;12522:248::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12679:84;12760:1;12749:9;12745:17;12736:6;12679:84;:::i;:::-;12522:248;;;;:::o;12776:468::-;12841:6;12849;12898:2;12886:9;12877:7;12873:23;12869:32;12866:119;;;12904:79;;:::i;:::-;12866:119;13024:1;13049:53;13094:7;13085:6;13074:9;13070:22;13049:53;:::i;:::-;13039:63;;12995:117;13151:2;13177:50;13219:7;13210:6;13199:9;13195:22;13177:50;:::i;:::-;13167:60;;13122:115;12776:468;;;;;:::o;13250:141::-;13315:9;13348:37;13379:5;13348:37;:::i;:::-;13335:50;;13250:141;;;:::o;13397:161::-;13499:52;13545:5;13499:52;:::i;:::-;13494:3;13487:65;13397:161;;:::o;13564:252::-;13672:4;13710:2;13699:9;13695:18;13687:26;;13723:86;13806:1;13795:9;13791:17;13782:6;13723:86;:::i;:::-;13564:252;;;;:::o;13822:180::-;13870:77;13867:1;13860:88;13967:4;13964:1;13957:15;13991:4;13988:1;13981:15;14008:320;14052:6;14089:1;14083:4;14079:12;14069:22;;14136:1;14130:4;14126:12;14157:18;14147:81;;14213:4;14205:6;14201:17;14191:27;;14147:81;14275:2;14267:6;14264:14;14244:18;14241:38;14238:84;;;14294:18;;:::i;:::-;14238:84;14059:269;14008:320;;;:::o;14334:182::-;14474:34;14470:1;14462:6;14458:14;14451:58;14334:182;:::o;14522:366::-;14664:3;14685:67;14749:2;14744:3;14685:67;:::i;:::-;14678:74;;14761:93;14850:3;14761:93;:::i;:::-;14879:2;14874:3;14870:12;14863:19;;14522:366;;;:::o;14894:419::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15147:9;15141:4;15137:20;15133:1;15122:9;15118:17;15111:47;15175:131;15301:4;15175:131;:::i;:::-;15167:139;;14894:419;;;:::o;15319:227::-;15459:34;15455:1;15447:6;15443:14;15436:58;15528:10;15523:2;15515:6;15511:15;15504:35;15319:227;:::o;15552:366::-;15694:3;15715:67;15779:2;15774:3;15715:67;:::i;:::-;15708:74;;15791:93;15880:3;15791:93;:::i;:::-;15909:2;15904:3;15900:12;15893:19;;15552:366;;;:::o;15924:419::-;16090:4;16128:2;16117:9;16113:18;16105:26;;16177:9;16171:4;16167:20;16163:1;16152:9;16148:17;16141:47;16205:131;16331:4;16205:131;:::i;:::-;16197:139;;15924:419;;;:::o;16349:180::-;16397:77;16394:1;16387:88;16494:4;16491:1;16484:15;16518:4;16515:1;16508:15;16535:191;16575:4;16595:20;16613:1;16595:20;:::i;:::-;16590:25;;16629:20;16647:1;16629:20;:::i;:::-;16624:25;;16668:1;16665;16662:8;16659:34;;;16673:18;;:::i;:::-;16659:34;16718:1;16715;16711:9;16703:17;;16535:191;;;;:::o;16732:305::-;16772:3;16791:20;16809:1;16791:20;:::i;:::-;16786:25;;16825:20;16843:1;16825:20;:::i;:::-;16820:25;;16979:1;16911:66;16907:74;16904:1;16901:81;16898:107;;;16985:18;;:::i;:::-;16898:107;17029:1;17026;17022:9;17015:16;;16732:305;;;;:::o;17043:348::-;17083:7;17106:20;17124:1;17106:20;:::i;:::-;17101:25;;17140:20;17158:1;17140:20;:::i;:::-;17135:25;;17328:1;17260:66;17256:74;17253:1;17250:81;17245:1;17238:9;17231:17;17227:105;17224:131;;;17335:18;;:::i;:::-;17224:131;17383:1;17380;17376:9;17365:20;;17043:348;;;;:::o;17397:180::-;17445:77;17442:1;17435:88;17542:4;17539:1;17532:15;17566:4;17563:1;17556:15;17583:185;17623:1;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17674:20;17692:1;17674:20;:::i;:::-;17669:25;;17713:1;17703:35;;17718:18;;:::i;:::-;17703:35;17760:1;17757;17753:9;17748:14;;17583:185;;;;:::o;17774:332::-;17895:4;17933:2;17922:9;17918:18;17910:26;;17946:71;18014:1;18003:9;17999:17;17990:6;17946:71;:::i;:::-;18027:72;18095:2;18084:9;18080:18;18071:6;18027:72;:::i;:::-;17774:332;;;;;:::o;18112:137::-;18166:5;18197:6;18191:13;18182:22;;18213:30;18237:5;18213:30;:::i;:::-;18112:137;;;;:::o;18255:345::-;18322:6;18371:2;18359:9;18350:7;18346:23;18342:32;18339:119;;;18377:79;;:::i;:::-;18339:119;18497:1;18522:61;18575:7;18566:6;18555:9;18551:22;18522:61;:::i;:::-;18512:71;;18468:125;18255:345;;;;:::o;18606:224::-;18746:34;18742:1;18734:6;18730:14;18723:58;18815:7;18810:2;18802:6;18798:15;18791:32;18606:224;:::o;18836:366::-;18978:3;18999:67;19063:2;19058:3;18999:67;:::i;:::-;18992:74;;19075:93;19164:3;19075:93;:::i;:::-;19193:2;19188:3;19184:12;19177:19;;18836:366;;;:::o;19208:419::-;19374:4;19412:2;19401:9;19397:18;19389:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19489:131;19615:4;19489:131;:::i;:::-;19481:139;;19208:419;;;:::o;19633:180::-;19681:77;19678:1;19671:88;19778:4;19775:1;19768:15;19802:4;19799:1;19792:15;19819:233;19858:3;19881:24;19899:5;19881:24;:::i;:::-;19872:33;;19927:66;19920:5;19917:77;19914:103;;;19997:18;;:::i;:::-;19914:103;20044:1;20037:5;20033:13;20026:20;;19819:233;;;:::o;20058:225::-;20198:34;20194:1;20186:6;20182:14;20175:58;20267:8;20262:2;20254:6;20250:15;20243:33;20058:225;:::o;20289:366::-;20431:3;20452:67;20516:2;20511:3;20452:67;:::i;:::-;20445:74;;20528:93;20617:3;20528:93;:::i;:::-;20646:2;20641:3;20637:12;20630:19;;20289:366;;;:::o;20661:419::-;20827:4;20865:2;20854:9;20850:18;20842:26;;20914:9;20908:4;20904:20;20900:1;20889:9;20885:17;20878:47;20942:131;21068:4;20942:131;:::i;:::-;20934:139;;20661:419;;;:::o;21086:223::-;21226:34;21222:1;21214:6;21210:14;21203:58;21295:6;21290:2;21282:6;21278:15;21271:31;21086:223;:::o;21315:366::-;21457:3;21478:67;21542:2;21537:3;21478:67;:::i;:::-;21471:74;;21554:93;21643:3;21554:93;:::i;:::-;21672:2;21667:3;21663:12;21656:19;;21315:366;;;:::o;21687:419::-;21853:4;21891:2;21880:9;21876:18;21868:26;;21940:9;21934:4;21930:20;21926:1;21915:9;21911:17;21904:47;21968:131;22094:4;21968:131;:::i;:::-;21960:139;;21687:419;;;:::o;22112:221::-;22252:34;22248:1;22240:6;22236:14;22229:58;22321:4;22316:2;22308:6;22304:15;22297:29;22112:221;:::o;22339:366::-;22481:3;22502:67;22566:2;22561:3;22502:67;:::i;:::-;22495:74;;22578:93;22667:3;22578:93;:::i;:::-;22696:2;22691:3;22687:12;22680:19;;22339:366;;;:::o;22711:419::-;22877:4;22915:2;22904:9;22900:18;22892:26;;22964:9;22958:4;22954:20;22950:1;22939:9;22935:17;22928:47;22992:131;23118:4;22992:131;:::i;:::-;22984:139;;22711:419;;;:::o;23136:228::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:11;23340:2;23332:6;23328:15;23321:36;23136:228;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o;24167:175::-;24307:27;24303:1;24295:6;24291:14;24284:51;24167:175;:::o;24348:366::-;24490:3;24511:67;24575:2;24570:3;24511:67;:::i;:::-;24504:74;;24587:93;24676:3;24587:93;:::i;:::-;24705:2;24700:3;24696:12;24689:19;;24348:366;;;:::o;24720:419::-;24886:4;24924:2;24913:9;24909:18;24901:26;;24973:9;24967:4;24963:20;24959:1;24948:9;24944:17;24937:47;25001:131;25127:4;25001:131;:::i;:::-;24993:139;;24720:419;;;:::o;25145:174::-;25285:26;25281:1;25273:6;25269:14;25262:50;25145:174;:::o;25325:366::-;25467:3;25488:67;25552:2;25547:3;25488:67;:::i;:::-;25481:74;;25564:93;25653:3;25564:93;:::i;:::-;25682:2;25677:3;25673:12;25666:19;;25325:366;;;:::o;25697:419::-;25863:4;25901:2;25890:9;25886:18;25878:26;;25950:9;25944:4;25940:20;25936:1;25925:9;25921:17;25914:47;25978:131;26104:4;25978:131;:::i;:::-;25970:139;;25697:419;;;:::o;26122:179::-;26262:31;26258:1;26250:6;26246:14;26239:55;26122:179;:::o;26307:366::-;26449:3;26470:67;26534:2;26529:3;26470:67;:::i;:::-;26463:74;;26546:93;26635:3;26546:93;:::i;:::-;26664:2;26659:3;26655:12;26648:19;;26307:366;;;:::o;26679:419::-;26845:4;26883:2;26872:9;26868:18;26860:26;;26932:9;26926:4;26922:20;26918:1;26907:9;26903:17;26896:47;26960:131;27086:4;26960:131;:::i;:::-;26952:139;;26679:419;;;:::o;27104:220::-;27244:34;27240:1;27232:6;27228:14;27221:58;27313:3;27308:2;27300:6;27296:15;27289:28;27104:220;:::o;27330:366::-;27472:3;27493:67;27557:2;27552:3;27493:67;:::i;:::-;27486:74;;27569:93;27658:3;27569:93;:::i;:::-;27687:2;27682:3;27678:12;27671:19;;27330:366;;;:::o;27702:419::-;27868:4;27906:2;27895:9;27891:18;27883:26;;27955:9;27949:4;27945:20;27941:1;27930:9;27926:17;27919:47;27983:131;28109:4;27983:131;:::i;:::-;27975:139;;27702:419;;;:::o;28127:143::-;28184:5;28215:6;28209:13;28200:22;;28231:33;28258:5;28231:33;:::i;:::-;28127:143;;;;:::o;28276:351::-;28346:6;28395:2;28383:9;28374:7;28370:23;28366:32;28363:119;;;28401:79;;:::i;:::-;28363:119;28521:1;28546:64;28602:7;28593:6;28582:9;28578:22;28546:64;:::i;:::-;28536:74;;28492:128;28276:351;;;;:::o;28633:85::-;28678:7;28707:5;28696:16;;28633:85;;;:::o;28724:158::-;28782:9;28815:61;28833:42;28842:32;28868:5;28842:32;:::i;:::-;28833:42;:::i;:::-;28815:61;:::i;:::-;28802:74;;28724:158;;;:::o;28888:147::-;28983:45;29022:5;28983:45;:::i;:::-;28978:3;28971:58;28888:147;;:::o;29041:114::-;29108:6;29142:5;29136:12;29126:22;;29041:114;;;:::o;29161:184::-;29260:11;29294:6;29289:3;29282:19;29334:4;29329:3;29325:14;29310:29;;29161:184;;;;:::o;29351:132::-;29418:4;29441:3;29433:11;;29471:4;29466:3;29462:14;29454:22;;29351:132;;;:::o;29489:108::-;29566:24;29584:5;29566:24;:::i;:::-;29561:3;29554:37;29489:108;;:::o;29603:179::-;29672:10;29693:46;29735:3;29727:6;29693:46;:::i;:::-;29771:4;29766:3;29762:14;29748:28;;29603:179;;;;:::o;29788:113::-;29858:4;29890;29885:3;29881:14;29873:22;;29788:113;;;:::o;29937:732::-;30056:3;30085:54;30133:5;30085:54;:::i;:::-;30155:86;30234:6;30229:3;30155:86;:::i;:::-;30148:93;;30265:56;30315:5;30265:56;:::i;:::-;30344:7;30375:1;30360:284;30385:6;30382:1;30379:13;30360:284;;;30461:6;30455:13;30488:63;30547:3;30532:13;30488:63;:::i;:::-;30481:70;;30574:60;30627:6;30574:60;:::i;:::-;30564:70;;30420:224;30407:1;30404;30400:9;30395:14;;30360:284;;;30364:14;30660:3;30653:10;;30061:608;;;29937:732;;;;:::o;30675:831::-;30938:4;30976:3;30965:9;30961:19;30953:27;;30990:71;31058:1;31047:9;31043:17;31034:6;30990:71;:::i;:::-;31071:80;31147:2;31136:9;31132:18;31123:6;31071:80;:::i;:::-;31198:9;31192:4;31188:20;31183:2;31172:9;31168:18;31161:48;31226:108;31329:4;31320:6;31226:108;:::i;:::-;31218:116;;31344:72;31412:2;31401:9;31397:18;31388:6;31344:72;:::i;:::-;31426:73;31494:3;31483:9;31479:19;31470:6;31426:73;:::i;:::-;30675:831;;;;;;;;:::o;31512:179::-;31652:31;31648:1;31640:6;31636:14;31629:55;31512:179;:::o;31697:366::-;31839:3;31860:67;31924:2;31919:3;31860:67;:::i;:::-;31853:74;;31936:93;32025:3;31936:93;:::i;:::-;32054:2;32049:3;32045:12;32038:19;;31697:366;;;:::o;32069:419::-;32235:4;32273:2;32262:9;32258:18;32250:26;;32322:9;32316:4;32312:20;32308:1;32297:9;32293:17;32286:47;32350:131;32476:4;32350:131;:::i;:::-;32342:139;;32069:419;;;:::o;32494:147::-;32595:11;32632:3;32617:18;;32494:147;;;;:::o;32647:114::-;;:::o;32767:398::-;32926:3;32947:83;33028:1;33023:3;32947:83;:::i;:::-;32940:90;;33039:93;33128:3;33039:93;:::i;:::-;33157:1;33152:3;33148:11;33141:18;;32767:398;;;:::o;33171:379::-;33355:3;33377:147;33520:3;33377:147;:::i;:::-;33370:154;;33541:3;33534:10;;33171:379;;;:::o;33556:245::-;33696:34;33692:1;33684:6;33680:14;33673:58;33765:28;33760:2;33752:6;33748:15;33741:53;33556:245;:::o;33807:366::-;33949:3;33970:67;34034:2;34029:3;33970:67;:::i;:::-;33963:74;;34046:93;34135:3;34046:93;:::i;:::-;34164:2;34159:3;34155:12;34148:19;;33807:366;;;:::o;34179:419::-;34345:4;34383:2;34372:9;34368:18;34360:26;;34432:9;34426:4;34422:20;34418:1;34407:9;34403:17;34396:47;34460:131;34586:4;34460:131;:::i;:::-;34452:139;;34179:419;;;:::o;34604:143::-;34661:5;34692:6;34686:13;34677:22;;34708:33;34735:5;34708:33;:::i;:::-;34604:143;;;;:::o;34753:351::-;34823:6;34872:2;34860:9;34851:7;34847:23;34843:32;34840:119;;;34878:79;;:::i;:::-;34840:119;34998:1;35023:64;35079:7;35070:6;35059:9;35055:22;35023:64;:::i;:::-;35013:74;;34969:128;34753:351;;;;:::o;35110:224::-;35250:34;35246:1;35238:6;35234:14;35227:58;35319:7;35314:2;35306:6;35302:15;35295:32;35110:224;:::o;35340:366::-;35482:3;35503:67;35567:2;35562:3;35503:67;:::i;:::-;35496:74;;35579:93;35668:3;35579:93;:::i;:::-;35697:2;35692:3;35688:12;35681:19;;35340:366;;;:::o;35712:419::-;35878:4;35916:2;35905:9;35901:18;35893:26;;35965:9;35959:4;35955:20;35951:1;35940:9;35936:17;35929:47;35993:131;36119:4;35993:131;:::i;:::-;35985:139;;35712:419;;;:::o;36137:222::-;36277:34;36273:1;36265:6;36261:14;36254:58;36346:5;36341:2;36333:6;36329:15;36322:30;36137:222;:::o;36365:366::-;36507:3;36528:67;36592:2;36587:3;36528:67;:::i;:::-;36521:74;;36604:93;36693:3;36604:93;:::i;:::-;36722:2;36717:3;36713:12;36706:19;;36365:366;;;:::o;36737:419::-;36903:4;36941:2;36930:9;36926:18;36918:26;;36990:9;36984:4;36980:20;36976:1;36965:9;36961:17;36954:47;37018:131;37144:4;37018:131;:::i;:::-;37010:139;;36737:419;;;:::o;37162:225::-;37302:34;37298:1;37290:6;37286:14;37279:58;37371:8;37366:2;37358:6;37354:15;37347:33;37162:225;:::o;37393:366::-;37535:3;37556:67;37620:2;37615:3;37556:67;:::i;:::-;37549:74;;37632:93;37721:3;37632:93;:::i;:::-;37750:2;37745:3;37741:12;37734:19;;37393:366;;;:::o;37765:419::-;37931:4;37969:2;37958:9;37954:18;37946:26;;38018:9;38012:4;38008:20;38004:1;37993:9;37989:17;37982:47;38046:131;38172:4;38046:131;:::i;:::-;38038:139;;37765:419;;;:::o;38190:807::-;38439:4;38477:3;38466:9;38462:19;38454:27;;38491:71;38559:1;38548:9;38544:17;38535:6;38491:71;:::i;:::-;38572:72;38640:2;38629:9;38625:18;38616:6;38572:72;:::i;:::-;38654:80;38730:2;38719:9;38715:18;38706:6;38654:80;:::i;:::-;38744;38820:2;38809:9;38805:18;38796:6;38744:80;:::i;:::-;38834:73;38902:3;38891:9;38887:19;38878:6;38834:73;:::i;:::-;38917;38985:3;38974:9;38970:19;38961:6;38917:73;:::i;:::-;38190:807;;;;;;;;;:::o;39003:663::-;39091:6;39099;39107;39156:2;39144:9;39135:7;39131:23;39127:32;39124:119;;;39162:79;;:::i;:::-;39124:119;39282:1;39307:64;39363:7;39354:6;39343:9;39339:22;39307:64;:::i;:::-;39297:74;;39253:128;39420:2;39446:64;39502:7;39493:6;39482:9;39478:22;39446:64;:::i;:::-;39436:74;;39391:129;39559:2;39585:64;39641:7;39632:6;39621:9;39617:22;39585:64;:::i;:::-;39575:74;;39530:129;39003:663;;;;;:::o
Swarm Source
ipfs://8d75f86ce6d90c60b00bd2c4bc41100519d07cb0c033384f34ed0fc509c909b7
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.