ETH Price: $3,490.72 (+7.54%)
Gas: 5 Gwei

Token

TRUMPTAX (TRUMPTAX)
 

Overview

Max Total Supply

100,000,000 TRUMPTAX

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
imnotrichagain.eth
Balance
999,702 TRUMPTAX

Value
$0.00
0x8d3d581f368e55c74f5c758fd928847f473694d6
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TRUMPTAX

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-06
*/

//SPDX-License-Identifier: MIT
 
pragma solidity 0.8.19;
 
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
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;
}
 
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);
}
 
library Address {
function sendValue(address payable recipient, uint256 amount) internal returns(bool){
require(address(this).balance >= amount, "Address: insufficient balance");
 
(bool success, ) = recipient.call{value: amount}("");
return success; // always proceeds
}
}
 
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
 
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
 
abstract contract Ownable is Context {
address private _owner;
 
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
 
function owner() public view returns (address) {
return _owner;
}
 
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
 
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
 
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
 
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");
 
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);
}
 
function _mintOnce(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
 
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
}
 
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
 
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);
}
 
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);
}
}
 
contract TRUMPTAX is ERC20, Ownable {
using Address for address payable;
 
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
 
mapping (address => bool) private _isExcludedFromFees;
 
uint256 public feeOnBuy;
uint256 public feeOnSell;
 
uint256 public feeOnTransfer;
 
address public feeReceiver;
 
uint256 public swapTokensAtAmount;
bool private swapping;
 
bool public swapEnabled;
 
event ExcludeFromFees(address indexed account, bool isExcluded);
event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);
 
constructor () ERC20("TRUMPTAX", "TRUMPTAX")
{
address router;
address pinkLock;
 
if (block.chainid == 56) {
router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router
pinkLock = 0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE; // BSC PinkLock
} else if (block.chainid == 97) {
router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router
pinkLock = 0x5E5b9bE5fd939c578ABE5800a90C566eeEbA44a5; // BSC Testnet PinkLock
} else if (block.chainid == 1 || block.chainid == 5) {
router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet
pinkLock = 0x71B5759d73262FBb223956913ecF4ecC51057641; // ETH PinkLock
} else {
revert();
}
 
transferOwnership(0x3806dcb19e6644C9333e8e36da28cB48872668aE);
 
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
 
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = _uniswapV2Pair;
 
_approve(address(this), address(uniswapV2Router), type(uint256).max);
 
feeOnBuy = 3;
feeOnSell = 4;
 
feeOnTransfer = 1;
 
feeReceiver = 0x3806dcb19e6644C9333e8e36da28cB48872668aE;
 
_isExcludedFromFees[owner()] = true;
_isExcludedFromFees[address(0xdead)] = true;
_isExcludedFromFees[address(this)] = true;
_isExcludedFromFees[pinkLock] = true;
 
_mintOnce(owner(), 100e6 * (10 ** decimals()));
swapTokensAtAmount = totalSupply() / 5_000;
 
swapEnabled = false;
}
 
receive() external payable {}
 
function creator() public pure returns (string memory) {
return "https://x.com/trumptaxcoin";
}
 
function claimStuckTokens(address token) external onlyOwner {
require(token != address(this), "CSLT: Owner cannot claim contract's balance of its own tokens");
if (token == address(0x0)) {
payable(msg.sender).sendValue(address(this).balance);
return;
}
 
IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
}
 
function excludeFromFees(address account, bool excluded) external onlyOwner{
_isExcludedFromFees[account] = excluded;
 
emit ExcludeFromFees(account, excluded);
}
 
function isExcludedFromFees(address account) public view returns(bool) {
return _isExcludedFromFees[account];
}
 
event UpdateFees(uint256 feeOnBuy, uint256 feeOnSell);
 
function updateFees(uint256 _feeOnSell, uint256 _feeOnBuy, uint256 _feeOnTransfer) external onlyOwner {
feeOnBuy = _feeOnBuy;
feeOnSell = _feeOnSell;
feeOnTransfer = _feeOnTransfer;
 
require(feeOnBuy <= 15, "CSLT: Total Fees cannot exceed the maximum");
require(feeOnSell <= 15, "CSLT: Total Fees cannot exceed the maximum");
require(feeOnTransfer <= 5, "CSLT: Total Fees cannot exceed the maximum");
 
emit UpdateFees(feeOnSell, feeOnBuy);
}
 
event FeeReceiverChanged(address feeReceiver);
 
function changeFeeReceiver(address _feeReceiver) external onlyOwner{
require(_feeReceiver != address(0), "CSLT: Fee receiver cannot be the zero address");
feeReceiver = _feeReceiver;
 
emit FeeReceiverChanged(feeReceiver);
}
 
event TradingEnabled(bool tradingEnabled);
 
bool public tradingEnabled;
 
function enableTrading() external onlyOwner{
require(!tradingEnabled, "CSLT: Trading already enabled.");
tradingEnabled = true;
swapEnabled = true;
 
emit TradingEnabled(tradingEnabled);
}
 
function _transfer(address from,address to,uint256 amount) internal override {
require(from != address(0), "CSLT: transfer from the zero address");
require(to != address(0), "CSLT: transfer to the zero address");
require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "CSLT: Trading not yet enabled!");
 
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
 
uint256 contractTokenBalance = balanceOf(address(this));
 
bool canSwap = contractTokenBalance >= swapTokensAtAmount;
 
if (canSwap &&
!swapping &&
to == uniswapV2Pair &&
feeOnBuy + feeOnSell > 0 &&
!_isExcludedFromFees[from] &&
swapEnabled
) {
swapping = true;
 
swapAndSendFee(contractTokenBalance);
 
swapping = false;
}
 
uint256 _totalFees;
if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
_totalFees = 0;
} else if (from == uniswapV2Pair) {
_totalFees = feeOnBuy;
} else if (to == uniswapV2Pair) {
_totalFees = feeOnSell;
} else {
_totalFees = feeOnTransfer;
}
 
if (_totalFees > 0) {
uint256 fees = (amount * _totalFees) / 100;
amount = amount - fees;
super._transfer(from, address(this), fees);
}
 
super._transfer(from, to, amount);
}
 
function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{
require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply");
swapTokensAtAmount = newAmount;
swapEnabled = _swapEnabled;
 
emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
}
 
function swapAndSendFee(uint256 tokenAmount) private {
uint256 initialBalance = address(this).balance;
 
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
 
try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
) {} catch {
return;
}
 
uint256 newBalance = address(this).balance - initialBalance;
 
payable(feeReceiver).sendValue(newBalance);
 
emit SwapAndSendFee(tokenAmount, newBalance);
}
}

Contract Security Audit

Contract ABI

