ERC-20
Overview
Max Total Supply
1,000,000 GIVE
Holders
2,581
Transfers
-
6 ( -33.33%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
GiveCrypto
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2025-10-25
*/
/**
https://www.coinbase.com/es-es/blog/winding-down-givecrypto
Mission: Fulfill Brian Armstrong’s original
vision of using crypto to give directly to
people in need, and finish what he started.
Inspired by the original GiveCrypto initiative
and the spirit of Giggle Fund, Give Crypto is a
memecoin dedicated to reviving the idea of global
generosity through blockchain. Brian couldn’t make
it last, but we can carry the torch.
Every trade, meme, and moment in this community helps
fund real-world impact — with proceeds donated directly
to the GiveCrypto wallet.
We give because crypto can.
Give Crypto wallet (used to be ethereum)
https://etherscan.io/address/0xc7464dbca260a8faf033460622b23467df5aea42
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.11;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function factory() external view returns (address);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
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 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
uint256 currentAllowance = _allowances[sender][_msgSender()];
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
}
_transfer(sender, recipient, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
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");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
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");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
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);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_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 {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IUniswapV2Router01 {
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);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract GiveCrypto is ERC20, Ownable {
using SafeMath for uint256;
IUniswapV2Router02 public immutable uniswapV2Router;
address public immutable uniswapV2Pair;
mapping (address => bool) public isBot;
bool private _swapping;
uint256 private _launchTime;
address private devWallet;
uint256 public maxTransactionAmount;
uint256 public swapTokensAtAmount;
uint256 public maxWallet;
bool public limitsInEffect = true;
bool public tradingActive = false;
// Anti-bot and anti-whale mappings and variables
mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
bool public transferDelayEnabled = true;
uint256 public buyTotalFees;
uint256 public buyDevFee;
uint256 public sellTotalFees;
uint256 public sellDevFee;
uint256 public tokensForDev;
/******************/
// exlcude from fees and max transaction amount
mapping (address => bool) private _isExcludedFromFees;
mapping (address => bool) public _isExcludedMaxTransactionAmount;
// store addresses that a automatic market maker pairs. Any transfer *to* these addresses
// could be subject to a maximum transfer amount
mapping (address => bool) public automatedMarketMakerPairs;
event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
event devWalletUpdated(address indexed newWallet, address indexed oldWallet);
constructor() ERC20("GiveCrypto", "GIVE") {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
excludeFromMaxTransaction(address(_uniswapV2Router), true);
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
excludeFromMaxTransaction(address(uniswapV2Pair), true);
_setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
uint256 _buyDevFee = 5;
uint256 _sellDevFee = 5;
uint256 totalSupply = 1 * 1e6 * 1e18;
maxTransactionAmount = totalSupply * 2 / 100; // 2% maxTransactionAmountTxn
maxWallet = totalSupply * 2 / 100; // 1% maxWallet
swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet
// Set Fees
buyDevFee = _buyDevFee;
buyTotalFees = buyDevFee;
sellDevFee = _sellDevFee;
sellTotalFees = sellDevFee;
// Set Fee Wallet
devWallet = address(0xc7464dbcA260A8faF033460622B23467Df5AEA42);
// exclude from paying fees or having max transaction amount
excludeFromFees(owner(), true);
excludeFromFees(address(this), true);
excludeFromFees(address(0xdead), true);
excludeFromMaxTransaction(owner(), true);
excludeFromMaxTransaction(address(this), true);
excludeFromMaxTransaction(address(0xdead), true);
/*
_mint is an internal function in ERC20.sol that is only called here,
and CANNOT be called ever again
*/
_mint(msg.sender, totalSupply);
}
receive() external payable {
}
// once enabled, can never be turned off
function enableTrading() external onlyOwner {
tradingActive = true;
_launchTime = block.timestamp.add(2);
}
// remove limits after token is stable
function removeLimits() external onlyOwner returns (bool) {
limitsInEffect = false;
return true;
}
// disable Transfer delay - cannot be reenabled
function disableTransferDelay() external onlyOwner returns (bool) {
transferDelayEnabled = false;
return true;
}
// change the minimum amount of tokens to sell from fees
function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {
require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply.");
swapTokensAtAmount = newAmount;
return true;
}
function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
require(newNum >= (totalSupply() * 1 / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
maxTransactionAmount = newNum * 1e18;
}
function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
require(newNum >= (totalSupply() * 5 / 1000)/1e18, "Cannot set maxWallet lower than 0.5%");
maxWallet = newNum * 1e18;
}
function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
_isExcludedMaxTransactionAmount[updAds] = isEx;
}
function updateBuyFees(uint256 _devFee) external onlyOwner {
buyDevFee = _devFee;
buyTotalFees = buyDevFee;
require(buyTotalFees <= 10, "Must keep fees at 10% or less");
}
function updateSellFees(uint256 _devFee) external onlyOwner {
sellDevFee = _devFee;
sellTotalFees = sellDevFee;
require(sellTotalFees <= 25, "Must keep fees at 15% or less");
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedFromFees[account] = excluded;
}
function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
_setAutomatedMarketMakerPair(pair, value);
}
// Variable Block - once enabled, can never be turned off
function enableTrading(uint256 Bblock) external onlyOwner {
tradingActive = true;
_launchTime = block.timestamp.add(Bblock);
}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
automatedMarketMakerPairs[pair] = value;
}
function updateDevWallet(address newWallet) external onlyOwner {
emit devWalletUpdated(newWallet, devWallet);
devWallet = newWallet;
}
function isExcludedFromFees(address account) public view returns(bool) {
return _isExcludedFromFees[account];
}
function addBots(address[] memory bots) public onlyOwner() {
for (uint i = 0; i < bots.length; i++) {
if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) {
isBot[bots[i]] = true;
}
}
}
function removeBots(address[] memory bots) public onlyOwner() {
for (uint i = 0; i < bots.length; i++) {
isBot[bots[i]] = false;
}
}
function _transfer(
address from,
address to,
uint256 amount
) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(!isBot[from], "Your address has been marked as a bot/sniper, you are unable to transfer or swap.");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
if (block.timestamp < _launchTime) isBot[to] = true;
if (limitsInEffect) {
if (
from != owner() &&
to != owner() &&
to != address(0) &&
to != address(0xdead) &&
!_swapping
) {
if (!tradingActive) {
require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
}
// at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
if (transferDelayEnabled){
if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed.");
_holderLastTransferTimestamp[tx.origin] = block.number;
}
}
// On buy
if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
}
// On sell
else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
}
else if (!_isExcludedMaxTransactionAmount[to]){
require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
}
}
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= swapTokensAtAmount;
if (
canSwap &&
!_swapping &&
!automatedMarketMakerPairs[from] &&
!_isExcludedFromFees[from] &&
!_isExcludedFromFees[to]
) {
_swapping = true;
swapBack();
_swapping = false;
}
bool takeFee = !_swapping;
// if any account belongs to _isExcludedFromFee account then remove the fee
if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false;
uint256 fees = 0;
// Only take fees on buys/sells, do not take on wallet transfers
if (takeFee) {
// On sell
if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
fees = amount.mul(sellTotalFees).div(100);
tokensForDev += fees * sellDevFee / sellTotalFees;
}
// on buy
else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
fees = amount.mul(buyTotalFees).div(100);
tokensForDev += fees * buyDevFee / buyTotalFees;
}
if (fees > 0) {
super._transfer(from, address(this), fees);
}
amount -= fees;
}
super._transfer(from, to, amount);
}
function _swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
owner(),
block.timestamp
);
}
function swapBack() private {
uint256 contractBalance = balanceOf(address(this));
uint256 totalTokensToSwap = tokensForDev;
bool success;
if(contractBalance == 0 || totalTokensToSwap == 0) {return;}
if(contractBalance > swapTokensAtAmount * 20){
contractBalance = swapTokensAtAmount * 20;
}
_swapTokensForEth(totalTokensToSwap);
uint256 ethBalance = address(this).balance;
tokensForDev = 0;
(success,) = address(devWallet).call{value: ethBalance}("");
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","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":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Bblock","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"removeBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c06040526001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600a81526020017f4769766543727970746f000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f47495645000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000999565b5080600490805190602001906200010092919062000999565b5050506200012362000117620004ef60201b60201c565b620004f760201b60201c565b6000734752ba5dbc23f44d87826276bf6fd6b1c372ad2490506200014f816001620005bd60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000ab3565b6040518363ffffffff1660e01b8152600401620002a292919062000af6565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a0516001620005bd60201b60201c565b6200034560a0516001620006a760201b60201c565b600060059050600060059050600069d3c21bcecceda10000009050606460028262000371919062000b5c565b6200037d919062000bec565b600a81905550606460028262000394919062000b5c565b620003a0919062000bec565b600c81905550612710600582620003b8919062000b5c565b620003c4919062000bec565b600b81905550826011819055506011546010819055508160138190555060135460128190555073c7464dbca260a8faf033460622b23467df5aea42600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000461620004536200070260201b60201c565b60016200072c60201b60201c565b620004743060016200072c60201b60201c565b6200048961dead60016200072c60201b60201c565b620004ab6200049d6200070260201b60201c565b6001620005bd60201b60201c565b620004be306001620005bd60201b60201c565b620004d361dead6001620005bd60201b60201c565b620004e533826200081660201b60201c565b5050505062000e09565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005cd620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005f36200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200064c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006439062000c85565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200073c620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007626200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b29062000c85565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008809062000cf7565b60405180910390fd5b6200089d600083836200098f60201b60201c565b8060026000828254620008b1919062000d19565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000908919062000d19565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096f919062000d87565b60405180910390a36200098b600083836200099460201b60201c565b5050565b505050565b505050565b828054620009a79062000dd3565b90600052602060002090601f016020900481019282620009cb576000855562000a17565b82601f10620009e657805160ff191683800117855562000a17565b8280016001018555821562000a17579182015b8281111562000a16578251825591602001919060010190620009f9565b5b50905062000a26919062000a2a565b5090565b5b8082111562000a4557600081600090555060010162000a2b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a7b8262000a4e565b9050919050565b62000a8d8162000a6e565b811462000a9957600080fd5b50565b60008151905062000aad8162000a82565b92915050565b60006020828403121562000acc5762000acb62000a49565b5b600062000adc8482850162000a9c565b91505092915050565b62000af08162000a6e565b82525050565b600060408201905062000b0d600083018562000ae5565b62000b1c602083018462000ae5565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b698262000b23565b915062000b768362000b23565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb25762000bb162000b2d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bf98262000b23565b915062000c068362000b23565b92508262000c195762000c1862000bbd565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000c6d60208362000c24565b915062000c7a8262000c35565b602082019050919050565b6000602082019050818103600083015262000ca08162000c5e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cdf601f8362000c24565b915062000cec8262000ca7565b602082019050919050565b6000602082019050818103600083015262000d128162000cd0565b9050919050565b600062000d268262000b23565b915062000d338362000b23565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d6b5762000d6a62000b2d565b5b828201905092915050565b62000d818162000b23565b82525050565b600060208201905062000d9e600083018462000d76565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000dec57607f821691505b6020821081141562000e035762000e0262000da4565b5b50919050565b60805160a051614d9962000e676000396000818161101e0152818161177c01528181611d43015261282d015260008181610bb101528181611db4015281816127d5015281816135bc0152818161369d01526136c40152614d996000f3fe6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220221ded80444378b5f6c8d08d432f25a4a744f575cf0defc0dc111710bd4a724664736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad2481565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f00000000000000000000000079783b105ffe3c297f9654699ea1a409600b7e3c81565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f00000000000000000000000079783b105ffe3c297f9654699ea1a409600b7e3c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f00000000000000000000000079783b105ffe3c297f9654699ea1a409600b7e3c73ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f00000000000000000000000079783b105ffe3c297f9654699ea1a409600b7e3c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24846121ba565b7f0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220221ded80444378b5f6c8d08d432f25a4a744f575cf0defc0dc111710bd4a724664736f6c634300080b0033
Deployed Bytecode Sourcemap
12447:12720:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3751:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4665:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13538:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12527:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4072:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18773:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16969:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4842:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3971:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12632:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12585;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12903:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18941:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13287:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19357:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4188:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11230:103;;;;;;;;;;;;;:::i;:::-;;17588:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16179:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17432:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18472:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15994:130;;;;;;;;;;;;;:::i;:::-;;11007:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3859:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18156:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13253:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13357:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13322:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5646:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4323:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13760:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12943:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18016:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17209:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13167:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12780:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16575:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19078:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13219:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4506:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12822:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16365:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17800:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11341:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12862:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3751:100;3805:13;3838:5;3831:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3751:100;:::o;4665:169::-;4748:4;4765:39;4774:12;:10;:12::i;:::-;4788:7;4797:6;4765:8;:39::i;:::-;4822:4;4815:11;;4665:169;;;;:::o;13538:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;12527:51::-;;;:::o;4072:108::-;4133:7;4160:12;;4153:19;;4072:108;:::o;18773:157::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18880:9:::1;;;;;;;;;;;18852:38;;18869:9;18852:38;;;;;;;;;;;;18913:9;18901;;:21;;;;;;;;;;;;;;;;;;18773:157:::0;:::o;16969:232::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17090:4:::1;17082;17078:1;17062:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;17061:33;;;;:::i;:::-;17051:6;:43;;17043:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;17189:4;17180:6;:13;;;;:::i;:::-;17157:20;:36;;;;16969:232:::0;:::o;4842:573::-;4982:4;4999:24;5026:11;:19;5038:6;5026:19;;;;;;;;;;;;;;;:33;5046:12;:10;:12::i;:::-;5026:33;;;;;;;;;;;;;;;;4999:60;;5094:17;5074:16;:37;5070:265;;5156:6;5136:16;:26;;5128:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5251:57;5260:6;5268:12;:10;:12::i;:::-;5301:6;5282:16;:25;5251:8;:57::i;:::-;5070:265;5347:36;5357:6;5365:9;5376:6;5347:9;:36::i;:::-;5403:4;5396:11;;;4842:573;;;;;:::o;3971:93::-;4029:5;4054:2;4047:9;;3971:93;:::o;5423:215::-;5511:4;5528:80;5537:12;:10;:12::i;:::-;5551:7;5597:10;5560:11;:25;5572:12;:10;:12::i;:::-;5560:25;;;;;;;;;;;;;;;:34;5586:7;5560:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5528:8;:80::i;:::-;5626:4;5619:11;;5423:215;;;;:::o;12632:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;12585:::-;;;:::o;12903:33::-;;;;;;;;;;;;;:::o;18941:125::-;19006:4;19030:19;:28;19050:7;19030:28;;;;;;;;;;;;;;;;;;;;;;;;;19023:35;;18941:125;;;:::o;13287:28::-;;;;:::o;19357:168::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19435:6:::1;19430:88;19451:4;:11;19447:1;:15;19430:88;;;19501:5;19484;:14;19490:4;19495:1;19490:7;;;;;;;;:::i;:::-;;;;;;;;19484:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;19464:3;;;;;:::i;:::-;;;;19430:88;;;;19357:168:::0;:::o;4188:127::-;4262:7;4289:9;:18;4299:7;4289:18;;;;;;;;;;;;;;;;4282:25;;4188:127;;;:::o;11230:103::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11295:30:::1;11322:1;11295:18;:30::i;:::-;11230:103::o:0;17588:203::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17670:7:::1;17658:9;:19;;;;17703:9;;17688:12;:24;;;;17747:2;17731:12;;:18;;17723:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;17588:203:::0;:::o;16179:121::-;16231:4;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16265:5:::1;16248:14;;:22;;;;;;;;;;;;;;;;;;16288:4;16281:11;;16179:121:::0;:::o;17432:144::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17564:4:::1;17522:31;:39;17554:6;17522:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17432:144:::0;;:::o;18472:149::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18557:4:::1;18541:13;;:20;;;;;;;;;;;;;;;;;;18586:27;18606:6;18586:15;:19;;:27;;;;:::i;:::-;18572:11;:41;;;;18472:149:::0;:::o;15994:130::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16065:4:::1;16049:13;;:20;;;;;;;;;;;;;;;;;;16094:22;16114:1;16094:15;:19;;:22;;;;:::i;:::-;16080:11;:36;;;;15994:130::o:0;11007:87::-;11053:7;11080:6;;;;;;;;;;;11073:13;;11007:87;:::o;3859:104::-;3915:13;3948:7;3941:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3859:104;:::o;18156:244::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18263:13:::1;18255:21;;:4;:21;;;;18247:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;18351:41;18380:4;18386:5;18351:28;:41::i;:::-;18156:244:::0;;:::o;13253:24::-;;;;:::o;13357:27::-;;;;:::o;13322:25::-;;;;:::o;5646:413::-;5739:4;5756:24;5783:11;:25;5795:12;:10;:12::i;:::-;5783:25;;;;;;;;;;;;;;;:34;5809:7;5783:34;;;;;;;;;;;;;;;;5756:61;;5856:15;5836:16;:35;;5828:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5949:67;5958:12;:10;:12::i;:::-;5972:7;6000:15;5981:16;:34;5949:8;:67::i;:::-;6047:4;6040:11;;;5646:413;;;;:::o;4323:175::-;4409:4;4426:42;4436:12;:10;:12::i;:::-;4450:9;4461:6;4426:9;:42::i;:::-;4486:4;4479:11;;4323:175;;;;:::o;13760:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12943:33::-;;;;;;;;;;;;;:::o;18016:132::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18132:8:::1;18101:19;:28;18121:7;18101:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18016:132:::0;;:::o;17209:211::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17331:4:::1;17325;17321:1;17305:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;17304:31;;;;:::i;:::-;17294:6;:41;;17286:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17408:4;17399:6;:13;;;;:::i;:::-;17387:9;:25;;;;17209:211:::0;:::o;13167:39::-;;;;;;;;;;;;;:::o;12780:35::-;;;;:::o;16575:382::-;16656:4;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16713:6:::1;16709:1;16693:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;16680:9;:39;;16672:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16828:4;16824:1;16808:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16795:9;:37;;16787:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16920:9;16899:18;:30;;;;16946:4;16939:11;;16575:382:::0;;;:::o;19078:267::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19153:6:::1;19148:190;19169:4;:11;19165:1;:15;19148:190;;;19217:13;19206:24;;:4;19211:1;19206:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;19253:15;19234:35;;:4;19239:1;19234:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;19206:63;19202:125;;;19307:4;19290:5;:14;19296:4;19301:1;19296:7;;;;;;;;:::i;:::-;;;;;;;;19290:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;19202:125;19182:3;;;;;:::i;:::-;;;;19148:190;;;;19078:267:::0;:::o;13219:27::-;;;;:::o;4506:151::-;4595:7;4622:11;:18;4634:5;4622:18;;;;;;;;;;;;;;;:27;4641:7;4622:27;;;;;;;;;;;;;;;;4615:34;;4506:151;;;;:::o;12822:33::-;;;;:::o;16365:135::-;16425:4;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16465:5:::1;16442:20;;:28;;;;;;;;;;;;;;;;;;16488:4;16481:11;;16365:135:::0;:::o;17800:208::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17884:7:::1;17871:10;:20;;;;17918:10;;17902:13;:26;;;;17964:2;17947:13;;:19;;17939:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17800:208:::0;:::o;11341:201::-;11153:12;:10;:12::i;:::-;11142:23;;:7;:5;:7::i;:::-;:23;;;11134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11450:1:::1;11430:22;;:8;:22;;;;11422:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11506:28;11525:8;11506:18;:28::i;:::-;11341:201:::0;:::o;12862:24::-;;;;:::o;845:98::-;898:7;925:10;918:17;;845:98;:::o;7814:380::-;7967:1;7950:19;;:5;:19;;;;7942:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8048:1;8029:21;;:7;:21;;;;8021:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8132:6;8102:11;:18;8114:5;8102:18;;;;;;;;;;;;;;;:27;8121:7;8102:27;;;;;;;;;;;;;;;:36;;;;8170:7;8154:32;;8163:5;8154:32;;;8179:6;8154:32;;;;;;:::i;:::-;;;;;;;;7814:380;;;:::o;19533:3910::-;19681:1;19665:18;;:4;:18;;;;19657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19758:1;19744:16;;:2;:16;;;;19736:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19820:5;:11;19826:4;19820:11;;;;;;;;;;;;;;;;;;;;;;;;;19819:12;19811:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19953:1;19943:6;:11;19939:93;;;19971:28;19987:4;19993:2;19997:1;19971:15;:28::i;:::-;20014:7;;19939:93;20074:11;;20056:15;:29;20052:51;;;20099:4;20087:5;:9;20093:2;20087:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;20052:51;20128:14;;;;;;;;;;;20124:1834;;;20189:7;:5;:7::i;:::-;20181:15;;:4;:15;;;;:49;;;;;20223:7;:5;:7::i;:::-;20217:13;;:2;:13;;;;20181:49;:86;;;;;20265:1;20251:16;;:2;:16;;;;20181:86;:128;;;;;20302:6;20288:21;;:2;:21;;;;20181:128;:159;;;;;20331:9;;;;;;;;;;;20330:10;20181:159;20159:1788;;;20380:13;;;;;;;;;;;20375:150;;20426:19;:25;20446:4;20426:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20455:19;:23;20475:2;20455:23;;;;;;;;;;;;;;;;;;;;;;;;;20426:52;20418:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20375:150;20683:20;;;;;;;;;;;20679:423;;;20737:7;:5;:7::i;:::-;20731:13;;:2;:13;;;;:47;;;;;20762:15;20748:30;;:2;:30;;;;20731:47;:79;;;;;20796:13;20782:28;;:2;:28;;;;20731:79;20727:356;;;20888:12;20846:28;:39;20875:9;20846:39;;;;;;;;;;;;;;;;:54;20838:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;21047:12;21005:28;:39;21034:9;21005:39;;;;;;;;;;;;;;;:54;;;;20727:356;20679:423;21170:25;:31;21196:4;21170:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21206:31;:35;21238:2;21206:35;;;;;;;;;;;;;;;;;;;;;;;;;21205:36;21170:71;21166:766;;;21284:20;;21274:6;:30;;21266:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21419:9;;21402:13;21412:2;21402:9;:13::i;:::-;21393:6;:22;;;;:::i;:::-;:35;;21385:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21166:766;;;21545:25;:29;21571:2;21545:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21579:31;:37;21611:4;21579:37;;;;;;;;;;;;;;;;;;;;;;;;;21578:38;21545:71;21541:391;;;21659:20;;21649:6;:30;;21641:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21541:391;;;21786:31;:35;21818:2;21786:35;;;;;;;;;;;;;;;;;;;;;;;;;21781:151;;21879:9;;21862:13;21872:2;21862:9;:13::i;:::-;21853:6;:22;;;;:::i;:::-;:35;;21845:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21781:151;21541:391;21166:766;20159:1788;20124:1834;21972:28;22003:24;22021:4;22003:9;:24::i;:::-;21972:55;;22038:12;22077:18;;22053:20;:42;;22038:57;;22126:7;:34;;;;;22151:9;;;;;;;;;;;22150:10;22126:34;:83;;;;;22178:25;:31;22204:4;22178:31;;;;;;;;;;;;;;;;;;;;;;;;;22177:32;22126:83;:126;;;;;22227:19;:25;22247:4;22227:25;;;;;;;;;;;;;;;;;;;;;;;;;22226:26;22126:126;:167;;;;;22270:19;:23;22290:2;22270:23;;;;;;;;;;;;;;;;;;;;;;;;;22269:24;22126:167;22108:297;;;22332:4;22320:9;;:16;;;;;;;;;;;;;;;;;;22351:10;:8;:10::i;:::-;22388:5;22376:9;;:17;;;;;;;;;;;;;;;;;;22108:297;22417:12;22433:9;;;;;;;;;;;22432:10;22417:25;;22544:19;:25;22564:4;22544:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22573:19;:23;22593:2;22573:23;;;;;;;;;;;;;;;;;;;;;;;;;22544:52;22540:73;;;22608:5;22598:15;;22540:73;22644:12;22749:7;22745:645;;;22801:25;:29;22827:2;22801:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22850:1;22834:13;;:17;22801:50;22797:438;;;22878:34;22908:3;22878:25;22889:13;;22878:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;22871:41;;22967:13;;22954:10;;22947:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;22931:12;;:49;;;;;;;:::i;:::-;;;;;;;;22797:438;;;23041:25;:31;23067:4;23041:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;23091:1;23076:12;;:16;23041:51;23038:197;;;23120:33;23149:3;23120:24;23131:12;;23120:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;23113:40;;23207:12;;23195:9;;23188:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;23172:12;;:47;;;;;;;:::i;:::-;;;;;;;;23038:197;22797:438;23262:1;23255:4;:8;23251:91;;;23284:42;23300:4;23314;23321;23284:15;:42::i;:::-;23251:91;23374:4;23364:14;;;;;:::i;:::-;;;22745:645;23402:33;23418:4;23424:2;23428:6;23402:15;:33::i;:::-;19646:3797;;;;19533:3910;;;;:::o;11550:191::-;11624:16;11643:6;;;;;;;;;;;11624:25;;11669:8;11660:6;;:17;;;;;;;;;;;;;;;;;;11724:8;11693:40;;11714:8;11693:40;;;;;;;;;;;;11613:128;11550:191;:::o;9604:98::-;9662:7;9693:1;9689;:5;;;;:::i;:::-;9682:12;;9604:98;;;;:::o;18629:130::-;18746:5;18712:25;:31;18738:4;18712:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18629:130;;:::o;6067:733::-;6225:1;6207:20;;:6;:20;;;;6199:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6309:1;6288:23;;:9;:23;;;;6280:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6364:47;6385:6;6393:9;6404:6;6364:20;:47::i;:::-;6424:21;6448:9;:17;6458:6;6448:17;;;;;;;;;;;;;;;;6424:41;;6501:6;6484:13;:23;;6476:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6622:6;6606:13;:22;6586:9;:17;6596:6;6586:17;;;;;;;;;;;;;;;:42;;;;6674:6;6650:9;:20;6660:9;6650:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6715:9;6698:35;;6707:6;6698:35;;;6726:6;6698:35;;;;;;:::i;:::-;;;;;;;;6746:46;6766:6;6774:9;6785:6;6746:19;:46::i;:::-;6188:612;6067:733;;;:::o;24575:589::-;24614:23;24640:24;24658:4;24640:9;:24::i;:::-;24614:50;;24675:25;24703:12;;24675:40;;24726:12;24774:1;24755:15;:20;:46;;;;24800:1;24779:17;:22;24755:46;24752:60;;;24804:7;;;;;24752:60;24867:2;24846:18;;:23;;;;:::i;:::-;24828:15;:41;24825:111;;;24922:2;24901:18;;:23;;;;:::i;:::-;24883:41;;24825:111;24952:36;24970:17;24952;:36::i;:::-;25003:18;25024:21;25003:42;;25077:1;25062:12;:16;;;;25113:9;;;;;;;;;;;25105:23;;25136:10;25105:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25092:59;;;;;24603:561;;;;24575:589;:::o;9816:98::-;9874:7;9905:1;9901;:5;;;;:::i;:::-;9894:12;;9816:98;;;;:::o;9922:::-;9980:7;10011:1;10007;:5;;;;:::i;:::-;10000:12;;9922:98;;;;:::o;8202:125::-;;;;:::o;8335:124::-;;;;:::o;23451:590::-;23578:21;23616:1;23602:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23578:40;;23647:4;23629;23634:1;23629:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23673:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23663:4;23668:1;23663:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23708:62;23725:4;23740:15;23758:11;23708:8;:62::i;:::-;23809:15;:66;;;23890:11;23916:1;23960:4;23987;24007:15;23809:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23507:534;23451:590;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:329::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:53;5463:7;5454:6;5443:9;5439:22;5418:53;:::i;:::-;5408:63;;5364:117;5159:329;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:86::-;6154:7;6194:4;6187:5;6183:16;6172:27;;6119:86;;;:::o;6211:112::-;6294:22;6310:5;6294:22;:::i;:::-;6289:3;6282:35;6211:112;;:::o;6329:214::-;6418:4;6456:2;6445:9;6441:18;6433:26;;6469:67;6533:1;6522:9;6518:17;6509:6;6469:67;:::i;:::-;6329:214;;;;:::o;6549:118::-;6636:24;6654:5;6636:24;:::i;:::-;6631:3;6624:37;6549:118;;:::o;6673:222::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:71;6885:1;6874:9;6870:17;6861:6;6817:71;:::i;:::-;6673:222;;;;:::o;6901:117::-;7010:1;7007;7000:12;7024:180;7072:77;7069:1;7062:88;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7210:281;7293:27;7315:4;7293:27;:::i;:::-;7285:6;7281:40;7423:6;7411:10;7408:22;7387:18;7375:10;7372:34;7369:62;7366:88;;;7434:18;;:::i;:::-;7366:88;7474:10;7470:2;7463:22;7253:238;7210:281;;:::o;7497:129::-;7531:6;7558:20;;:::i;:::-;7548:30;;7587:33;7615:4;7607:6;7587:33;:::i;:::-;7497:129;;;:::o;7632:311::-;7709:4;7799:18;7791:6;7788:30;7785:56;;;7821:18;;:::i;:::-;7785:56;7871:4;7863:6;7859:17;7851:25;;7931:4;7925;7921:15;7913:23;;7632:311;;;:::o;7949:117::-;8058:1;8055;8048:12;8089:710;8185:5;8210:81;8226:64;8283:6;8226:64;:::i;:::-;8210:81;:::i;:::-;8201:90;;8311:5;8340:6;8333:5;8326:21;8374:4;8367:5;8363:16;8356:23;;8427:4;8419:6;8415:17;8407:6;8403:30;8456:3;8448:6;8445:15;8442:122;;;8475:79;;:::i;:::-;8442:122;8590:6;8573:220;8607:6;8602:3;8599:15;8573:220;;;8682:3;8711:37;8744:3;8732:10;8711:37;:::i;:::-;8706:3;8699:50;8778:4;8773:3;8769:14;8762:21;;8649:144;8633:4;8628:3;8624:14;8617:21;;8573:220;;;8577:21;8191:608;;8089:710;;;;;:::o;8822:370::-;8893:5;8942:3;8935:4;8927:6;8923:17;8919:27;8909:122;;8950:79;;:::i;:::-;8909:122;9067:6;9054:20;9092:94;9182:3;9174:6;9167:4;9159:6;9155:17;9092:94;:::i;:::-;9083:103;;8899:293;8822:370;;;;:::o;9198:539::-;9282:6;9331:2;9319:9;9310:7;9306:23;9302:32;9299:119;;;9337:79;;:::i;:::-;9299:119;9485:1;9474:9;9470:17;9457:31;9515:18;9507:6;9504:30;9501:117;;;9537:79;;:::i;:::-;9501:117;9642:78;9712:7;9703:6;9692:9;9688:22;9642:78;:::i;:::-;9632:88;;9428:302;9198:539;;;;:::o;9743:116::-;9813:21;9828:5;9813:21;:::i;:::-;9806:5;9803:32;9793:60;;9849:1;9846;9839:12;9793:60;9743:116;:::o;9865:133::-;9908:5;9946:6;9933:20;9924:29;;9962:30;9986:5;9962:30;:::i;:::-;9865:133;;;;:::o;10004:468::-;10069:6;10077;10126:2;10114:9;10105:7;10101:23;10097:32;10094:119;;;10132:79;;:::i;:::-;10094:119;10252:1;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10223:117;10379:2;10405:50;10447:7;10438:6;10427:9;10423:22;10405:50;:::i;:::-;10395:60;;10350:115;10004:468;;;;;:::o;10478:474::-;10546:6;10554;10603:2;10591:9;10582:7;10578:23;10574:32;10571:119;;;10609:79;;:::i;:::-;10571:119;10729:1;10754:53;10799:7;10790:6;10779:9;10775:22;10754:53;:::i;:::-;10744:63;;10700:117;10856:2;10882:53;10927:7;10918:6;10907:9;10903:22;10882:53;:::i;:::-;10872:63;;10827:118;10478:474;;;;;:::o;10958:180::-;11006:77;11003:1;10996:88;11103:4;11100:1;11093:15;11127:4;11124:1;11117:15;11144:320;11188:6;11225:1;11219:4;11215:12;11205:22;;11272:1;11266:4;11262:12;11293:18;11283:81;;11349:4;11341:6;11337:17;11327:27;;11283:81;11411:2;11403:6;11400:14;11380:18;11377:38;11374:84;;;11430:18;;:::i;:::-;11374:84;11195:269;11144:320;;;:::o;11470:182::-;11610:34;11606:1;11598:6;11594:14;11587:58;11470:182;:::o;11658:366::-;11800:3;11821:67;11885:2;11880:3;11821:67;:::i;:::-;11814:74;;11897:93;11986:3;11897:93;:::i;:::-;12015:2;12010:3;12006:12;11999:19;;11658:366;;;:::o;12030:419::-;12196:4;12234:2;12223:9;12219:18;12211:26;;12283:9;12277:4;12273:20;12269:1;12258:9;12254:17;12247:47;12311:131;12437:4;12311:131;:::i;:::-;12303:139;;12030:419;;;:::o;12455:180::-;12503:77;12500:1;12493:88;12600:4;12597:1;12590:15;12624:4;12621:1;12614:15;12641:348;12681:7;12704:20;12722:1;12704:20;:::i;:::-;12699:25;;12738:20;12756:1;12738:20;:::i;:::-;12733:25;;12926:1;12858:66;12854:74;12851:1;12848:81;12843:1;12836:9;12829:17;12825:105;12822:131;;;12933:18;;:::i;:::-;12822:131;12981:1;12978;12974:9;12963:20;;12641:348;;;;:::o;12995:180::-;13043:77;13040:1;13033:88;13140:4;13137:1;13130:15;13164:4;13161:1;13154:15;13181:185;13221:1;13238:20;13256:1;13238:20;:::i;:::-;13233:25;;13272:20;13290:1;13272:20;:::i;:::-;13267:25;;13311:1;13301:35;;13316:18;;:::i;:::-;13301:35;13358:1;13355;13351:9;13346:14;;13181:185;;;;:::o;13372:234::-;13512:34;13508:1;13500:6;13496:14;13489:58;13581:17;13576:2;13568:6;13564:15;13557:42;13372:234;:::o;13612:366::-;13754:3;13775:67;13839:2;13834:3;13775:67;:::i;:::-;13768:74;;13851:93;13940:3;13851:93;:::i;:::-;13969:2;13964:3;13960:12;13953:19;;13612:366;;;:::o;13984:419::-;14150:4;14188:2;14177:9;14173:18;14165:26;;14237:9;14231:4;14227:20;14223:1;14212:9;14208:17;14201:47;14265:131;14391:4;14265:131;:::i;:::-;14257:139;;13984:419;;;:::o;14409:227::-;14549:34;14545:1;14537:6;14533:14;14526:58;14618:10;14613:2;14605:6;14601:15;14594:35;14409:227;:::o;14642:366::-;14784:3;14805:67;14869:2;14864:3;14805:67;:::i;:::-;14798:74;;14881:93;14970:3;14881:93;:::i;:::-;14999:2;14994:3;14990:12;14983:19;;14642:366;;;:::o;15014:419::-;15180:4;15218:2;15207:9;15203:18;15195:26;;15267:9;15261:4;15257:20;15253:1;15242:9;15238:17;15231:47;15295:131;15421:4;15295:131;:::i;:::-;15287:139;;15014:419;;;:::o;15439:305::-;15479:3;15498:20;15516:1;15498:20;:::i;:::-;15493:25;;15532:20;15550:1;15532:20;:::i;:::-;15527:25;;15686:1;15618:66;15614:74;15611:1;15608:81;15605:107;;;15692:18;;:::i;:::-;15605:107;15736:1;15733;15729:9;15722:16;;15439:305;;;;:::o;15750:180::-;15798:77;15795:1;15788:88;15895:4;15892:1;15885:15;15919:4;15916:1;15909:15;15936:233;15975:3;15998:24;16016:5;15998:24;:::i;:::-;15989:33;;16044:66;16037:5;16034:77;16031:103;;;16114:18;;:::i;:::-;16031:103;16161:1;16154:5;16150:13;16143:20;;15936:233;;;:::o;16175:179::-;16315:31;16311:1;16303:6;16299:14;16292:55;16175:179;:::o;16360:366::-;16502:3;16523:67;16587:2;16582:3;16523:67;:::i;:::-;16516:74;;16599:93;16688:3;16599:93;:::i;:::-;16717:2;16712:3;16708:12;16701:19;;16360:366;;;:::o;16732:419::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:244::-;17297:34;17293:1;17285:6;17281:14;17274:58;17366:27;17361:2;17353:6;17349:15;17342:52;17157:244;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:224::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:7;18408:2;18400:6;18396:15;18389:32;18204:224;:::o;18434:366::-;18576:3;18597:67;18661:2;18656:3;18597:67;:::i;:::-;18590:74;;18673:93;18762:3;18673:93;:::i;:::-;18791:2;18786:3;18782:12;18775:19;;18434:366;;;:::o;18806:419::-;18972:4;19010:2;18999:9;18995:18;18987:26;;19059:9;19053:4;19049:20;19045:1;19034:9;19030:17;19023:47;19087:131;19213:4;19087:131;:::i;:::-;19079:139;;18806:419;;;:::o;19231:223::-;19371:34;19367:1;19359:6;19355:14;19348:58;19440:6;19435:2;19427:6;19423:15;19416:31;19231:223;:::o;19460:366::-;19602:3;19623:67;19687:2;19682:3;19623:67;:::i;:::-;19616:74;;19699:93;19788:3;19699:93;:::i;:::-;19817:2;19812:3;19808:12;19801:19;;19460:366;;;:::o;19832:419::-;19998:4;20036:2;20025:9;20021:18;20013:26;;20085:9;20079:4;20075:20;20071:1;20060:9;20056:17;20049:47;20113:131;20239:4;20113:131;:::i;:::-;20105:139;;19832:419;;;:::o;20257:240::-;20397:34;20393:1;20385:6;20381:14;20374:58;20466:23;20461:2;20453:6;20449:15;20442:48;20257:240;:::o;20503:366::-;20645:3;20666:67;20730:2;20725:3;20666:67;:::i;:::-;20659:74;;20742:93;20831:3;20742:93;:::i;:::-;20860:2;20855:3;20851:12;20844:19;;20503:366;;;:::o;20875:419::-;21041:4;21079:2;21068:9;21064:18;21056:26;;21128:9;21122:4;21118:20;21114:1;21103:9;21099:17;21092:47;21156:131;21282:4;21156:131;:::i;:::-;21148:139;;20875:419;;;:::o;21300:239::-;21440:34;21436:1;21428:6;21424:14;21417:58;21509:22;21504:2;21496:6;21492:15;21485:47;21300:239;:::o;21545:366::-;21687:3;21708:67;21772:2;21767:3;21708:67;:::i;:::-;21701:74;;21784:93;21873:3;21784:93;:::i;:::-;21902:2;21897:3;21893:12;21886:19;;21545:366;;;:::o;21917:419::-;22083:4;22121:2;22110:9;22106:18;22098:26;;22170:9;22164:4;22160:20;22156:1;22145:9;22141:17;22134:47;22198:131;22324:4;22198:131;:::i;:::-;22190:139;;21917:419;;;:::o;22342:179::-;22482:31;22478:1;22470:6;22466:14;22459:55;22342:179;:::o;22527:366::-;22669:3;22690:67;22754:2;22749:3;22690:67;:::i;:::-;22683:74;;22766:93;22855:3;22766:93;:::i;:::-;22884:2;22879:3;22875:12;22868:19;;22527:366;;;:::o;22899:419::-;23065:4;23103:2;23092:9;23088:18;23080:26;;23152:9;23146:4;23142:20;23138:1;23127:9;23123:17;23116:47;23180:131;23306:4;23180:131;:::i;:::-;23172:139;;22899:419;;;:::o;23324:225::-;23464:34;23460:1;23452:6;23448:14;23441:58;23533:8;23528:2;23520:6;23516:15;23509:33;23324:225;:::o;23555:366::-;23697:3;23718:67;23782:2;23777:3;23718:67;:::i;:::-;23711:74;;23794:93;23883:3;23794:93;:::i;:::-;23912:2;23907:3;23903:12;23896:19;;23555:366;;;:::o;23927:419::-;24093:4;24131:2;24120:9;24116:18;24108:26;;24180:9;24174:4;24170:20;24166:1;24155:9;24151:17;24144:47;24208:131;24334:4;24208:131;:::i;:::-;24200:139;;23927:419;;;:::o;24352:223::-;24492:34;24488:1;24480:6;24476:14;24469:58;24561:6;24556:2;24548:6;24544:15;24537:31;24352:223;:::o;24581:366::-;24723:3;24744:67;24808:2;24803:3;24744:67;:::i;:::-;24737:74;;24820:93;24909:3;24820:93;:::i;:::-;24938:2;24933:3;24929:12;24922:19;;24581:366;;;:::o;24953:419::-;25119:4;25157:2;25146:9;25142:18;25134:26;;25206:9;25200:4;25196:20;25192:1;25181:9;25177:17;25170:47;25234:131;25360:4;25234:131;:::i;:::-;25226:139;;24953:419;;;:::o;25378:221::-;25518:34;25514:1;25506:6;25502:14;25495:58;25587:4;25582:2;25574:6;25570:15;25563:29;25378:221;:::o;25605:366::-;25747:3;25768:67;25832:2;25827:3;25768:67;:::i;:::-;25761:74;;25844:93;25933:3;25844:93;:::i;:::-;25962:2;25957:3;25953:12;25946:19;;25605:366;;;:::o;25977:419::-;26143:4;26181:2;26170:9;26166:18;26158:26;;26230:9;26224:4;26220:20;26216:1;26205:9;26201:17;26194:47;26258:131;26384:4;26258:131;:::i;:::-;26250:139;;25977:419;;;:::o;26402:224::-;26542:34;26538:1;26530:6;26526:14;26519:58;26611:7;26606:2;26598:6;26594:15;26587:32;26402:224;:::o;26632:366::-;26774:3;26795:67;26859:2;26854:3;26795:67;:::i;:::-;26788:74;;26871:93;26960:3;26871:93;:::i;:::-;26989:2;26984:3;26980:12;26973:19;;26632:366;;;:::o;27004:419::-;27170:4;27208:2;27197:9;27193:18;27185:26;;27257:9;27251:4;27247:20;27243:1;27232:9;27228:17;27221:47;27285:131;27411:4;27285:131;:::i;:::-;27277:139;;27004:419;;;:::o;27429:222::-;27569:34;27565:1;27557:6;27553:14;27546:58;27638:5;27633:2;27625:6;27621:15;27614:30;27429:222;:::o;27657:366::-;27799:3;27820:67;27884:2;27879:3;27820:67;:::i;:::-;27813:74;;27896:93;27985:3;27896:93;:::i;:::-;28014:2;28009:3;28005:12;27998:19;;27657:366;;;:::o;28029:419::-;28195:4;28233:2;28222:9;28218:18;28210:26;;28282:9;28276:4;28272:20;28268:1;28257:9;28253:17;28246:47;28310:131;28436:4;28310:131;:::i;:::-;28302:139;;28029:419;;;:::o;28454:305::-;28594:34;28590:1;28582:6;28578:14;28571:58;28663:34;28658:2;28650:6;28646:15;28639:59;28732:19;28727:2;28719:6;28715:15;28708:44;28454:305;:::o;28765:366::-;28907:3;28928:67;28992:2;28987:3;28928:67;:::i;:::-;28921:74;;29004:93;29093:3;29004:93;:::i;:::-;29122:2;29117:3;29113:12;29106:19;;28765:366;;;:::o;29137:419::-;29303:4;29341:2;29330:9;29326:18;29318:26;;29390:9;29384:4;29380:20;29376:1;29365:9;29361:17;29354:47;29418:131;29544:4;29418:131;:::i;:::-;29410:139;;29137:419;;;:::o;29562:172::-;29702:24;29698:1;29690:6;29686:14;29679:48;29562:172;:::o;29740:366::-;29882:3;29903:67;29967:2;29962:3;29903:67;:::i;:::-;29896:74;;29979:93;30068:3;29979:93;:::i;:::-;30097:2;30092:3;30088:12;30081:19;;29740:366;;;:::o;30112:419::-;30278:4;30316:2;30305:9;30301:18;30293:26;;30365:9;30359:4;30355:20;30351:1;30340:9;30336:17;30329:47;30393:131;30519:4;30393:131;:::i;:::-;30385:139;;30112:419;;;:::o;30537:297::-;30677:34;30673:1;30665:6;30661:14;30654:58;30746:34;30741:2;30733:6;30729:15;30722:59;30815:11;30810:2;30802:6;30798:15;30791:36;30537:297;:::o;30840:366::-;30982:3;31003:67;31067:2;31062:3;31003:67;:::i;:::-;30996:74;;31079:93;31168:3;31079:93;:::i;:::-;31197:2;31192:3;31188:12;31181:19;;30840:366;;;:::o;31212:419::-;31378:4;31416:2;31405:9;31401:18;31393:26;;31465:9;31459:4;31455:20;31451:1;31440:9;31436:17;31429:47;31493:131;31619:4;31493:131;:::i;:::-;31485:139;;31212:419;;;:::o;31637:240::-;31777:34;31773:1;31765:6;31761:14;31754:58;31846:23;31841:2;31833:6;31829:15;31822:48;31637:240;:::o;31883:366::-;32025:3;32046:67;32110:2;32105:3;32046:67;:::i;:::-;32039:74;;32122:93;32211:3;32122:93;:::i;:::-;32240:2;32235:3;32231:12;32224:19;;31883:366;;;:::o;32255:419::-;32421:4;32459:2;32448:9;32444:18;32436:26;;32508:9;32502:4;32498:20;32494:1;32483:9;32479:17;32472:47;32536:131;32662:4;32536:131;:::i;:::-;32528:139;;32255:419;;;:::o;32680:169::-;32820:21;32816:1;32808:6;32804:14;32797:45;32680:169;:::o;32855:366::-;32997:3;33018:67;33082:2;33077:3;33018:67;:::i;:::-;33011:74;;33094:93;33183:3;33094:93;:::i;:::-;33212:2;33207:3;33203:12;33196:19;;32855:366;;;:::o;33227:419::-;33393:4;33431:2;33420:9;33416:18;33408:26;;33480:9;33474:4;33470:20;33466:1;33455:9;33451:17;33444:47;33508:131;33634:4;33508:131;:::i;:::-;33500:139;;33227:419;;;:::o;33652:241::-;33792:34;33788:1;33780:6;33776:14;33769:58;33861:24;33856:2;33848:6;33844:15;33837:49;33652:241;:::o;33899:366::-;34041:3;34062:67;34126:2;34121:3;34062:67;:::i;:::-;34055:74;;34138:93;34227:3;34138:93;:::i;:::-;34256:2;34251:3;34247:12;34240:19;;33899:366;;;:::o;34271:419::-;34437:4;34475:2;34464:9;34460:18;34452:26;;34524:9;34518:4;34514:20;34510:1;34499:9;34495:17;34488:47;34552:131;34678:4;34552:131;:::i;:::-;34544:139;;34271:419;;;:::o;34696:191::-;34736:4;34756:20;34774:1;34756:20;:::i;:::-;34751:25;;34790:20;34808:1;34790:20;:::i;:::-;34785:25;;34829:1;34826;34823:8;34820:34;;;34834:18;;:::i;:::-;34820:34;34879:1;34876;34872:9;34864:17;;34696:191;;;;:::o;34893:225::-;35033:34;35029:1;35021:6;35017:14;35010:58;35102:8;35097:2;35089:6;35085:15;35078:33;34893:225;:::o;35124:366::-;35266:3;35287:67;35351:2;35346:3;35287:67;:::i;:::-;35280:74;;35363:93;35452:3;35363:93;:::i;:::-;35481:2;35476:3;35472:12;35465:19;;35124:366;;;:::o;35496:419::-;35662:4;35700:2;35689:9;35685:18;35677:26;;35749:9;35743:4;35739:20;35735:1;35724:9;35720:17;35713:47;35777:131;35903:4;35777:131;:::i;:::-;35769:139;;35496:419;;;:::o;35921:147::-;36022:11;36059:3;36044:18;;35921:147;;;;:::o;36074:114::-;;:::o;36194:398::-;36353:3;36374:83;36455:1;36450:3;36374:83;:::i;:::-;36367:90;;36466:93;36555:3;36466:93;:::i;:::-;36584:1;36579:3;36575:11;36568:18;;36194:398;;;:::o;36598:379::-;36782:3;36804:147;36947:3;36804:147;:::i;:::-;36797:154;;36968:3;36961:10;;36598:379;;;:::o;36983:143::-;37040:5;37071:6;37065:13;37056:22;;37087:33;37114:5;37087:33;:::i;:::-;36983:143;;;;:::o;37132:351::-;37202:6;37251:2;37239:9;37230:7;37226:23;37222:32;37219:119;;;37257:79;;:::i;:::-;37219:119;37377:1;37402:64;37458:7;37449:6;37438:9;37434:22;37402:64;:::i;:::-;37392:74;;37348:128;37132:351;;;;:::o;37489:85::-;37534:7;37563:5;37552:16;;37489:85;;;:::o;37580:158::-;37638:9;37671:61;37689:42;37698:32;37724:5;37698:32;:::i;:::-;37689:42;:::i;:::-;37671:61;:::i;:::-;37658:74;;37580:158;;;:::o;37744:147::-;37839:45;37878:5;37839:45;:::i;:::-;37834:3;37827:58;37744:147;;:::o;37897:114::-;37964:6;37998:5;37992:12;37982:22;;37897:114;;;:::o;38017:184::-;38116:11;38150:6;38145:3;38138:19;38190:4;38185:3;38181:14;38166:29;;38017:184;;;;:::o;38207:132::-;38274:4;38297:3;38289:11;;38327:4;38322:3;38318:14;38310:22;;38207:132;;;:::o;38345:108::-;38422:24;38440:5;38422:24;:::i;:::-;38417:3;38410:37;38345:108;;:::o;38459:179::-;38528:10;38549:46;38591:3;38583:6;38549:46;:::i;:::-;38627:4;38622:3;38618:14;38604:28;;38459:179;;;;:::o;38644:113::-;38714:4;38746;38741:3;38737:14;38729:22;;38644:113;;;:::o;38793:732::-;38912:3;38941:54;38989:5;38941:54;:::i;:::-;39011:86;39090:6;39085:3;39011:86;:::i;:::-;39004:93;;39121:56;39171:5;39121:56;:::i;:::-;39200:7;39231:1;39216:284;39241:6;39238:1;39235:13;39216:284;;;39317:6;39311:13;39344:63;39403:3;39388:13;39344:63;:::i;:::-;39337:70;;39430:60;39483:6;39430:60;:::i;:::-;39420:70;;39276:224;39263:1;39260;39256:9;39251:14;;39216:284;;;39220:14;39516:3;39509:10;;38917:608;;;38793:732;;;;:::o;39531:831::-;39794:4;39832:3;39821:9;39817:19;39809:27;;39846:71;39914:1;39903:9;39899:17;39890:6;39846:71;:::i;:::-;39927:80;40003:2;39992:9;39988:18;39979:6;39927:80;:::i;:::-;40054:9;40048:4;40044:20;40039:2;40028:9;40024:18;40017:48;40082:108;40185:4;40176:6;40082:108;:::i;:::-;40074:116;;40200:72;40268:2;40257:9;40253:18;40244:6;40200:72;:::i;:::-;40282:73;40350:3;40339:9;40335:19;40326:6;40282:73;:::i;:::-;39531:831;;;;;;;;:::o
Swarm Source
ipfs://221ded80444378b5f6c8d08d432f25a4a744f575cf0defc0dc111710bd4a7246
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.
Add Token to MetaMask (Web3)