[{"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","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":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","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":false,"internalType":"uint256","name":"feeOnBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeOnSell","type":"uint256"}],"name":"UpdateFees","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"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":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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":[{"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":"_feeOnSell","type":"uint256"},{"internalType":"uint256","name":"_feeOnBuy","type":"uint256"},{"internalType":"uint256","name":"_feeOnTransfer","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280600881526020017f5452554d505441580000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f5452554d5054415800000000000000000000000000000000000000000000000081525081600390816200008f919062000eb8565b508060049081620000a1919062000eb8565b5050506000620000b66200070460201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000806038460362000195577310ed43c718714eb63d5aa57b78b54704e256024e915073407993575c91ce7643a4d4ccacc9a98c36ee1bbe905062000223565b60614603620001d25773d99d1c33f9fc3444f8101754abc46c52416550d19150735e5b9be5fd939c578abe5800a90c566eeeba44a5905062000222565b6001461480620001e25750600546145b156200021c57737a250d5630b4cf539739df2c5dacb4c659f2488d91507371b5759d73262fbb223956913ecf4ecc51057641905062000221565b600080fd5b5b5b62000248733806dcb19e6644c9333e8e36da28cb48872668ae6200070c60201b60201c565b600082905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c1919062001009565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f919062001009565b6040518363ffffffff1660e01b81526004016200036e9291906200104c565b6020604051808303816000875af11580156200038e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b4919062001009565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200048d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620008e060201b60201c565b60036009819055506004600a819055506001600b81905550733806dcb19e6644c9333e8e36da28cb48872668ae600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860006200051062000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006ba6200067f62000ab160201b60201c565b6200068f62000adb60201b60201c565b600a6200069d919062001209565b6305f5e100620006ae91906200125a565b62000ae460201b60201c565b611388620006cd62000c3460201b60201c565b620006d99190620012d4565b600d819055506000600e60016101000a81548160ff0219169083151502179055505050505062001632565b600033905090565b6200071c6200070460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007a5906200136d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000820576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008179062001405565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000949906200149d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009bb9062001535565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000aa4919062001568565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b4d90620015d5565b60405180910390fd5b806002600082825462000b6a9190620015f7565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000bc19190620015f7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c28919062001568565b60405180910390a35050565b6000600254905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000cc057607f821691505b60208210810362000cd65762000cd562000c78565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d01565b62000d4c868362000d01565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d9962000d9362000d8d8462000d64565b62000d6e565b62000d64565b9050919050565b6000819050919050565b62000db58362000d78565b62000dcd62000dc48262000da0565b84845462000d0e565b825550505050565b600090565b62000de462000dd5565b62000df181848462000daa565b505050565b5b8181101562000e195762000e0d60008262000dda565b60018101905062000df7565b5050565b601f82111562000e685762000e328162000cdc565b62000e3d8462000cf1565b8101602085101562000e4d578190505b62000e6562000e5c8562000cf1565b83018262000df6565b50505b505050565b600082821c905092915050565b600062000e8d6000198460080262000e6d565b1980831691505092915050565b600062000ea8838362000e7a565b9150826002028217905092915050565b62000ec38262000c3e565b67ffffffffffffffff81111562000edf5762000ede62000c49565b5b62000eeb825462000ca7565b62000ef882828562000e1d565b600060209050601f83116001811462000f30576000841562000f1b578287015190505b62000f27858262000e9a565b86555062000f97565b601f19841662000f408662000cdc565b60005b8281101562000f6a5784890151825560018201915060208501945060208101905062000f43565b8683101562000f8a578489015162000f86601f89168262000e7a565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000fd18262000fa4565b9050919050565b62000fe38162000fc4565b811462000fef57600080fd5b50565b600081519050620010038162000fd8565b92915050565b60006020828403121562001022576200102162000f9f565b5b6000620010328482850162000ff2565b91505092915050565b620010468162000fc4565b82525050565b60006040820190506200106360008301856200103b565b6200107260208301846200103b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200110757808604811115620010df57620010de62001079565b5b6001851615620010ef5780820291505b8081029050620010ff85620010a8565b9450620010bf565b94509492505050565b600082620011225760019050620011f5565b81620011325760009050620011f5565b81600181146200114b576002811462001156576200118c565b6001915050620011f5565b60ff8411156200116b576200116a62001079565b5b8360020a91508482111562001185576200118462001079565b5b50620011f5565b5060208310610133831016604e8410600b8410161715620011c65782820a905083811115620011c057620011bf62001079565b5b620011f5565b620011d58484846001620010b5565b92509050818404811115620011ef57620011ee62001079565b5b81810290505b9392505050565b600060ff82169050919050565b6000620012168262000d64565b91506200122383620011fc565b9250620012527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001110565b905092915050565b6000620012678262000d64565b9150620012748362000d64565b9250828202620012848162000d64565b915082820484148315176200129e576200129d62001079565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012e18262000d64565b9150620012ee8362000d64565b925082620013015762001300620012a5565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620013556020836200130c565b915062001362826200131d565b602082019050919050565b60006020820190508181036000830152620013888162001346565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620013ed6026836200130c565b9150620013fa826200138f565b604082019050919050565b600060208201905081810360008301526200142081620013de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620014856024836200130c565b9150620014928262001427565b604082019050919050565b60006020820190508181036000830152620014b88162001476565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200151d6022836200130c565b91506200152a82620014bf565b604082019050919050565b6000602082019050818103600083015262001550816200150e565b9050919050565b620015628162000d64565b82525050565b60006020820190506200157f600083018462001557565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620015bd601f836200130c565b9150620015ca8262001585565b602082019050919050565b60006020820190508181036000830152620015f081620015ae565b9050919050565b6000620016048262000d64565b9150620016118362000d64565b92508282019050808211156200162c576200162b62001079565b5b92915050565b613abd80620016426000396000f3fe6080604052600436106101dc5760003560e01c806370a0823111610102578063b1fde9f811610095578063dd62ed3e11610064578063dd62ed3e146106bf578063e2f45605146106fc578063f2fde38b14610727578063f9d0831a14610750576101e3565b8063b1fde9f814610617578063b3f0067414610640578063bb8c3ee01461066b578063c024666814610696576101e3565b80638da5cb5b116100d15780638da5cb5b1461054757806395d89b4114610572578063a457c2d71461059d578063a9059cbb146105da576101e3565b806370a08231146104b3578063715018a6146104f05780637c08b964146105075780638a8c523c14610530576101e3565b806323b872dd1161017a5780634ada218b116101495780634ada218b146103f55780634fbee1931461042057806365048d081461045d5780636ddd171314610488576101e3565b806323b872dd14610325578063313ce56714610362578063395093511461038d57806349bd5a5e146103ca576101e3565b80630fa1eeab116101b65780630fa1eeab1461027b5780631694505e146102a657806318160ddd146102d157806322429085146102fc576101e3565b806302d05d3f146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610779565b60405161020a9190612818565b60405180910390f35b34801561021f57600080fd5b506102286107b6565b6040516102359190612818565b60405180910390f35b34801561024a57600080fd5b50610265600480360381019061026091906128d3565b610848565b604051610272919061292e565b60405180910390f35b34801561028757600080fd5b50610290610866565b60405161029d9190612958565b60405180910390f35b3480156102b257600080fd5b506102bb61086c565b6040516102c891906129d2565b60405180910390f35b3480156102dd57600080fd5b506102e6610892565b6040516102f39190612958565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906129ed565b61089c565b005b34801561033157600080fd5b5061034c60048036038101906103479190612a40565b610a5c565b604051610359919061292e565b60405180910390f35b34801561036e57600080fd5b50610377610b7b565b6040516103849190612aaf565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906128d3565b610b84565b6040516103c1919061292e565b60405180910390f35b3480156103d657600080fd5b506103df610c30565b6040516103ec9190612ad9565b60405180910390f35b34801561040157600080fd5b5061040a610c56565b604051610417919061292e565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612af4565b610c69565b604051610454919061292e565b60405180910390f35b34801561046957600080fd5b50610472610cbf565b60405161047f9190612958565b60405180910390f35b34801561049457600080fd5b5061049d610cc5565b6040516104aa919061292e565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612af4565b610cd8565b6040516104e79190612958565b60405180910390f35b3480156104fc57600080fd5b50610505610d20565b005b34801561051357600080fd5b5061052e60048036038101906105299190612af4565b610e78565b005b34801561053c57600080fd5b5061054561101b565b005b34801561055357600080fd5b5061055c611180565b6040516105699190612ad9565b60405180910390f35b34801561057e57600080fd5b506105876111aa565b6040516105949190612818565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf91906128d3565b61123c565b6040516105d1919061292e565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc91906128d3565b611327565b60405161060e919061292e565b60405180910390f35b34801561062357600080fd5b5061063e60048036038101906106399190612b4d565b611345565b005b34801561064c57600080fd5b50610655611491565b6040516106629190612ad9565b60405180910390f35b34801561067757600080fd5b506106806114b7565b60405161068d9190612958565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612b8d565b6114bd565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190612bcd565b6115fd565b6040516106f39190612958565b60405180910390f35b34801561070857600080fd5b50610711611684565b60405161071e9190612958565b60405180910390f35b34801561073357600080fd5b5061074e60048036038101906107499190612af4565b61168a565b005b34801561075c57600080fd5b5061077760048036038101906107729190612af4565b611850565b005b60606040518060400160405280601a81526020017f68747470733a2f2f782e636f6d2f7472756d70746178636f696e000000000000815250905090565b6060600380546107c590612c3c565b80601f01602080910402602001604051908101604052809291908181526020018280546107f190612c3c565b801561083e5780601f106108135761010080835404028352916020019161083e565b820191906000526020600020905b81548152906001019060200180831161082157829003601f168201915b5050505050905090565b600061085c610855611ab4565b8484611abc565b6001905092915050565b600b5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6108a4611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90612cb9565b60405180910390fd5b8160098190555082600a8190555080600b81905550600f600954111561098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590612d4b565b60405180910390fd5b600f600a5411156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90612d4b565b60405180910390fd5b6005600b541115610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190612d4b565b60405180910390fd5b7f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051610a4f929190612d6b565b60405180910390a1505050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa8611ab4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b645782811015610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690612e06565b60405180910390fd5b610b6385610b5b611ab4565b858403611abc565b5b610b6f858585611c85565b60019150509392505050565b60006012905090565b6000610c26610b91611ab4565b848460016000610b9f611ab4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c219190612e55565b611abc565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d28611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90612cb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e80611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690612cb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590612efb565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516110109190612ad9565b60405180910390a150565b611023611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a990612cb9565b60405180910390fd5b600e60029054906101000a900460ff1615611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990612f67565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055507fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a600e60029054906101000a900460ff16604051611176919061292e565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111b990612c3c565b80601f01602080910402602001604051908101604052809291908181526020018280546111e590612c3c565b80156112325780601f1061120757610100808354040283529160200191611232565b820191906000526020600020905b81548152906001019060200180831161121557829003601f168201915b5050505050905090565b6000806001600061124b611ab4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90612ff9565b60405180910390fd5b61131c611313611ab4565b85858403611abc565b600191505092915050565b600061133b611334611ab4565b8484611c85565b6001905092915050565b61134d611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d390612cb9565b60405180910390fd5b620f42406113e8610892565b6113f29190613048565b8211611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90613111565b60405180910390fd5b81600d8190555080600e60016101000a81548160ff0219169083151502179055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600d546040516114859190612958565b60405180910390a15050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6114c5611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90612cb9565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516115f1919061292e565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b611692611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171890612cb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611787906131a3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611858611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612cb9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c90613235565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b8576119b2473373ffffffffffffffffffffffffffffffffffffffff166121ad90919063ffffffff16565b50611ab1565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a0e9190612ad9565b602060405180830381865afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f919061326a565b6040518363ffffffff1660e01b8152600401611a6c929190613297565b6020604051808303816000875af1158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf91906132d5565b505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2290613374565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9190613406565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c789190612958565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb90613498565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a9061352a565b60405180910390fd5b600e60029054906101000a900460ff1680611dc75750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e1b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5190613596565b60405180910390fd5b60008103611e7357611e6e83836000612268565b6121a8565b6000611e7e30610cd8565b90506000600d548210159050808015611ea45750600e60009054906101000a900460ff16155b8015611efd5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f1857506000600a54600954611f169190612e55565b115b8015611f6e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f865750600e60019054906101000a900460ff165b15611fcb576001600e60006101000a81548160ff021916908315150217905550611faf826124d1565b6000600e60006101000a81548160ff0219169083151502179055505b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061206e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120855750600e60009054906101000a900460ff165b156120935760009050612159565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036120f2576009549050612158565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361215157600a549050612157565b600b5490505b5b5b60008111156121995760006064828661217291906135b6565b61217c9190613048565b9050808561218a91906135f8565b9450612197873083612268565b505b6121a4868686612268565b5050505b505050565b6000814710156121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e990613678565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683604051612218906136c9565b60006040518083038185875af1925050503d8060008114612255576040519150601f19603f3d011682016040523d82523d6000602084013e61225a565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ce90613750565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233d906137e2565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c390613874565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461245f9190612e55565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124c39190612958565b60405180910390a350505050565b60004790506000600267ffffffffffffffff8111156124f3576124f2613894565b5b6040519080825280602002602001820160405280156125215781602001602082028036833780820191505090505b5090503081600081518110612539576125386138c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126049190613907565b81600181518110612618576126176138c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016126b6959493929190613a2d565b600060405180830381600087803b1580156126d057600080fd5b505af19250505080156126e1575060015b6126ec575050612785565b600082476126fa91906135f8565b905061274781600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121ad90919063ffffffff16565b507f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b8482604051612779929190612d6b565b60405180910390a15050505b50565b600081519050919050565b600082825260208201905092915050565b60005b838110156127c25780820151818401526020810190506127a7565b60008484015250505050565b6000601f19601f8301169050919050565b60006127ea82612788565b6127f48185612793565b93506128048185602086016127a4565b61280d816127ce565b840191505092915050565b6000602082019050818103600083015261283281846127df565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061286a8261283f565b9050919050565b61287a8161285f565b811461288557600080fd5b50565b60008135905061289781612871565b92915050565b6000819050919050565b6128b08161289d565b81146128bb57600080fd5b50565b6000813590506128cd816128a7565b92915050565b600080604083850312156128ea576128e961283a565b5b60006128f885828601612888565b9250506020612909858286016128be565b9150509250929050565b60008115159050919050565b61292881612913565b82525050565b6000602082019050612943600083018461291f565b92915050565b6129528161289d565b82525050565b600060208201905061296d6000830184612949565b92915050565b6000819050919050565b600061299861299361298e8461283f565b612973565b61283f565b9050919050565b60006129aa8261297d565b9050919050565b60006129bc8261299f565b9050919050565b6129cc816129b1565b82525050565b60006020820190506129e760008301846129c3565b92915050565b600080600060608486031215612a0657612a0561283a565b5b6000612a14868287016128be565b9350506020612a25868287016128be565b9250506040612a36868287016128be565b9150509250925092565b600080600060608486031215612a5957612a5861283a565b5b6000612a6786828701612888565b9350506020612a7886828701612888565b9250506040612a89868287016128be565b9150509250925092565b600060ff82169050919050565b612aa981612a93565b82525050565b6000602082019050612ac46000830184612aa0565b92915050565b612ad38161285f565b82525050565b6000602082019050612aee6000830184612aca565b92915050565b600060208284031215612b0a57612b0961283a565b5b6000612b1884828501612888565b91505092915050565b612b2a81612913565b8114612b3557600080fd5b50565b600081359050612b4781612b21565b92915050565b60008060408385031215612b6457612b6361283a565b5b6000612b72858286016128be565b9250506020612b8385828601612b38565b9150509250929050565b60008060408385031215612ba457612ba361283a565b5b6000612bb285828601612888565b9250506020612bc385828601612b38565b9150509250929050565b60008060408385031215612be457612be361283a565b5b6000612bf285828601612888565b9250506020612c0385828601612888565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c5457607f821691505b602082108103612c6757612c66612c0d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca3602083612793565b9150612cae82612c6d565b602082019050919050565b60006020820190508181036000830152612cd281612c96565b9050919050565b7f43534c543a20546f74616c20466565732063616e6e6f7420657863656564207460008201527f6865206d6178696d756d00000000000000000000000000000000000000000000602082015250565b6000612d35602a83612793565b9150612d4082612cd9565b604082019050919050565b60006020820190508181036000830152612d6481612d28565b9050919050565b6000604082019050612d806000830185612949565b612d8d6020830184612949565b9392505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612df0602883612793565b9150612dfb82612d94565b604082019050919050565b60006020820190508181036000830152612e1f81612de3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e608261289d565b9150612e6b8361289d565b9250828201905080821115612e8357612e82612e26565b5b92915050565b7f43534c543a204665652072656365697665722063616e6e6f742062652074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b6000612ee5602d83612793565b9150612ef082612e89565b604082019050919050565b60006020820190508181036000830152612f1481612ed8565b9050919050565b7f43534c543a2054726164696e6720616c726561647920656e61626c65642e0000600082015250565b6000612f51601e83612793565b9150612f5c82612f1b565b602082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612fe3602583612793565b9150612fee82612f87565b604082019050919050565b6000602082019050818103600083015261301281612fd6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130538261289d565b915061305e8361289d565b92508261306e5761306d613019565b5b828204905092915050565b7f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560008201527f2067726561746572207468616e20302e3030303125206f6620746f74616c207360208201527f7570706c79000000000000000000000000000000000000000000000000000000604082015250565b60006130fb604583612793565b915061310682613079565b606082019050919050565b6000602082019050818103600083015261312a816130ee565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061318d602683612793565b915061319882613131565b604082019050919050565b600060208201905081810360008301526131bc81613180565b9050919050565b7f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360008201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e73000000602082015250565b600061321f603d83612793565b915061322a826131c3565b604082019050919050565b6000602082019050818103600083015261324e81613212565b9050919050565b600081519050613264816128a7565b92915050565b6000602082840312156132805761327f61283a565b5b600061328e84828501613255565b91505092915050565b60006040820190506132ac6000830185612aca565b6132b96020830184612949565b9392505050565b6000815190506132cf81612b21565b92915050565b6000602082840312156132eb576132ea61283a565b5b60006132f9848285016132c0565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061335e602483612793565b915061336982613302565b604082019050919050565b6000602082019050818103600083015261338d81613351565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133f0602283612793565b91506133fb82613394565b604082019050919050565b6000602082019050818103600083015261341f816133e3565b9050919050565b7f43534c543a207472616e736665722066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613482602483612793565b915061348d82613426565b604082019050919050565b600060208201905081810360008301526134b181613475565b9050919050565b7f43534c543a207472616e7366657220746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613514602283612793565b915061351f826134b8565b604082019050919050565b6000602082019050818103600083015261354381613507565b9050919050565b7f43534c543a2054726164696e67206e6f742079657420656e61626c6564210000600082015250565b6000613580601e83612793565b915061358b8261354a565b602082019050919050565b600060208201905081810360008301526135af81613573565b9050919050565b60006135c18261289d565b91506135cc8361289d565b92508282026135da8161289d565b915082820484148315176135f1576135f0612e26565b5b5092915050565b60006136038261289d565b915061360e8361289d565b925082820390508181111561362657613625612e26565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613662601d83612793565b915061366d8261362c565b602082019050919050565b6000602082019050818103600083015261369181613655565b9050919050565b600081905092915050565b50565b60006136b3600083613698565b91506136be826136a3565b600082019050919050565b60006136d4826136a6565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061373a602583612793565b9150613745826136de565b604082019050919050565b600060208201905081810360008301526137698161372d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137cc602383612793565b91506137d782613770565b604082019050919050565b600060208201905081810360008301526137fb816137bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061385e602683612793565b915061386982613802565b604082019050919050565b6000602082019050818103600083015261388d81613851565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061390181612871565b92915050565b60006020828403121561391d5761391c61283a565b5b600061392b848285016138f2565b91505092915050565b6000819050919050565b600061395961395461394f84613934565b612973565b61289d565b9050919050565b6139698161393e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139a48161285f565b82525050565b60006139b6838361399b565b60208301905092915050565b6000602082019050919050565b60006139da8261396f565b6139e4818561397a565b93506139ef8361398b565b8060005b83811015613a20578151613a0788826139aa565b9750613a12836139c2565b9250506001810190506139f3565b5085935050505092915050565b600060a082019050613a426000830188612949565b613a4f6020830187613960565b8181036040830152613a6181866139cf565b9050613a706060830185612aca565b613a7d6080830184612949565b969550505050505056fea2646970667358221220e0ba37f5cd901ac3bfce2c5cc61837ad8e2cfb185566a156da6e3af2f0c9091964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806370a0823111610102578063b1fde9f811610095578063dd62ed3e11610064578063dd62ed3e146106bf578063e2f45605146106fc578063f2fde38b14610727578063f9d0831a14610750576101e3565b8063b1fde9f814610617578063b3f0067414610640578063bb8c3ee01461066b578063c024666814610696576101e3565b80638da5cb5b116100d15780638da5cb5b1461054757806395d89b4114610572578063a457c2d71461059d578063a9059cbb146105da576101e3565b806370a08231146104b3578063715018a6146104f05780637c08b964146105075780638a8c523c14610530576101e3565b806323b872dd1161017a5780634ada218b116101495780634ada218b146103f55780634fbee1931461042057806365048d081461045d5780636ddd171314610488576101e3565b806323b872dd14610325578063313ce56714610362578063395093511461038d57806349bd5a5e146103ca576101e3565b80630fa1eeab116101b65780630fa1eeab1461027b5780631694505e146102a657806318160ddd146102d157806322429085146102fc576101e3565b806302d05d3f146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610779565b60405161020a9190612818565b60405180910390f35b34801561021f57600080fd5b506102286107b6565b6040516102359190612818565b60405180910390f35b34801561024a57600080fd5b50610265600480360381019061026091906128d3565b610848565b604051610272919061292e565b60405180910390f35b34801561028757600080fd5b50610290610866565b60405161029d9190612958565b60405180910390f35b3480156102b257600080fd5b506102bb61086c565b6040516102c891906129d2565b60405180910390f35b3480156102dd57600080fd5b506102e6610892565b6040516102f39190612958565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906129ed565b61089c565b005b34801561033157600080fd5b5061034c60048036038101906103479190612a40565b610a5c565b604051610359919061292e565b60405180910390f35b34801561036e57600080fd5b50610377610b7b565b6040516103849190612aaf565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906128d3565b610b84565b6040516103c1919061292e565b60405180910390f35b3480156103d657600080fd5b506103df610c30565b6040516103ec9190612ad9565b60405180910390f35b34801561040157600080fd5b5061040a610c56565b604051610417919061292e565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612af4565b610c69565b604051610454919061292e565b60405180910390f35b34801561046957600080fd5b50610472610cbf565b60405161047f9190612958565b60405180910390f35b34801561049457600080fd5b5061049d610cc5565b6040516104aa919061292e565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612af4565b610cd8565b6040516104e79190612958565b60405180910390f35b3480156104fc57600080fd5b50610505610d20565b005b34801561051357600080fd5b5061052e60048036038101906105299190612af4565b610e78565b005b34801561053c57600080fd5b5061054561101b565b005b34801561055357600080fd5b5061055c611180565b6040516105699190612ad9565b60405180910390f35b34801561057e57600080fd5b506105876111aa565b6040516105949190612818565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf91906128d3565b61123c565b6040516105d1919061292e565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc91906128d3565b611327565b60405161060e919061292e565b60405180910390f35b34801561062357600080fd5b5061063e60048036038101906106399190612b4d565b611345565b005b34801561064c57600080fd5b50610655611491565b6040516106629190612ad9565b60405180910390f35b34801561067757600080fd5b506106806114b7565b60405161068d9190612958565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612b8d565b6114bd565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190612bcd565b6115fd565b6040516106f39190612958565b60405180910390f35b34801561070857600080fd5b50610711611684565b60405161071e9190612958565b60405180910390f35b34801561073357600080fd5b5061074e60048036038101906107499190612af4565b61168a565b005b34801561075c57600080fd5b5061077760048036038101906107729190612af4565b611850565b005b60606040518060400160405280601a81526020017f68747470733a2f2f782e636f6d2f7472756d70746178636f696e000000000000815250905090565b6060600380546107c590612c3c565b80601f01602080910402602001604051908101604052809291908181526020018280546107f190612c3c565b801561083e5780601f106108135761010080835404028352916020019161083e565b820191906000526020600020905b81548152906001019060200180831161082157829003601f168201915b5050505050905090565b600061085c610855611ab4565b8484611abc565b6001905092915050565b600b5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6108a4611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90612cb9565b60405180910390fd5b8160098190555082600a8190555080600b81905550600f600954111561098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590612d4b565b60405180910390fd5b600f600a5411156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90612d4b565b60405180910390fd5b6005600b541115610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190612d4b565b60405180910390fd5b7f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051610a4f929190612d6b565b60405180910390a1505050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa8611ab4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b645782811015610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690612e06565b60405180910390fd5b610b6385610b5b611ab4565b858403611abc565b5b610b6f858585611c85565b60019150509392505050565b60006012905090565b6000610c26610b91611ab4565b848460016000610b9f611ab4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c219190612e55565b611abc565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d28611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90612cb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e80611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690612cb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590612efb565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516110109190612ad9565b60405180910390a150565b611023611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a990612cb9565b60405180910390fd5b600e60029054906101000a900460ff1615611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990612f67565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055507fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a600e60029054906101000a900460ff16604051611176919061292e565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111b990612c3c565b80601f01602080910402602001604051908101604052809291908181526020018280546111e590612c3c565b80156112325780601f1061120757610100808354040283529160200191611232565b820191906000526020600020905b81548152906001019060200180831161121557829003601f168201915b5050505050905090565b6000806001600061124b611ab4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90612ff9565b60405180910390fd5b61131c611313611ab4565b85858403611abc565b600191505092915050565b600061133b611334611ab4565b8484611c85565b6001905092915050565b61134d611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d390612cb9565b60405180910390fd5b620f42406113e8610892565b6113f29190613048565b8211611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90613111565b60405180910390fd5b81600d8190555080600e60016101000a81548160ff0219169083151502179055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600d546040516114859190612958565b60405180910390a15050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6114c5611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90612cb9565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516115f1919061292e565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b611692611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171890612cb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611787906131a3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611858611ab4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612cb9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c90613235565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b8576119b2473373ffffffffffffffffffffffffffffffffffffffff166121ad90919063ffffffff16565b50611ab1565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a0e9190612ad9565b602060405180830381865afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f919061326a565b6040518363ffffffff1660e01b8152600401611a6c929190613297565b6020604051808303816000875af1158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf91906132d5565b505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2290613374565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9190613406565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c789190612958565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb90613498565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a9061352a565b60405180910390fd5b600e60029054906101000a900460ff1680611dc75750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e1b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5190613596565b60405180910390fd5b60008103611e7357611e6e83836000612268565b6121a8565b6000611e7e30610cd8565b90506000600d548210159050808015611ea45750600e60009054906101000a900460ff16155b8015611efd5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f1857506000600a54600954611f169190612e55565b115b8015611f6e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f865750600e60019054906101000a900460ff165b15611fcb576001600e60006101000a81548160ff021916908315150217905550611faf826124d1565b6000600e60006101000a81548160ff0219169083151502179055505b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061206e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120855750600e60009054906101000a900460ff165b156120935760009050612159565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036120f2576009549050612158565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361215157600a549050612157565b600b5490505b5b5b60008111156121995760006064828661217291906135b6565b61217c9190613048565b9050808561218a91906135f8565b9450612197873083612268565b505b6121a4868686612268565b5050505b505050565b6000814710156121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e990613678565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683604051612218906136c9565b60006040518083038185875af1925050503d8060008114612255576040519150601f19603f3d011682016040523d82523d6000602084013e61225a565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ce90613750565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233d906137e2565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c390613874565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461245f9190612e55565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124c39190612958565b60405180910390a350505050565b60004790506000600267ffffffffffffffff8111156124f3576124f2613894565b5b6040519080825280602002602001820160405280156125215781602001602082028036833780820191505090505b5090503081600081518110612539576125386138c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126049190613907565b81600181518110612618576126176138c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016126b6959493929190613a2d565b600060405180830381600087803b1580156126d057600080fd5b505af19250505080156126e1575060015b6126ec575050612785565b600082476126fa91906135f8565b905061274781600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121ad90919063ffffffff16565b507f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b8482604051612779929190612d6b565b60405180910390a15050505b50565b600081519050919050565b600082825260208201905092915050565b60005b838110156127c25780820151818401526020810190506127a7565b60008484015250505050565b6000601f19601f8301169050919050565b60006127ea82612788565b6127f48185612793565b93506128048185602086016127a4565b61280d816127ce565b840191505092915050565b6000602082019050818103600083015261283281846127df565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061286a8261283f565b9050919050565b61287a8161285f565b811461288557600080fd5b50565b60008135905061289781612871565b92915050565b6000819050919050565b6128b08161289d565b81146128bb57600080fd5b50565b6000813590506128cd816128a7565b92915050565b600080604083850312156128ea576128e961283a565b5b60006128f885828601612888565b9250506020612909858286016128be565b9150509250929050565b60008115159050919050565b61292881612913565b82525050565b6000602082019050612943600083018461291f565b92915050565b6129528161289d565b82525050565b600060208201905061296d6000830184612949565b92915050565b6000819050919050565b600061299861299361298e8461283f565b612973565b61283f565b9050919050565b60006129aa8261297d565b9050919050565b60006129bc8261299f565b9050919050565b6129cc816129b1565b82525050565b60006020820190506129e760008301846129c3565b92915050565b600080600060608486031215612a0657612a0561283a565b5b6000612a14868287016128be565b9350506020612a25868287016128be565b9250506040612a36868287016128be565b9150509250925092565b600080600060608486031215612a5957612a5861283a565b5b6000612a6786828701612888565b9350506020612a7886828701612888565b9250506040612a89868287016128be565b9150509250925092565b600060ff82169050919050565b612aa981612a93565b82525050565b6000602082019050612ac46000830184612aa0565b92915050565b612ad38161285f565b82525050565b6000602082019050612aee6000830184612aca565b92915050565b600060208284031215612b0a57612b0961283a565b5b6000612b1884828501612888565b91505092915050565b612b2a81612913565b8114612b3557600080fd5b50565b600081359050612b4781612b21565b92915050565b60008060408385031215612b6457612b6361283a565b5b6000612b72858286016128be565b9250506020612b8385828601612b38565b9150509250929050565b60008060408385031215612ba457612ba361283a565b5b6000612bb285828601612888565b9250506020612bc385828601612b38565b9150509250929050565b60008060408385031215612be457612be361283a565b5b6000612bf285828601612888565b9250506020612c0385828601612888565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c5457607f821691505b602082108103612c6757612c66612c0d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca3602083612793565b9150612cae82612c6d565b602082019050919050565b60006020820190508181036000830152612cd281612c96565b9050919050565b7f43534c543a20546f74616c20466565732063616e6e6f7420657863656564207460008201527f6865206d6178696d756d00000000000000000000000000000000000000000000602082015250565b6000612d35602a83612793565b9150612d4082612cd9565b604082019050919050565b60006020820190508181036000830152612d6481612d28565b9050919050565b6000604082019050612d806000830185612949565b612d8d6020830184612949565b9392505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612df0602883612793565b9150612dfb82612d94565b604082019050919050565b60006020820190508181036000830152612e1f81612de3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e608261289d565b9150612e6b8361289d565b9250828201905080821115612e8357612e82612e26565b5b92915050565b7f43534c543a204665652072656365697665722063616e6e6f742062652074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b6000612ee5602d83612793565b9150612ef082612e89565b604082019050919050565b60006020820190508181036000830152612f1481612ed8565b9050919050565b7f43534c543a2054726164696e6720616c726561647920656e61626c65642e0000600082015250565b6000612f51601e83612793565b9150612f5c82612f1b565b602082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612fe3602583612793565b9150612fee82612f87565b604082019050919050565b6000602082019050818103600083015261301281612fd6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130538261289d565b915061305e8361289d565b92508261306e5761306d613019565b5b828204905092915050565b7f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560008201527f2067726561746572207468616e20302e3030303125206f6620746f74616c207360208201527f7570706c79000000000000000000000000000000000000000000000000000000604082015250565b60006130fb604583612793565b915061310682613079565b606082019050919050565b6000602082019050818103600083015261312a816130ee565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061318d602683612793565b915061319882613131565b604082019050919050565b600060208201905081810360008301526131bc81613180565b9050919050565b7f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360008201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e73000000602082015250565b600061321f603d83612793565b915061322a826131c3565b604082019050919050565b6000602082019050818103600083015261324e81613212565b9050919050565b600081519050613264816128a7565b92915050565b6000602082840312156132805761327f61283a565b5b600061328e84828501613255565b91505092915050565b60006040820190506132ac6000830185612aca565b6132b96020830184612949565b9392505050565b6000815190506132cf81612b21565b92915050565b6000602082840312156132eb576132ea61283a565b5b60006132f9848285016132c0565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061335e602483612793565b915061336982613302565b604082019050919050565b6000602082019050818103600083015261338d81613351565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133f0602283612793565b91506133fb82613394565b604082019050919050565b6000602082019050818103600083015261341f816133e3565b9050919050565b7f43534c543a207472616e736665722066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613482602483612793565b915061348d82613426565b604082019050919050565b600060208201905081810360008301526134b181613475565b9050919050565b7f43534c543a207472616e7366657220746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613514602283612793565b915061351f826134b8565b604082019050919050565b6000602082019050818103600083015261354381613507565b9050919050565b7f43534c543a2054726164696e67206e6f742079657420656e61626c6564210000600082015250565b6000613580601e83612793565b915061358b8261354a565b602082019050919050565b600060208201905081810360008301526135af81613573565b9050919050565b60006135c18261289d565b91506135cc8361289d565b92508282026135da8161289d565b915082820484148315176135f1576135f0612e26565b5b5092915050565b60006136038261289d565b915061360e8361289d565b925082820390508181111561362657613625612e26565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613662601d83612793565b915061366d8261362c565b602082019050919050565b6000602082019050818103600083015261369181613655565b9050919050565b600081905092915050565b50565b60006136b3600083613698565b91506136be826136a3565b600082019050919050565b60006136d4826136a6565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061373a602583612793565b9150613745826136de565b604082019050919050565b600060208201905081810360008301526137698161372d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137cc602383612793565b91506137d782613770565b604082019050919050565b600060208201905081810360008301526137fb816137bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061385e602683612793565b915061386982613802565b604082019050919050565b6000602082019050818103600083015261388d81613851565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061390181612871565b92915050565b60006020828403121561391d5761391c61283a565b5b600061392b848285016138f2565b91505092915050565b6000819050919050565b600061395961395461394f84613934565b612973565b61289d565b9050919050565b6139698161393e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139a48161285f565b82525050565b60006139b6838361399b565b60208301905092915050565b6000602082019050919050565b60006139da8261396f565b6139e4818561397a565b93506139ef8361398b565b8060005b83811015613a20578151613a0788826139aa565b9750613a12836139c2565b9250506001810190506139f3565b5085935050505092915050565b600060a082019050613a426000830188612949565b613a4f6020830187613960565b8181036040830152613a6181866139cf565b9050613a706060830185612aca565b613a7d6080830184612949565b969550505050505056fea2646970667358221220e0ba37f5cd901ac3bfce2c5cc61837ad8e2cfb185566a156da6e3af2f0c9091964736f6c63430008130033

Deployed Bytecode Sourcemap

6910:6093:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9104:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3445:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4246:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7181:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6988:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3721:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9899:453;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4400:451;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3635:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4856:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7032:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10689:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9722:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7151:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7310:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3822:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2728:128;;;;;;;;;;;;;:::i;:::-;;10408:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10721:194;;;;;;;;;;;;;:::i;:::-;;2552:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3538:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5056:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3942:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12128:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7215:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7125:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9551:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4102:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7247:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2861:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9206:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9104:97;9144:13;9162:35;;;;;;;;;;;;;;;;;;;9104:97;:::o;3445:88::-;3499:13;3524:5;3517:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3445:88;:::o;4246:149::-;4329:4;4338:39;4347:12;:10;:12::i;:::-;4361:7;4370:6;4338:8;:39::i;:::-;4387:4;4380:11;;4246:149;;;;:::o;7181:28::-;;;;:::o;6988:41::-;;;;;;;;;;;;;:::o;3721:96::-;3782:7;3801:12;;3794:19;;3721:96;:::o;9899:453::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10015:9:::1;10004:8;:20;;;;10039:10;10027:9;:22;;;;10068:14;10052:13;:30;;;;10108:2;10096:8;;:14;;10088:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10181:2;10168:9;;:15;;10160:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10258:1;10241:13;;:18;;10233:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10317:31;10328:9;;10339:8;;10317:31;;;;;;;:::i;:::-;;;;;;;;9899:453:::0;;;:::o;4400:451::-;4512:4;4521:24;4548:11;:19;4560:6;4548:19;;;;;;;;;;;;;;;:33;4568:12;:10;:12::i;:::-;4548:33;;;;;;;;;;;;;;;;4521:60;;4608:17;4588:16;:37;4584:205;;4658:6;4638:16;:26;;4630:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4725:57;4734:6;4742:12;:10;:12::i;:::-;4775:6;4756:16;:25;4725:8;:57::i;:::-;4584:205;4794:36;4804:6;4812:9;4823:6;4794:9;:36::i;:::-;4843:4;4836:11;;;4400:451;;;;;:::o;3635:81::-;3693:5;3710:2;3703:9;;3635:81;:::o;4856:195::-;4944:4;4953:80;4962:12;:10;:12::i;:::-;4976:7;5022:10;4985:11;:25;4997:12;:10;:12::i;:::-;4985:25;;;;;;;;;;;;;;;:34;5011:7;4985:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4953:8;:80::i;:::-;5043:4;5036:11;;4856:195;;;;:::o;7032:28::-;;;;;;;;;;;;;:::o;10689:26::-;;;;;;;;;;;;;:::o;9722:113::-;9787:4;9803:19;:28;9823:7;9803:28;;;;;;;;;;;;;;;;;;;;;;;;;9796:35;;9722:113;;;:::o;7151:24::-;;;;:::o;7310:23::-;;;;;;;;;;;;;:::o;3822:115::-;3896:7;3915:9;:18;3925:7;3915:18;;;;;;;;;;;;;;;;3908:25;;3822:115;;;:::o;2728:128::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2827:1:::1;2790:40;;2811:6;;;;;;;;;;;2790:40;;;;;;;;;;;;2850:1;2833:6;;:19;;;;;;;;;;;;;;;;;;2728:128::o:0;10408:229::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10510:1:::1;10486:26;;:12;:26;;::::0;10478:84:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10579:12;10565:11;;:26;;;;;;;;;;;;;;;;;;10602:31;10621:11;;;;;;;;;;;10602:31;;;;;;:::i;:::-;;;;;;;;10408:229:::0;:::o;10721:194::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10776:14:::1;;;;;;;;;;;10775:15;10767:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10845:4;10828:14;;:21;;;;;;;;;;;;;;;;;;10866:4;10852:11;;:18;;;;;;;;;;;;;;;;;;10881:30;10896:14;;;;;;;;;;;10881:30;;;;;;:::i;:::-;;;;;;;;10721:194::o:0;2552:67::-;2590:7;2609:6;;;;;;;;;;;2602:13;;2552:67;:::o;3538:92::-;3594:13;3619:7;3612:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3538:92;:::o;5056:358::-;5149:4;5158:24;5185:11;:25;5197:12;:10;:12::i;:::-;5185:25;;;;;;;;;;;;;;;:34;5211:7;5185:34;;;;;;;;;;;;;;;;5158:61;;5250:15;5230:16;:35;;5222:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5323:67;5332:12;:10;:12::i;:::-;5346:7;5374:15;5355:16;:34;5323:8;:67::i;:::-;5406:4;5399:11;;;5056:358;;;;:::o;3942:155::-;4028:4;4037:42;4047:12;:10;:12::i;:::-;4061:9;4072:6;4037:9;:42::i;:::-;4089:4;4082:11;;3942:155;;;;:::o;12128:331::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12254:9:::1;12238:13;:11;:13::i;:::-;:25;;;;:::i;:::-;12226:9;:37;12218:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;12361:9;12340:18;:30;;;;12387:12;12373:11;;:26;;;;;;;;;;;;;;;;;;12410:45;12436:18;;12410:45;;;;;;:::i;:::-;;;;;;;;12128:331:::0;;:::o;7215:26::-;;;;;;;;;;;;;:::o;7125:23::-;;;;:::o;9551:166::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9660:8:::1;9629:19;:28;9649:7;9629:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;9695:7;9679:34;;;9704:8;9679:34;;;;;;:::i;:::-;;;;;;;;9551:166:::0;;:::o;4102:139::-;4191:7;4210:11;:18;4222:5;4210:18;;;;;;;;;;;;;;;:27;4229:7;4210:27;;;;;;;;;;;;;;;;4203:34;;4102:139;;;;:::o;7247:33::-;;;;:::o;2861:216::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2962:1:::1;2942:22;;:8;:22;;::::0;2934:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3044:8;3015:38;;3036:6;;;;;;;;;;;3015:38;;;;;;;;;;;;3065:8;3056:6;;:17;;;;;;;;;;;;;;;;;;2861:216:::0;:::o;9206:340::-;2666:12;:10;:12::i;:::-;2656:22;;:6;;;;;;;;;;;:22;;;2648:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9294:4:::1;9277:22;;:5;:22;;::::0;9269:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9389:3;9372:21;;:5;:21;;::::0;9368:95:::1;;9398:52;9428:21;9406:10;9398:29;;;;:52;;;;:::i;:::-;;9453:7;;9368:95;9475:5;9468:22;;;9491:10;9510:5;9503:23;;;9535:4;9503:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9468:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2718:1;9206:340:::0;:::o;1950:86::-;2003:7;2022:10;2015:17;;1950:86;:::o;6585:317::-;6702:1;6685:19;;:5;:19;;;6677:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6775:1;6756:21;;:7;:21;;;6748:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6852:6;6822:11;:18;6834:5;6822:18;;;;;;;;;;;;;;;:27;6841:7;6822:27;;;;;;;;;;;;;;;:36;;;;6882:7;6866:32;;6875:5;6866:32;;;6891:6;6866:32;;;;;;:::i;:::-;;;;;;;;6585:317;;;:::o;10920:1203::-;11024:1;11008:18;;:4;:18;;;11000:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11092:1;11078:16;;:2;:16;;;11070:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11144:14;;;;;;;;;;;:43;;;;11162:19;:25;11182:4;11162:25;;;;;;;;;;;;;;;;;;;;;;;;;11144:43;:70;;;;11191:19;:23;11211:2;11191:23;;;;;;;;;;;;;;;;;;;;;;;;;11144:70;11136:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;11269:1;11259:6;:11;11255:61;;11275:28;11291:4;11297:2;11301:1;11275:15;:28::i;:::-;11306:7;;11255:61;11321:28;11352:24;11370:4;11352:9;:24::i;:::-;11321:55;;11382:12;11421:18;;11397:20;:42;;11382:57;;11449:7;:21;;;;;11462:8;;;;;;;;;;;11461:9;11449:21;:45;;;;;11481:13;;;;;;;;;;;11475:19;;:2;:19;;;11449:45;:74;;;;;11522:1;11510:9;;11499:8;;:20;;;;:::i;:::-;:24;11449:74;:105;;;;;11529:19;:25;11549:4;11529:25;;;;;;;;;;;;;;;;;;;;;;;;;11528:26;11449:105;:121;;;;;11559:11;;;;;;;;;;;11449:121;11445:215;;;11588:4;11577:8;;:15;;;;;;;;;;;;;;;;;;11598:36;11613:20;11598:14;:36::i;:::-;11651:5;11640:8;;:16;;;;;;;;;;;;;;;;;;11445:215;11665:18;11690:19;:25;11710:4;11690:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;11719:19;:23;11739:2;11719:23;;;;;;;;;;;;;;;;;;;;;;;;;11690:52;:64;;;;11746:8;;;;;;;;;;;11690:64;11686:251;;;11772:1;11759:14;;11686:251;;;11795:13;;;;;;;;;;;11787:21;;:4;:21;;;11783:154;;11826:8;;11813:21;;11783:154;;;11854:13;;;;;;;;;;;11848:19;;:2;:19;;;11844:93;;11885:9;;11872:22;;11844:93;;;11920:13;;11907:26;;11844:93;11783:154;11686:251;11959:1;11946:10;:14;11942:139;;;11965:12;12004:3;11990:10;11981:6;:19;;;;:::i;:::-;11980:27;;;;:::i;:::-;11965:42;;12028:4;12019:6;:13;;;;:::i;:::-;12010:22;;12035:42;12051:4;12065;12072;12035:15;:42::i;:::-;11962:119;11942:139;12086:33;12102:4;12108:2;12112:6;12086:15;:33::i;:::-;10997:1126;;;10920:1203;;;;:::o;1655:258::-;1734:4;1775:6;1750:21;:31;;1742:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1822:12;1840:9;:14;;1862:6;1840:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1821:52;;;1883:7;1876:14;;;1655:258;;;;:::o;5419:508::-;5541:1;5523:20;;:6;:20;;;5515:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5617:1;5596:23;;:9;:23;;;5588:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5665:21;5689:9;:17;5699:6;5689:17;;;;;;;;;;;;;;;;5665:41;;5734:6;5717:13;:23;;5709:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5835:6;5819:13;:22;5799:9;:17;5809:6;5799:17;;;;;;;;;;;;;;;:42;;;;5871:6;5847:9;:20;5857:9;5847:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5905:9;5888:35;;5897:6;5888:35;;;5916:6;5888:35;;;;;;:::i;:::-;;;;;;;;5512:415;5419:508;;;:::o;12464:536::-;12520:22;12545:21;12520:46;;12572:21;12610:1;12596:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12572:40;;12633:4;12615;12620:1;12615:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12651:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12641:4;12646:1;12641:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;12683:15;;;;;;;;;;;:66;;;12752:11;12766:1;12770:4;12785;12793:15;12683:128;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12679:155;;12824:7;;;;12679:155;12839:18;12884:14;12860:21;:38;;;;:::i;:::-;12839:59;;12904:42;12935:10;12912:11;;;;;;;;;;;12904:30;;;;:42;;;;:::i;:::-;;12957:39;12972:11;12985:10;12957:39;;;;;;;:::i;:::-;;;;;;;;12517:483;;;12464:536;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:151::-;4219:9;4252:37;4283:5;4252:37;:::i;:::-;4239:50;;4144:151;;;:::o;4301:181::-;4413:62;4469:5;4413:62;:::i;:::-;4408:3;4401:75;4301:181;;:::o;4488:272::-;4606:4;4644:2;4633:9;4629:18;4621:26;;4657:96;4750:1;4739:9;4735:17;4726:6;4657:96;:::i;:::-;4488:272;;;;:::o;4766:619::-;4843:6;4851;4859;4908:2;4896:9;4887:7;4883:23;4879:32;4876:119;;;4914:79;;:::i;:::-;4876:119;5034:1;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5005:117;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;5289:2;5315:53;5360:7;5351:6;5340:9;5336:22;5315:53;:::i;:::-;5305:63;;5260:118;4766:619;;;;;:::o;5391:::-;5468:6;5476;5484;5533:2;5521:9;5512:7;5508:23;5504:32;5501:119;;;5539:79;;:::i;:::-;5501:119;5659:1;5684:53;5729:7;5720:6;5709:9;5705:22;5684:53;:::i;:::-;5674:63;;5630:117;5786:2;5812:53;5857:7;5848:6;5837:9;5833:22;5812:53;:::i;:::-;5802:63;;5757:118;5914:2;5940:53;5985:7;5976:6;5965:9;5961:22;5940:53;:::i;:::-;5930:63;;5885:118;5391:619;;;;;:::o;6016:86::-;6051:7;6091:4;6084:5;6080:16;6069:27;;6016:86;;;:::o;6108:112::-;6191:22;6207:5;6191:22;:::i;:::-;6186:3;6179:35;6108:112;;:::o;6226:214::-;6315:4;6353:2;6342:9;6338:18;6330:26;;6366:67;6430:1;6419:9;6415:17;6406:6;6366:67;:::i;:::-;6226:214;;;;:::o;6446:118::-;6533:24;6551:5;6533:24;:::i;:::-;6528:3;6521:37;6446:118;;:::o;6570:222::-;6663:4;6701:2;6690:9;6686:18;6678:26;;6714:71;6782:1;6771:9;6767:17;6758:6;6714:71;:::i;:::-;6570:222;;;;:::o;6798:329::-;6857:6;6906:2;6894:9;6885:7;6881:23;6877:32;6874:119;;;6912:79;;:::i;:::-;6874:119;7032:1;7057:53;7102:7;7093:6;7082:9;7078:22;7057:53;:::i;:::-;7047:63;;7003:117;6798:329;;;;:::o;7133:116::-;7203:21;7218:5;7203:21;:::i;:::-;7196:5;7193:32;7183:60;;7239:1;7236;7229:12;7183:60;7133:116;:::o;7255:133::-;7298:5;7336:6;7323:20;7314:29;;7352:30;7376:5;7352:30;:::i;:::-;7255:133;;;;:::o;7394:468::-;7459:6;7467;7516:2;7504:9;7495:7;7491:23;7487:32;7484:119;;;7522:79;;:::i;:::-;7484:119;7642:1;7667:53;7712:7;7703:6;7692:9;7688:22;7667:53;:::i;:::-;7657:63;;7613:117;7769:2;7795:50;7837:7;7828:6;7817:9;7813:22;7795:50;:::i;:::-;7785:60;;7740:115;7394:468;;;;;:::o;7868:::-;7933:6;7941;7990:2;7978:9;7969:7;7965:23;7961:32;7958:119;;;7996:79;;:::i;:::-;7958:119;8116:1;8141:53;8186:7;8177:6;8166:9;8162:22;8141:53;:::i;:::-;8131:63;;8087:117;8243:2;8269:50;8311:7;8302:6;8291:9;8287:22;8269:50;:::i;:::-;8259:60;;8214:115;7868:468;;;;;:::o;8342:474::-;8410:6;8418;8467:2;8455:9;8446:7;8442:23;8438:32;8435:119;;;8473:79;;:::i;:::-;8435:119;8593:1;8618:53;8663:7;8654:6;8643:9;8639:22;8618:53;:::i;:::-;8608:63;;8564:117;8720:2;8746:53;8791:7;8782:6;8771:9;8767:22;8746:53;:::i;:::-;8736:63;;8691:118;8342:474;;;;;:::o;8822:180::-;8870:77;8867:1;8860:88;8967:4;8964:1;8957:15;8991:4;8988:1;8981:15;9008:320;9052:6;9089:1;9083:4;9079:12;9069:22;;9136:1;9130:4;9126:12;9157:18;9147:81;;9213:4;9205:6;9201:17;9191:27;;9147:81;9275:2;9267:6;9264:14;9244:18;9241:38;9238:84;;9294:18;;:::i;:::-;9238:84;9059:269;9008:320;;;:::o;9334:182::-;9474:34;9470:1;9462:6;9458:14;9451:58;9334:182;:::o;9522:366::-;9664:3;9685:67;9749:2;9744:3;9685:67;:::i;:::-;9678:74;;9761:93;9850:3;9761:93;:::i;:::-;9879:2;9874:3;9870:12;9863:19;;9522:366;;;:::o;9894:419::-;10060:4;10098:2;10087:9;10083:18;10075:26;;10147:9;10141:4;10137:20;10133:1;10122:9;10118:17;10111:47;10175:131;10301:4;10175:131;:::i;:::-;10167:139;;9894:419;;;:::o;10319:229::-;10459:34;10455:1;10447:6;10443:14;10436:58;10528:12;10523:2;10515:6;10511:15;10504:37;10319:229;:::o;10554:366::-;10696:3;10717:67;10781:2;10776:3;10717:67;:::i;:::-;10710:74;;10793:93;10882:3;10793:93;:::i;:::-;10911:2;10906:3;10902:12;10895:19;;10554:366;;;:::o;10926:419::-;11092:4;11130:2;11119:9;11115:18;11107:26;;11179:9;11173:4;11169:20;11165:1;11154:9;11150:17;11143:47;11207:131;11333:4;11207:131;:::i;:::-;11199:139;;10926:419;;;:::o;11351:332::-;11472:4;11510:2;11499:9;11495:18;11487:26;;11523:71;11591:1;11580:9;11576:17;11567:6;11523:71;:::i;:::-;11604:72;11672:2;11661:9;11657:18;11648:6;11604:72;:::i;:::-;11351:332;;;;;:::o;11689:227::-;11829:34;11825:1;11817:6;11813:14;11806:58;11898:10;11893:2;11885:6;11881:15;11874:35;11689:227;:::o;11922:366::-;12064:3;12085:67;12149:2;12144:3;12085:67;:::i;:::-;12078:74;;12161:93;12250:3;12161:93;:::i;:::-;12279:2;12274:3;12270:12;12263:19;;11922:366;;;:::o;12294:419::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12547:9;12541:4;12537:20;12533:1;12522:9;12518:17;12511:47;12575:131;12701:4;12575:131;:::i;:::-;12567:139;;12294:419;;;:::o;12719:180::-;12767:77;12764:1;12757:88;12864:4;12861:1;12854:15;12888:4;12885:1;12878:15;12905:191;12945:3;12964:20;12982:1;12964:20;:::i;:::-;12959:25;;12998:20;13016:1;12998:20;:::i;:::-;12993:25;;13041:1;13038;13034:9;13027:16;;13062:3;13059:1;13056:10;13053:36;;;13069:18;;:::i;:::-;13053:36;12905:191;;;;:::o;13102:232::-;13242:34;13238:1;13230:6;13226:14;13219:58;13311:15;13306:2;13298:6;13294:15;13287:40;13102:232;:::o;13340:366::-;13482:3;13503:67;13567:2;13562:3;13503:67;:::i;:::-;13496:74;;13579:93;13668:3;13579:93;:::i;:::-;13697:2;13692:3;13688:12;13681:19;;13340:366;;;:::o;13712:419::-;13878:4;13916:2;13905:9;13901:18;13893:26;;13965:9;13959:4;13955:20;13951:1;13940:9;13936:17;13929:47;13993:131;14119:4;13993:131;:::i;:::-;13985:139;;13712:419;;;:::o;14137:180::-;14277:32;14273:1;14265:6;14261:14;14254:56;14137:180;:::o;14323:366::-;14465:3;14486:67;14550:2;14545:3;14486:67;:::i;:::-;14479:74;;14562:93;14651:3;14562:93;:::i;:::-;14680:2;14675:3;14671:12;14664:19;;14323:366;;;:::o;14695:419::-;14861:4;14899:2;14888:9;14884:18;14876:26;;14948:9;14942:4;14938:20;14934:1;14923:9;14919:17;14912:47;14976:131;15102:4;14976:131;:::i;:::-;14968:139;;14695:419;;;:::o;15120:224::-;15260:34;15256:1;15248:6;15244:14;15237:58;15329:7;15324:2;15316:6;15312:15;15305:32;15120:224;:::o;15350:366::-;15492:3;15513:67;15577:2;15572:3;15513:67;:::i;:::-;15506:74;;15589:93;15678:3;15589:93;:::i;:::-;15707:2;15702:3;15698:12;15691:19;;15350:366;;;:::o;15722:419::-;15888:4;15926:2;15915:9;15911:18;15903:26;;15975:9;15969:4;15965:20;15961:1;15950:9;15946:17;15939:47;16003:131;16129:4;16003:131;:::i;:::-;15995:139;;15722:419;;;:::o;16147:180::-;16195:77;16192:1;16185:88;16292:4;16289:1;16282:15;16316:4;16313:1;16306:15;16333:185;16373:1;16390:20;16408:1;16390:20;:::i;:::-;16385:25;;16424:20;16442:1;16424:20;:::i;:::-;16419:25;;16463:1;16453:35;;16468:18;;:::i;:::-;16453:35;16510:1;16507;16503:9;16498:14;;16333:185;;;;:::o;16524:293::-;16664:34;16660:1;16652:6;16648:14;16641:58;16733:34;16728:2;16720:6;16716:15;16709:59;16802:7;16797:2;16789:6;16785:15;16778:32;16524:293;:::o;16823:366::-;16965:3;16986:67;17050:2;17045:3;16986:67;:::i;:::-;16979:74;;17062:93;17151:3;17062:93;:::i;:::-;17180:2;17175:3;17171:12;17164:19;;16823:366;;;:::o;17195:419::-;17361:4;17399:2;17388:9;17384:18;17376:26;;17448:9;17442:4;17438:20;17434:1;17423:9;17419:17;17412:47;17476:131;17602:4;17476:131;:::i;:::-;17468:139;;17195:419;;;:::o;17620:225::-;17760:34;17756:1;17748:6;17744:14;17737:58;17829:8;17824:2;17816:6;17812:15;17805:33;17620:225;:::o;17851:366::-;17993:3;18014:67;18078:2;18073:3;18014:67;:::i;:::-;18007:74;;18090:93;18179:3;18090:93;:::i;:::-;18208:2;18203:3;18199:12;18192:19;;17851:366;;;:::o;18223:419::-;18389:4;18427:2;18416:9;18412:18;18404:26;;18476:9;18470:4;18466:20;18462:1;18451:9;18447:17;18440:47;18504:131;18630:4;18504:131;:::i;:::-;18496:139;;18223:419;;;:::o;18648:248::-;18788:34;18784:1;18776:6;18772:14;18765:58;18857:31;18852:2;18844:6;18840:15;18833:56;18648:248;:::o;18902:366::-;19044:3;19065:67;19129:2;19124:3;19065:67;:::i;:::-;19058:74;;19141:93;19230:3;19141:93;:::i;:::-;19259:2;19254:3;19250:12;19243:19;;18902:366;;;:::o;19274:419::-;19440:4;19478:2;19467:9;19463:18;19455:26;;19527:9;19521:4;19517:20;19513:1;19502:9;19498:17;19491:47;19555:131;19681:4;19555:131;:::i;:::-;19547:139;;19274:419;;;:::o;19699:143::-;19756:5;19787:6;19781:13;19772:22;;19803:33;19830:5;19803:33;:::i;:::-;19699:143;;;;:::o;19848:351::-;19918:6;19967:2;19955:9;19946:7;19942:23;19938:32;19935:119;;;19973:79;;:::i;:::-;19935:119;20093:1;20118:64;20174:7;20165:6;20154:9;20150:22;20118:64;:::i;:::-;20108:74;;20064:128;19848:351;;;;:::o;20205:332::-;20326:4;20364:2;20353:9;20349:18;20341:26;;20377:71;20445:1;20434:9;20430:17;20421:6;20377:71;:::i;:::-;20458:72;20526:2;20515:9;20511:18;20502:6;20458:72;:::i;:::-;20205:332;;;;;:::o;20543:137::-;20597:5;20628:6;20622:13;20613:22;;20644:30;20668:5;20644:30;:::i;:::-;20543:137;;;;:::o;20686:345::-;20753:6;20802:2;20790:9;20781:7;20777:23;20773:32;20770:119;;;20808:79;;:::i;:::-;20770:119;20928:1;20953:61;21006:7;20997:6;20986:9;20982:22;20953:61;:::i;:::-;20943:71;;20899:125;20686:345;;;;:::o;21037:223::-;21177:34;21173:1;21165:6;21161:14;21154:58;21246:6;21241:2;21233:6;21229:15;21222:31;21037:223;:::o;21266:366::-;21408:3;21429:67;21493:2;21488:3;21429:67;:::i;:::-;21422:74;;21505:93;21594:3;21505:93;:::i;:::-;21623:2;21618:3;21614:12;21607:19;;21266:366;;;:::o;21638:419::-;21804:4;21842:2;21831:9;21827:18;21819:26;;21891:9;21885:4;21881:20;21877:1;21866:9;21862:17;21855:47;21919:131;22045:4;21919:131;:::i;:::-;21911:139;;21638:419;;;:::o;22063:221::-;22203:34;22199:1;22191:6;22187:14;22180:58;22272:4;22267:2;22259:6;22255:15;22248:29;22063:221;:::o;22290:366::-;22432:3;22453:67;22517:2;22512:3;22453:67;:::i;:::-;22446:74;;22529:93;22618:3;22529:93;:::i;:::-;22647:2;22642:3;22638:12;22631:19;;22290:366;;;:::o;22662:419::-;22828:4;22866:2;22855:9;22851:18;22843:26;;22915:9;22909:4;22905:20;22901:1;22890:9;22886:17;22879:47;22943:131;23069:4;22943:131;:::i;:::-;22935:139;;22662:419;;;:::o;23087:223::-;23227:34;23223:1;23215:6;23211:14;23204:58;23296:6;23291:2;23283:6;23279:15;23272:31;23087:223;:::o;23316:366::-;23458:3;23479:67;23543:2;23538:3;23479:67;:::i;:::-;23472:74;;23555:93;23644:3;23555:93;:::i;:::-;23673:2;23668:3;23664:12;23657:19;;23316:366;;;:::o;23688:419::-;23854:4;23892:2;23881:9;23877:18;23869:26;;23941:9;23935:4;23931:20;23927:1;23916:9;23912:17;23905:47;23969:131;24095:4;23969:131;:::i;:::-;23961:139;;23688:419;;;:::o;24113:221::-;24253:34;24249:1;24241:6;24237:14;24230:58;24322:4;24317:2;24309:6;24305:15;24298:29;24113:221;:::o;24340:366::-;24482:3;24503:67;24567:2;24562:3;24503:67;:::i;:::-;24496:74;;24579:93;24668:3;24579:93;:::i;:::-;24697:2;24692:3;24688:12;24681:19;;24340:366;;;:::o;24712:419::-;24878:4;24916:2;24905:9;24901:18;24893:26;;24965:9;24959:4;24955:20;24951:1;24940:9;24936:17;24929:47;24993:131;25119:4;24993:131;:::i;:::-;24985:139;;24712:419;;;:::o;25137:180::-;25277:32;25273:1;25265:6;25261:14;25254:56;25137:180;:::o;25323:366::-;25465:3;25486:67;25550:2;25545:3;25486:67;:::i;:::-;25479:74;;25562:93;25651:3;25562:93;:::i;:::-;25680:2;25675:3;25671:12;25664:19;;25323:366;;;:::o;25695:419::-;25861:4;25899:2;25888:9;25884:18;25876:26;;25948:9;25942:4;25938:20;25934:1;25923:9;25919:17;25912:47;25976:131;26102:4;25976:131;:::i;:::-;25968:139;;25695:419;;;:::o;26120:410::-;26160:7;26183:20;26201:1;26183:20;:::i;:::-;26178:25;;26217:20;26235:1;26217:20;:::i;:::-;26212:25;;26272:1;26269;26265:9;26294:30;26312:11;26294:30;:::i;:::-;26283:41;;26473:1;26464:7;26460:15;26457:1;26454:22;26434:1;26427:9;26407:83;26384:139;;26503:18;;:::i;:::-;26384:139;26168:362;26120:410;;;;:::o;26536:194::-;26576:4;26596:20;26614:1;26596:20;:::i;:::-;26591:25;;26630:20;26648:1;26630:20;:::i;:::-;26625:25;;26674:1;26671;26667:9;26659:17;;26698:1;26692:4;26689:11;26686:37;;;26703:18;;:::i;:::-;26686:37;26536:194;;;;:::o;26736:179::-;26876:31;26872:1;26864:6;26860:14;26853:55;26736:179;:::o;26921:366::-;27063:3;27084:67;27148:2;27143:3;27084:67;:::i;:::-;27077:74;;27160:93;27249:3;27160:93;:::i;:::-;27278:2;27273:3;27269:12;27262:19;;26921:366;;;:::o;27293:419::-;27459:4;27497:2;27486:9;27482:18;27474:26;;27546:9;27540:4;27536:20;27532:1;27521:9;27517:17;27510:47;27574:131;27700:4;27574:131;:::i;:::-;27566:139;;27293:419;;;:::o;27718:147::-;27819:11;27856:3;27841:18;;27718:147;;;;:::o;27871:114::-;;:::o;27991:398::-;28150:3;28171:83;28252:1;28247:3;28171:83;:::i;:::-;28164:90;;28263:93;28352:3;28263:93;:::i;:::-;28381:1;28376:3;28372:11;28365:18;;27991:398;;;:::o;28395:379::-;28579:3;28601:147;28744:3;28601:147;:::i;:::-;28594:154;;28765:3;28758:10;;28395:379;;;:::o;28780:224::-;28920:34;28916:1;28908:6;28904:14;28897:58;28989:7;28984:2;28976:6;28972:15;28965:32;28780:224;:::o;29010:366::-;29152:3;29173:67;29237:2;29232:3;29173:67;:::i;:::-;29166:74;;29249:93;29338:3;29249:93;:::i;:::-;29367:2;29362:3;29358:12;29351:19;;29010:366;;;:::o;29382:419::-;29548:4;29586:2;29575:9;29571:18;29563:26;;29635:9;29629:4;29625:20;29621:1;29610:9;29606:17;29599:47;29663:131;29789:4;29663:131;:::i;:::-;29655:139;;29382:419;;;:::o;29807:222::-;29947:34;29943:1;29935:6;29931:14;29924:58;30016:5;30011:2;30003:6;29999:15;29992:30;29807:222;:::o;30035:366::-;30177:3;30198:67;30262:2;30257:3;30198:67;:::i;:::-;30191:74;;30274:93;30363:3;30274:93;:::i;:::-;30392:2;30387:3;30383:12;30376:19;;30035:366;;;:::o;30407:419::-;30573:4;30611:2;30600:9;30596:18;30588:26;;30660:9;30654:4;30650:20;30646:1;30635:9;30631:17;30624:47;30688:131;30814:4;30688:131;:::i;:::-;30680:139;;30407:419;;;:::o;30832:225::-;30972:34;30968:1;30960:6;30956:14;30949:58;31041:8;31036:2;31028:6;31024:15;31017:33;30832:225;:::o;31063:366::-;31205:3;31226:67;31290:2;31285:3;31226:67;:::i;:::-;31219:74;;31302:93;31391:3;31302:93;:::i;:::-;31420:2;31415:3;31411:12;31404:19;;31063:366;;;:::o;31435:419::-;31601:4;31639:2;31628:9;31624:18;31616:26;;31688:9;31682:4;31678:20;31674:1;31663:9;31659:17;31652:47;31716:131;31842:4;31716:131;:::i;:::-;31708:139;;31435:419;;;:::o;31860:180::-;31908:77;31905:1;31898:88;32005:4;32002:1;31995:15;32029:4;32026:1;32019:15;32046:180;32094:77;32091:1;32084:88;32191:4;32188:1;32181:15;32215:4;32212:1;32205:15;32232:143;32289:5;32320:6;32314:13;32305:22;;32336:33;32363:5;32336:33;:::i;:::-;32232:143;;;;:::o;32381:351::-;32451:6;32500:2;32488:9;32479:7;32475:23;32471:32;32468:119;;;32506:79;;:::i;:::-;32468:119;32626:1;32651:64;32707:7;32698:6;32687:9;32683:22;32651:64;:::i;:::-;32641:74;;32597:128;32381:351;;;;:::o;32738:85::-;32783:7;32812:5;32801:16;;32738:85;;;:::o;32829:158::-;32887:9;32920:61;32938:42;32947:32;32973:5;32947:32;:::i;:::-;32938:42;:::i;:::-;32920:61;:::i;:::-;32907:74;;32829:158;;;:::o;32993:147::-;33088:45;33127:5;33088:45;:::i;:::-;33083:3;33076:58;32993:147;;:::o;33146:114::-;33213:6;33247:5;33241:12;33231:22;;33146:114;;;:::o;33266:184::-;33365:11;33399:6;33394:3;33387:19;33439:4;33434:3;33430:14;33415:29;;33266:184;;;;:::o;33456:132::-;33523:4;33546:3;33538:11;;33576:4;33571:3;33567:14;33559:22;;33456:132;;;:::o;33594:108::-;33671:24;33689:5;33671:24;:::i;:::-;33666:3;33659:37;33594:108;;:::o;33708:179::-;33777:10;33798:46;33840:3;33832:6;33798:46;:::i;:::-;33876:4;33871:3;33867:14;33853:28;;33708:179;;;;:::o;33893:113::-;33963:4;33995;33990:3;33986:14;33978:22;;33893:113;;;:::o;34042:732::-;34161:3;34190:54;34238:5;34190:54;:::i;:::-;34260:86;34339:6;34334:3;34260:86;:::i;:::-;34253:93;;34370:56;34420:5;34370:56;:::i;:::-;34449:7;34480:1;34465:284;34490:6;34487:1;34484:13;34465:284;;;34566:6;34560:13;34593:63;34652:3;34637:13;34593:63;:::i;:::-;34586:70;;34679:60;34732:6;34679:60;:::i;:::-;34669:70;;34525:224;34512:1;34509;34505:9;34500:14;;34465:284;;;34469:14;34765:3;34758:10;;34166:608;;;34042:732;;;;:::o;34780:831::-;35043:4;35081:3;35070:9;35066:19;35058:27;;35095:71;35163:1;35152:9;35148:17;35139:6;35095:71;:::i;:::-;35176:80;35252:2;35241:9;35237:18;35228:6;35176:80;:::i;:::-;35303:9;35297:4;35293:20;35288:2;35277:9;35273:18;35266:48;35331:108;35434:4;35425:6;35331:108;:::i;:::-;35323:116;;35449:72;35517:2;35506:9;35502:18;35493:6;35449:72;:::i;:::-;35531:73;35599:3;35588:9;35584:19;35575:6;35531:73;:::i;:::-;34780:831;;;;;;;;:::o

Swarm Source

ipfs://e0ba37f5cd901ac3bfce2c5cc61837ad8e2cfb185566a156da6e3af2f0c90919
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.