ERC-20
Overview
Max Total Supply
1,000,000,000 TUBBY
Holders
37
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Source Code Verified (Exact Match)
Contract Name:
RainbowTubby
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-08-30
*/
// SPDX-License-Identifier: UNLICENSE
/*
Tubby Rainbow by 𝓜𝓪𝓽𝓽 𝓕𝓾𝓻𝓲𝓮 ($TUBBY) is a community-driven meme coin inspired by the surreal and playful artwork of Matt Furie,
particularly his Tubby Rainbow creation. Combining humor, nostalgia, and vibrant creativity, $TUBBY is designed to celebrate internet culture while providing a fun and engaging way for people to join the decentralized meme economy.
TG : https://t.me/tubbyrainbowcoin
X : https://x.com/rainbowtubby
Web : https://rainbowtubbz.xyz
Click below to verify you're human
*/
pragma solidity 0.8.23;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
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);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
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);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
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);
}
contract RainbowTubby is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
address payable private _taxWallet;
uint256 private _initialBuyTax=23;
uint256 private _initialSellTax=23;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=20;
uint256 private _reduceSellTaxAt=28;
uint256 private _preventSwapBefore=20;
uint256 private _transferTax=0;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1000000000 * 10**_decimals;
string private constant _name = unicode"Tubby Rainbow by 𝓜𝓪𝓽𝓽 𝓕𝓾𝓻𝓲𝓮";
string private constant _symbol = unicode"TUBBY";
uint256 public _maxTxAmount = 20000000 * 10**_decimals;
uint256 public _maxWalletSize = 20000000 * 10**_decimals;
uint256 public _taxSwapThreshold= 2000000 * 10**_decimals;
uint256 public _maxTaxSwap= 13000000* 10**_decimals;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool public tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTxAmountUpdated(uint _maxTxAmount);
event OpenTrade(address indexed owner, uint256 timestamp);
event TransferTaxUpdated(uint _tax);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_taxWallet = payable(_msgSender());
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function getTaxDetails() public view returns (
uint256 initialBuyTax,
uint256 initialSellTax,
uint256 finalBuyTax,
uint256 finalSellTax,
uint256 transferTax
) {
return (
_initialBuyTax,
_initialSellTax,
_finalBuyTax,
_finalSellTax,
_transferTax
);
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (from != owner() && to != owner() && to != _taxWallet) {
if(_buyCount==0){
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
}
if(_buyCount>0){
taxAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
_buyCount++;
}
if(to == uniswapV2Pair && from!= address(this) ){
taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 8, "Only 8 sells per block!");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function removeLimit() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function removeTranTax() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function openTrade() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
emit OpenTrade(owner(), block.timestamp);
}
function reduceFee(uint256 _newFee) external{
require(_msgSender()==_taxWallet);
require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
_finalBuyTax=_newFee;
_finalSellTax=_newFee;
}
receive() external payable {}
function rescueETH() external onlyOwner {
payable(owner()).transfer(address(this).balance);
}
function manualSwap() external {
require(_msgSender()==_taxWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0 && swapEnabled){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OpenTrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTaxDetails","outputs":[{"internalType":"uint256","name":"initialBuyTax","type":"uint256"},{"internalType":"uint256","name":"initialSellTax","type":"uint256"},{"internalType":"uint256","name":"finalBuyTax","type":"uint256"},{"internalType":"uint256","name":"finalSellTax","type":"uint256"},{"internalType":"uint256","name":"transferTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTranTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052601760055560176006555f6007555f6008556014600955601c600a556014600b555f600c555f600d556009600a6200003d9190620005fc565b6301312d006200004e91906200064c565b600e556009600a620000619190620005fc565b6301312d006200007291906200064c565b600f556009600a620000859190620005fc565b621e84806200009591906200064c565b6010556009600a620000a89190620005fc565b62c65d40620000b891906200064c565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f60155534801562000103575f80fd5b505f620001156200043c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c16200043c60201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002109190620005fc565b633b9aca006200022191906200064c565b60015f620002346200043c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002866200044360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b06200043c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200040e9190620005fc565b633b9aca006200041f91906200064c565b6040516200042e9190620006a7565b60405180910390a3620006c2565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f457808604811115620004cc57620004cb6200046a565b5b6001851615620004dc5780820291505b8081029050620004ec8562000497565b9450620004ac565b94509492505050565b5f826200050e5760019050620005e0565b816200051d575f9050620005e0565b8160018114620005365760028114620005415762000577565b6001915050620005e0565b60ff8411156200055657620005556200046a565b5b8360020a91508482111562000570576200056f6200046a565b5b50620005e0565b5060208310610133831016604e8410600b8410161715620005b15782820a905083811115620005ab57620005aa6200046a565b5b620005e0565b620005c08484846001620004a3565b92509050818404811115620005da57620005d96200046a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060882620005e7565b91506200061583620005f0565b9250620006447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004fd565b905092915050565b5f6200065882620005e7565b91506200066583620005e7565b92508282026200067581620005e7565b915082820484148315176200068f576200068e6200046a565b5b5092915050565b620006a181620005e7565b82525050565b5f602082019050620006bc5f83018462000696565b92915050565b6132e080620006d05f395ff3fe608060405260043610610143575f3560e01c806370a08231116100b5578063a9059cbb1161006e578063a9059cbb146103ee578063bf474bed1461042a578063dd62ed3e14610454578063ec1f3f6314610490578063fb201b1d146104b8578063ffb54a99146104ce5761014a565b806370a08231146102f4578063715018a6146103305780637d1db4a5146103465780638da5cb5b146103705780638f9a55c01461039a57806395d89b41146103c45761014a565b80631fee5894116101075780631fee58941461021e57806320800a001461024c57806323b872dd14610262578063313ce5671461029e57806351bc3c85146102c857806362256589146102de5761014a565b806302fa1f4a1461014e57806306fdde0314610164578063095ea7b31461018e5780630faee56f146101ca57806318160ddd146101f45761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b506101626104f8565b005b34801561016f575f80fd5b506101786105cc565b6040516101859190612353565b60405180910390f35b348015610199575f80fd5b506101b460048036038101906101af9190612404565b6105ec565b6040516101c1919061245c565b60405180910390f35b3480156101d5575f80fd5b506101de610609565b6040516101eb9190612484565b60405180910390f35b3480156101ff575f80fd5b5061020861060f565b6040516102159190612484565b60405180910390f35b348015610229575f80fd5b50610232610632565b60405161024395949392919061249d565b60405180910390f35b348015610257575f80fd5b50610260610657565b005b34801561026d575f80fd5b50610288600480360381019061028391906124ee565b610738565b604051610295919061245c565b60405180910390f35b3480156102a9575f80fd5b506102b261080c565b6040516102bf9190612559565b60405180910390f35b3480156102d3575f80fd5b506102dc610814565b005b3480156102e9575f80fd5b506102f26108c3565b005b3480156102ff575f80fd5b5061031a60048036038101906103159190612572565b6109f2565b6040516103279190612484565b60405180910390f35b34801561033b575f80fd5b50610344610a38565b005b348015610351575f80fd5b5061035a610b86565b6040516103679190612484565b60405180910390f35b34801561037b575f80fd5b50610384610b8c565b60405161039191906125ac565b60405180910390f35b3480156103a5575f80fd5b506103ae610bb3565b6040516103bb9190612484565b60405180910390f35b3480156103cf575f80fd5b506103d8610bb9565b6040516103e59190612353565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f9190612404565b610bf6565b604051610421919061245c565b60405180910390f35b348015610435575f80fd5b5061043e610c13565b60405161044b9190612484565b60405180910390f35b34801561045f575f80fd5b5061047a600480360381019061047591906125c5565b610c19565b6040516104879190612484565b60405180910390f35b34801561049b575f80fd5b506104b660048036038101906104b19190612603565b610c9b565b005b3480156104c3575f80fd5b506104cc610d27565b005b3480156104d9575f80fd5b506104e261129e565b6040516104ef919061245c565b60405180910390f35b6105006112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058390612678565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105c291906126d8565b60405180910390a1565b606060405180606001604052806036815260200161327560369139905090565b5f6105ff6105f86112b1565b84846112b8565b6001905092915050565b60115481565b5f6009600a61061e919061284d565b633b9aca0061062d9190612897565b905090565b5f805f805f600554600654600754600854600c54945094509450945094509091929394565b61065f6112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290612678565b60405180910390fd5b6106f3610b8c565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610735573d5f803e3d5ffd5b50565b5f61074484848461147b565b610801846107506112b1565b6107fc8560405180606001604052806028815260200161324d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107b36112b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611db59092919063ffffffff16565b6112b8565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108546112b1565b73ffffffffffffffffffffffffffffffffffffffff1614610873575f80fd5b5f61087d306109f2565b90505f8111801561089a5750601360169054906101000a900460ff165b156108a9576108a881611e17565b5b5f4790505f8111156108bf576108be81612082565b5b5050565b6108cb6112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612678565b60405180910390fd5b6009600a610965919061284d565b633b9aca006109749190612897565b600e819055506009600a610988919061284d565b633b9aca006109979190612897565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109cc919061284d565b633b9aca006109db9190612897565b6040516109e89190612484565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a406112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390612678565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f5455424259000000000000000000000000000000000000000000000000000000815250905090565b5f610c09610c026112b1565b848461147b565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cdb6112b1565b73ffffffffffffffffffffffffffffffffffffffff1614610cfa575f80fd5b6007548111158015610d0e57506008548111155b610d16575f80fd5b806007819055508060088190555050565b610d2f6112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db290612678565b60405180910390fd5b601360149054906101000a900460ff1615610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290612922565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea73060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e93919061284d565b633b9aca00610ea29190612897565b6112b8565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f359190612954565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fdf9190612954565b6040518363ffffffff1660e01b8152600401610ffc92919061297f565b6020604051808303815f875af1158015611018573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103c9190612954565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c3306109f2565b5f806110cd610b8c565b426040518863ffffffff1660e01b81526004016110ef969594939291906129a6565b60606040518083038185885af115801561110b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111309190612a19565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d0929190612a69565b6020604051808303815f875af11580156111ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112109190612aba565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555061124f610b8c565b73ffffffffffffffffffffffffffffffffffffffff167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a36426040516112949190612484565b60405180910390a2565b601360149054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d90612b55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612be3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161146e9190612484565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090612c71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612cff565b60405180910390fd5b5f8111611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090612d8d565b60405180910390fd5b5f6115a2610b8c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561161057506115e0610b8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611669575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b05575f600d54036116b6576116b360646116a5600954600d541161169257600554611696565b6007545b856120ea90919063ffffffff16565b61216190919063ffffffff16565b90505b5f600d5411156116eb576116e860646116da600c54856120ea90919063ffffffff16565b61216190919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611794575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117e7575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118df57600e54821115611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890612df5565b60405180910390fd5b600f548261183e856109f2565b6118489190612e13565b1115611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612e90565b60405180910390fd5b6118c560646118b7600954600d54116118a4576005546118a8565b6007545b856120ea90919063ffffffff16565b61216190919063ffffffff16565b9050600d5f8154809291906118d990612eae565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ab576119a8606461199a600a54600d54116119875760065461198b565b6008545b856120ea90919063ffffffff16565b61216190919063ffffffff16565b90505b5f6119b5306109f2565b9050601360159054906101000a900460ff16158015611a20575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a385750601360169054906101000a900460ff165b8015611a45575060105481115b8015611a545750600b54600d54115b15611b0357601554431115611a6b575f6014819055505b600860145410611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa790612f3f565b60405180910390fd5b611acd611ac884611ac3846011546121aa565b6121aa565b611e17565b5f4790505f811115611ae357611ae247612082565b5b60145f815480929190611af590612eae565b919050555043601581905550505b505b5f811115611c0457611b5d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bfb9190612484565b60405180910390a35b611c548260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cf7611cab828461221f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9a848661221f90919063ffffffff16565b604051611da79190612484565b60405180910390a350505050565b5f838311158290611dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df39190612353565b60405180910390fd5b505f8385611e0a9190612f5d565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e4e57611e4d612f90565b5b604051908082528060200260200182016040528015611e7c5781602001602082028036833780820191505090505b50905030815f81518110611e9357611e92612fbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5b9190612954565b81600181518110611f6f57611f6e612fbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fd53060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b8565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120379594939291906130a1565b5f604051808303815f87803b15801561204e575f80fd5b505af1158015612060573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120e6573d5f803e3d5ffd5b5050565b5f8083036120fa575f905061215b565b5f82846121079190612897565b90508284826121169190613126565b14612156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214d906131c6565b60405180910390fd5b809150505b92915050565b5f6121a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612268565b905092915050565b5f8183116121b857826121ba565b815b905092915050565b5f8082846121d09190612e13565b905083811015612215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220c9061322e565b60405180910390fd5b8091505092915050565b5f61226083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611db5565b905092915050565b5f80831182906122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a59190612353565b60405180910390fd5b505f83856122bc9190613126565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123005780820151818401526020810190506122e5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612325826122c9565b61232f81856122d3565b935061233f8185602086016122e3565b6123488161230b565b840191505092915050565b5f6020820190508181035f83015261236b818461231b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123a082612377565b9050919050565b6123b081612396565b81146123ba575f80fd5b50565b5f813590506123cb816123a7565b92915050565b5f819050919050565b6123e3816123d1565b81146123ed575f80fd5b50565b5f813590506123fe816123da565b92915050565b5f806040838503121561241a57612419612373565b5b5f612427858286016123bd565b9250506020612438858286016123f0565b9150509250929050565b5f8115159050919050565b61245681612442565b82525050565b5f60208201905061246f5f83018461244d565b92915050565b61247e816123d1565b82525050565b5f6020820190506124975f830184612475565b92915050565b5f60a0820190506124b05f830188612475565b6124bd6020830187612475565b6124ca6040830186612475565b6124d76060830185612475565b6124e46080830184612475565b9695505050505050565b5f805f6060848603121561250557612504612373565b5b5f612512868287016123bd565b9350506020612523868287016123bd565b9250506040612534868287016123f0565b9150509250925092565b5f60ff82169050919050565b6125538161253e565b82525050565b5f60208201905061256c5f83018461254a565b92915050565b5f6020828403121561258757612586612373565b5b5f612594848285016123bd565b91505092915050565b6125a681612396565b82525050565b5f6020820190506125bf5f83018461259d565b92915050565b5f80604083850312156125db576125da612373565b5b5f6125e8858286016123bd565b92505060206125f9858286016123bd565b9150509250929050565b5f6020828403121561261857612617612373565b5b5f612625848285016123f0565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126626020836122d3565b915061266d8261262e565b602082019050919050565b5f6020820190508181035f83015261268f81612656565b9050919050565b5f819050919050565b5f819050919050565b5f6126c26126bd6126b884612696565b61269f565b6123d1565b9050919050565b6126d2816126a8565b82525050565b5f6020820190506126eb5f8301846126c9565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127735780860481111561274f5761274e6126f1565b5b600185161561275e5780820291505b808102905061276c8561271e565b9450612733565b94509492505050565b5f8261278b5760019050612846565b81612798575f9050612846565b81600181146127ae57600281146127b8576127e7565b6001915050612846565b60ff8411156127ca576127c96126f1565b5b8360020a9150848211156127e1576127e06126f1565b5b50612846565b5060208310610133831016604e8410600b841016171561281c5782820a905083811115612817576128166126f1565b5b612846565b612829848484600161272a565b925090508184048111156128405761283f6126f1565b5b81810290505b9392505050565b5f612857826123d1565b91506128628361253e565b925061288f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461277c565b905092915050565b5f6128a1826123d1565b91506128ac836123d1565b92508282026128ba816123d1565b915082820484148315176128d1576128d06126f1565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61290c6017836122d3565b9150612917826128d8565b602082019050919050565b5f6020820190508181035f83015261293981612900565b9050919050565b5f8151905061294e816123a7565b92915050565b5f6020828403121561296957612968612373565b5b5f61297684828501612940565b91505092915050565b5f6040820190506129925f83018561259d565b61299f602083018461259d565b9392505050565b5f60c0820190506129b95f83018961259d565b6129c66020830188612475565b6129d360408301876126c9565b6129e060608301866126c9565b6129ed608083018561259d565b6129fa60a0830184612475565b979650505050505050565b5f81519050612a13816123da565b92915050565b5f805f60608486031215612a3057612a2f612373565b5b5f612a3d86828701612a05565b9350506020612a4e86828701612a05565b9250506040612a5f86828701612a05565b9150509250925092565b5f604082019050612a7c5f83018561259d565b612a896020830184612475565b9392505050565b612a9981612442565b8114612aa3575f80fd5b50565b5f81519050612ab481612a90565b92915050565b5f60208284031215612acf57612ace612373565b5b5f612adc84828501612aa6565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b3f6024836122d3565b9150612b4a82612ae5565b604082019050919050565b5f6020820190508181035f830152612b6c81612b33565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bcd6022836122d3565b9150612bd882612b73565b604082019050919050565b5f6020820190508181035f830152612bfa81612bc1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c5b6025836122d3565b9150612c6682612c01565b604082019050919050565b5f6020820190508181035f830152612c8881612c4f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ce96023836122d3565b9150612cf482612c8f565b604082019050919050565b5f6020820190508181035f830152612d1681612cdd565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d776029836122d3565b9150612d8282612d1d565b604082019050919050565b5f6020820190508181035f830152612da481612d6b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612ddf6019836122d3565b9150612dea82612dab565b602082019050919050565b5f6020820190508181035f830152612e0c81612dd3565b9050919050565b5f612e1d826123d1565b9150612e28836123d1565b9250828201905080821115612e4057612e3f6126f1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e7a601a836122d3565b9150612e8582612e46565b602082019050919050565b5f6020820190508181035f830152612ea781612e6e565b9050919050565b5f612eb8826123d1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612eea57612ee96126f1565b5b600182019050919050565b7f4f6e6c7920382073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612f296017836122d3565b9150612f3482612ef5565b602082019050919050565b5f6020820190508181035f830152612f5681612f1d565b9050919050565b5f612f67826123d1565b9150612f72836123d1565b9250828203905081811115612f8a57612f896126f1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61301c81612396565b82525050565b5f61302d8383613013565b60208301905092915050565b5f602082019050919050565b5f61304f82612fea565b6130598185612ff4565b935061306483613004565b805f5b8381101561309457815161307b8882613022565b975061308683613039565b925050600181019050613067565b5085935050505092915050565b5f60a0820190506130b45f830188612475565b6130c160208301876126c9565b81810360408301526130d38186613045565b90506130e2606083018561259d565b6130ef6080830184612475565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613130826123d1565b915061313b836123d1565b92508261314b5761314a6130f9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b06021836122d3565b91506131bb82613156565b604082019050919050565b5f6020820190508181035f8301526131dd816131a4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613218601b836122d3565b9150613223826131e4565b602082019050919050565b5f6020820190508181035f8301526132458161320c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655475626279205261696e626f7720627920f09d939cf09d93aaf09d93bdf09d93bd20f09d9395f09d93bef09d93bbf09d93b2f09d93aea26469706673582212203258cc7f8aac0402dd9152bc8b450bae169cd0569e89ddba514c4e703ac1f99364736f6c63430008170033
Deployed Bytecode
0x608060405260043610610143575f3560e01c806370a08231116100b5578063a9059cbb1161006e578063a9059cbb146103ee578063bf474bed1461042a578063dd62ed3e14610454578063ec1f3f6314610490578063fb201b1d146104b8578063ffb54a99146104ce5761014a565b806370a08231146102f4578063715018a6146103305780637d1db4a5146103465780638da5cb5b146103705780638f9a55c01461039a57806395d89b41146103c45761014a565b80631fee5894116101075780631fee58941461021e57806320800a001461024c57806323b872dd14610262578063313ce5671461029e57806351bc3c85146102c857806362256589146102de5761014a565b806302fa1f4a1461014e57806306fdde0314610164578063095ea7b31461018e5780630faee56f146101ca57806318160ddd146101f45761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b506101626104f8565b005b34801561016f575f80fd5b506101786105cc565b6040516101859190612353565b60405180910390f35b348015610199575f80fd5b506101b460048036038101906101af9190612404565b6105ec565b6040516101c1919061245c565b60405180910390f35b3480156101d5575f80fd5b506101de610609565b6040516101eb9190612484565b60405180910390f35b3480156101ff575f80fd5b5061020861060f565b6040516102159190612484565b60405180910390f35b348015610229575f80fd5b50610232610632565b60405161024395949392919061249d565b60405180910390f35b348015610257575f80fd5b50610260610657565b005b34801561026d575f80fd5b50610288600480360381019061028391906124ee565b610738565b604051610295919061245c565b60405180910390f35b3480156102a9575f80fd5b506102b261080c565b6040516102bf9190612559565b60405180910390f35b3480156102d3575f80fd5b506102dc610814565b005b3480156102e9575f80fd5b506102f26108c3565b005b3480156102ff575f80fd5b5061031a60048036038101906103159190612572565b6109f2565b6040516103279190612484565b60405180910390f35b34801561033b575f80fd5b50610344610a38565b005b348015610351575f80fd5b5061035a610b86565b6040516103679190612484565b60405180910390f35b34801561037b575f80fd5b50610384610b8c565b60405161039191906125ac565b60405180910390f35b3480156103a5575f80fd5b506103ae610bb3565b6040516103bb9190612484565b60405180910390f35b3480156103cf575f80fd5b506103d8610bb9565b6040516103e59190612353565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f9190612404565b610bf6565b604051610421919061245c565b60405180910390f35b348015610435575f80fd5b5061043e610c13565b60405161044b9190612484565b60405180910390f35b34801561045f575f80fd5b5061047a600480360381019061047591906125c5565b610c19565b6040516104879190612484565b60405180910390f35b34801561049b575f80fd5b506104b660048036038101906104b19190612603565b610c9b565b005b3480156104c3575f80fd5b506104cc610d27565b005b3480156104d9575f80fd5b506104e261129e565b6040516104ef919061245c565b60405180910390f35b6105006112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058390612678565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105c291906126d8565b60405180910390a1565b606060405180606001604052806036815260200161327560369139905090565b5f6105ff6105f86112b1565b84846112b8565b6001905092915050565b60115481565b5f6009600a61061e919061284d565b633b9aca0061062d9190612897565b905090565b5f805f805f600554600654600754600854600c54945094509450945094509091929394565b61065f6112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290612678565b60405180910390fd5b6106f3610b8c565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610735573d5f803e3d5ffd5b50565b5f61074484848461147b565b610801846107506112b1565b6107fc8560405180606001604052806028815260200161324d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107b36112b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611db59092919063ffffffff16565b6112b8565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108546112b1565b73ffffffffffffffffffffffffffffffffffffffff1614610873575f80fd5b5f61087d306109f2565b90505f8111801561089a5750601360169054906101000a900460ff165b156108a9576108a881611e17565b5b5f4790505f8111156108bf576108be81612082565b5b5050565b6108cb6112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612678565b60405180910390fd5b6009600a610965919061284d565b633b9aca006109749190612897565b600e819055506009600a610988919061284d565b633b9aca006109979190612897565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109cc919061284d565b633b9aca006109db9190612897565b6040516109e89190612484565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a406112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390612678565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f5455424259000000000000000000000000000000000000000000000000000000815250905090565b5f610c09610c026112b1565b848461147b565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cdb6112b1565b73ffffffffffffffffffffffffffffffffffffffff1614610cfa575f80fd5b6007548111158015610d0e57506008548111155b610d16575f80fd5b806007819055508060088190555050565b610d2f6112b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db290612678565b60405180910390fd5b601360149054906101000a900460ff1615610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290612922565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea73060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e93919061284d565b633b9aca00610ea29190612897565b6112b8565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f359190612954565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fdf9190612954565b6040518363ffffffff1660e01b8152600401610ffc92919061297f565b6020604051808303815f875af1158015611018573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103c9190612954565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c3306109f2565b5f806110cd610b8c565b426040518863ffffffff1660e01b81526004016110ef969594939291906129a6565b60606040518083038185885af115801561110b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111309190612a19565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d0929190612a69565b6020604051808303815f875af11580156111ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112109190612aba565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555061124f610b8c565b73ffffffffffffffffffffffffffffffffffffffff167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a36426040516112949190612484565b60405180910390a2565b601360149054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d90612b55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612be3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161146e9190612484565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090612c71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612cff565b60405180910390fd5b5f8111611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090612d8d565b60405180910390fd5b5f6115a2610b8c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561161057506115e0610b8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611669575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b05575f600d54036116b6576116b360646116a5600954600d541161169257600554611696565b6007545b856120ea90919063ffffffff16565b61216190919063ffffffff16565b90505b5f600d5411156116eb576116e860646116da600c54856120ea90919063ffffffff16565b61216190919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611794575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117e7575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118df57600e54821115611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890612df5565b60405180910390fd5b600f548261183e856109f2565b6118489190612e13565b1115611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612e90565b60405180910390fd5b6118c560646118b7600954600d54116118a4576005546118a8565b6007545b856120ea90919063ffffffff16565b61216190919063ffffffff16565b9050600d5f8154809291906118d990612eae565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ab576119a8606461199a600a54600d54116119875760065461198b565b6008545b856120ea90919063ffffffff16565b61216190919063ffffffff16565b90505b5f6119b5306109f2565b9050601360159054906101000a900460ff16158015611a20575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a385750601360169054906101000a900460ff165b8015611a45575060105481115b8015611a545750600b54600d54115b15611b0357601554431115611a6b575f6014819055505b600860145410611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa790612f3f565b60405180910390fd5b611acd611ac884611ac3846011546121aa565b6121aa565b611e17565b5f4790505f811115611ae357611ae247612082565b5b60145f815480929190611af590612eae565b919050555043601581905550505b505b5f811115611c0457611b5d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bfb9190612484565b60405180910390a35b611c548260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cf7611cab828461221f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9a848661221f90919063ffffffff16565b604051611da79190612484565b60405180910390a350505050565b5f838311158290611dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df39190612353565b60405180910390fd5b505f8385611e0a9190612f5d565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e4e57611e4d612f90565b5b604051908082528060200260200182016040528015611e7c5781602001602082028036833780820191505090505b50905030815f81518110611e9357611e92612fbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5b9190612954565b81600181518110611f6f57611f6e612fbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fd53060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b8565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120379594939291906130a1565b5f604051808303815f87803b15801561204e575f80fd5b505af1158015612060573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120e6573d5f803e3d5ffd5b5050565b5f8083036120fa575f905061215b565b5f82846121079190612897565b90508284826121169190613126565b14612156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214d906131c6565b60405180910390fd5b809150505b92915050565b5f6121a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612268565b905092915050565b5f8183116121b857826121ba565b815b905092915050565b5f8082846121d09190612e13565b905083811015612215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220c9061322e565b60405180910390fd5b8091505092915050565b5f61226083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611db5565b905092915050565b5f80831182906122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a59190612353565b60405180910390fd5b505f83856122bc9190613126565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123005780820151818401526020810190506122e5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612325826122c9565b61232f81856122d3565b935061233f8185602086016122e3565b6123488161230b565b840191505092915050565b5f6020820190508181035f83015261236b818461231b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123a082612377565b9050919050565b6123b081612396565b81146123ba575f80fd5b50565b5f813590506123cb816123a7565b92915050565b5f819050919050565b6123e3816123d1565b81146123ed575f80fd5b50565b5f813590506123fe816123da565b92915050565b5f806040838503121561241a57612419612373565b5b5f612427858286016123bd565b9250506020612438858286016123f0565b9150509250929050565b5f8115159050919050565b61245681612442565b82525050565b5f60208201905061246f5f83018461244d565b92915050565b61247e816123d1565b82525050565b5f6020820190506124975f830184612475565b92915050565b5f60a0820190506124b05f830188612475565b6124bd6020830187612475565b6124ca6040830186612475565b6124d76060830185612475565b6124e46080830184612475565b9695505050505050565b5f805f6060848603121561250557612504612373565b5b5f612512868287016123bd565b9350506020612523868287016123bd565b9250506040612534868287016123f0565b9150509250925092565b5f60ff82169050919050565b6125538161253e565b82525050565b5f60208201905061256c5f83018461254a565b92915050565b5f6020828403121561258757612586612373565b5b5f612594848285016123bd565b91505092915050565b6125a681612396565b82525050565b5f6020820190506125bf5f83018461259d565b92915050565b5f80604083850312156125db576125da612373565b5b5f6125e8858286016123bd565b92505060206125f9858286016123bd565b9150509250929050565b5f6020828403121561261857612617612373565b5b5f612625848285016123f0565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126626020836122d3565b915061266d8261262e565b602082019050919050565b5f6020820190508181035f83015261268f81612656565b9050919050565b5f819050919050565b5f819050919050565b5f6126c26126bd6126b884612696565b61269f565b6123d1565b9050919050565b6126d2816126a8565b82525050565b5f6020820190506126eb5f8301846126c9565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127735780860481111561274f5761274e6126f1565b5b600185161561275e5780820291505b808102905061276c8561271e565b9450612733565b94509492505050565b5f8261278b5760019050612846565b81612798575f9050612846565b81600181146127ae57600281146127b8576127e7565b6001915050612846565b60ff8411156127ca576127c96126f1565b5b8360020a9150848211156127e1576127e06126f1565b5b50612846565b5060208310610133831016604e8410600b841016171561281c5782820a905083811115612817576128166126f1565b5b612846565b612829848484600161272a565b925090508184048111156128405761283f6126f1565b5b81810290505b9392505050565b5f612857826123d1565b91506128628361253e565b925061288f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461277c565b905092915050565b5f6128a1826123d1565b91506128ac836123d1565b92508282026128ba816123d1565b915082820484148315176128d1576128d06126f1565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61290c6017836122d3565b9150612917826128d8565b602082019050919050565b5f6020820190508181035f83015261293981612900565b9050919050565b5f8151905061294e816123a7565b92915050565b5f6020828403121561296957612968612373565b5b5f61297684828501612940565b91505092915050565b5f6040820190506129925f83018561259d565b61299f602083018461259d565b9392505050565b5f60c0820190506129b95f83018961259d565b6129c66020830188612475565b6129d360408301876126c9565b6129e060608301866126c9565b6129ed608083018561259d565b6129fa60a0830184612475565b979650505050505050565b5f81519050612a13816123da565b92915050565b5f805f60608486031215612a3057612a2f612373565b5b5f612a3d86828701612a05565b9350506020612a4e86828701612a05565b9250506040612a5f86828701612a05565b9150509250925092565b5f604082019050612a7c5f83018561259d565b612a896020830184612475565b9392505050565b612a9981612442565b8114612aa3575f80fd5b50565b5f81519050612ab481612a90565b92915050565b5f60208284031215612acf57612ace612373565b5b5f612adc84828501612aa6565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b3f6024836122d3565b9150612b4a82612ae5565b604082019050919050565b5f6020820190508181035f830152612b6c81612b33565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bcd6022836122d3565b9150612bd882612b73565b604082019050919050565b5f6020820190508181035f830152612bfa81612bc1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c5b6025836122d3565b9150612c6682612c01565b604082019050919050565b5f6020820190508181035f830152612c8881612c4f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ce96023836122d3565b9150612cf482612c8f565b604082019050919050565b5f6020820190508181035f830152612d1681612cdd565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d776029836122d3565b9150612d8282612d1d565b604082019050919050565b5f6020820190508181035f830152612da481612d6b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612ddf6019836122d3565b9150612dea82612dab565b602082019050919050565b5f6020820190508181035f830152612e0c81612dd3565b9050919050565b5f612e1d826123d1565b9150612e28836123d1565b9250828201905080821115612e4057612e3f6126f1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e7a601a836122d3565b9150612e8582612e46565b602082019050919050565b5f6020820190508181035f830152612ea781612e6e565b9050919050565b5f612eb8826123d1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612eea57612ee96126f1565b5b600182019050919050565b7f4f6e6c7920382073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612f296017836122d3565b9150612f3482612ef5565b602082019050919050565b5f6020820190508181035f830152612f5681612f1d565b9050919050565b5f612f67826123d1565b9150612f72836123d1565b9250828203905081811115612f8a57612f896126f1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61301c81612396565b82525050565b5f61302d8383613013565b60208301905092915050565b5f602082019050919050565b5f61304f82612fea565b6130598185612ff4565b935061306483613004565b805f5b8381101561309457815161307b8882613022565b975061308683613039565b925050600181019050613067565b5085935050505092915050565b5f60a0820190506130b45f830188612475565b6130c160208301876126c9565b81810360408301526130d38186613045565b90506130e2606083018561259d565b6130ef6080830184612475565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613130826123d1565b915061313b836123d1565b92508261314b5761314a6130f9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b06021836122d3565b91506131bb82613156565b604082019050919050565b5f6020820190508181035f8301526131dd816131a4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613218601b836122d3565b9150613223826131e4565b602082019050919050565b5f6020820190508181035f8301526132458161320c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655475626279205261696e626f7720627920f09d939cf09d93aaf09d93bdf09d93bd20f09d9395f09d93bef09d93bbf09d93b2f09d93aea26469706673582212203258cc7f8aac0402dd9152bc8b450bae169cd0569e89ddba514c4e703ac1f99364736f6c63430008170033
Deployed Bytecode Sourcemap
4015:9025:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11339:115;;;;;;;;;;;;;:::i;:::-;;6055:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7315:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5148:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6332:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6562:419;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;12561:107;;;;;;;;;;;;;:::i;:::-;;7484:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6241:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12674:363;;;;;;;;;;;;;:::i;:::-;;11173:158;;;;;;;;;;;;;:::i;:::-;;6435:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3096:148;;;;;;;;;;;;;:::i;:::-;;4960:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2882:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5021:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6146:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6989:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5084:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7164:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12298:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11562:722;;;;;;;;;;;;;:::i;:::-;;5297:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11339:115;3019:12;:10;:12::i;:::-;3009:22;;:6;;;;;;;;;;:22;;;3001:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11408:1:::1;11393:12;:16;;;;11425:21;11444:1;11425:21;;;;;;:::i;:::-;;;;;;;;11339:115::o:0;6055:83::-;6092:13;6125:5;;;;;;;;;;;;;;;;;6118:12;;6055:83;:::o;7315:161::-;7390:4;7407:39;7416:12;:10;:12::i;:::-;7430:7;7439:6;7407:8;:39::i;:::-;7464:4;7457:11;;7315:161;;;;:::o;5148:51::-;;;;:::o;6332:95::-;6385:7;4727:1;4783:2;:13;;;;:::i;:::-;4770:10;:26;;;;:::i;:::-;6405:14;;6332:95;:::o;6562:419::-;6618:21;6650:22;6683:19;6713:20;6744:19;6816:14;;6849:15;;6883:12;;6914:13;;6946:12;;6790:183;;;;;;;;;;6562:419;;;;;:::o;12561:107::-;3019:12;:10;:12::i;:::-;3009:22;;:6;;;;;;;;;;:22;;;3001:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12620:7:::1;:5;:7::i;:::-;12612:25;;:48;12638:21;12612:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12561:107::o:0;7484:313::-;7582:4;7599:36;7609:6;7617:9;7628:6;7599:9;:36::i;:::-;7646:121;7655:6;7663:12;:10;:12::i;:::-;7677:89;7715:6;7677:89;;;;;;;;;;;;;;;;;:11;:19;7689:6;7677:19;;;;;;;;;;;;;;;:33;7697:12;:10;:12::i;:::-;7677:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7646:8;:121::i;:::-;7785:4;7778:11;;7484:313;;;;;:::o;6241:83::-;6282:5;4727:1;6300:16;;6241:83;:::o;12674:363::-;12738:10;;;;;;;;;;;12724:24;;:12;:10;:12::i;:::-;:24;;;12716:33;;;;;;12760:20;12781:24;12799:4;12781:9;:24::i;:::-;12760:45;;12832:1;12819:12;:14;:29;;;;;12837:11;;;;;;;;;;;12819:29;12816:88;;;12862:30;12879:12;12862:16;:30::i;:::-;12816:88;12914:18;12933:21;12914:40;;12979:1;12968:10;:12;12965:65;;;12994:24;13007:10;12994:12;:24::i;:::-;12965:65;12705:332;;12674:363::o;11173:158::-;3019:12;:10;:12::i;:::-;3009:22;;:6;;;;;;;;;;:22;;;3001:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4727:1:::1;4783:2;:13;;;;:::i;:::-;4770:10;:26;;;;:::i;:::-;11225:12;:22;;;;4727:1;4783:2;:13;;;;:::i;:::-;4770:10;:26;;;;:::i;:::-;11258:14;:22;;;;11296:27;4727:1;4783:2;:13;;;;:::i;:::-;4770:10;:26;;;;:::i;:::-;11296:27;;;;;;:::i;:::-;;;;;;;;11173:158::o:0;6435:119::-;6501:7;6528:9;:18;6538:7;6528:18;;;;;;;;;;;;;;;;6521:25;;6435:119;;;:::o;3096:148::-;3019:12;:10;:12::i;:::-;3009:22;;:6;;;;;;;;;;:22;;;3001:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3203:1:::1;3166:40;;3187:6;::::0;::::1;;;;;;;;3166:40;;;;;;;;;;;;3234:1;3217:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3096:148::o:0;4960:54::-;;;;:::o;2882:79::-;2920:7;2947:6;;;;;;;;;;;2940:13;;2882:79;:::o;5021:56::-;;;;:::o;6146:87::-;6185:13;6218:7;;;;;;;;;;;;;;;;;6211:14;;6146:87;:::o;6989:167::-;7067:4;7084:42;7094:12;:10;:12::i;:::-;7108:9;7119:6;7084:9;:42::i;:::-;7144:4;7137:11;;6989:167;;;;:::o;5084:57::-;;;;:::o;7164:143::-;7245:7;7272:11;:18;7284:5;7272:18;;;;;;;;;;;;;;;:27;7291:7;7272:27;;;;;;;;;;;;;;;;7265:34;;7164:143;;;;:::o;12298:218::-;12373:10;;;;;;;;;;;12359:24;;:12;:10;:12::i;:::-;:24;;;12351:33;;;;;;12410:12;;12401:7;:21;;:47;;;;;12435:13;;12426:7;:22;;12401:47;12393:56;;;;;;12471:7;12458:12;:20;;;;12501:7;12487:13;:21;;;;12298:218;:::o;11562:722::-;3019:12;:10;:12::i;:::-;3009:22;;:6;;;;;;;;;;:22;;;3001:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11624:11:::1;;;;;;;;;;;11623:12;11615:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11710:42;11673:15;;:80;;;;;;;;;;;;;;;;;;11764:58;11781:4;11796:15;;;;;;;;;;;4727:1;4783:2;:13;;;;:::i;:::-;4770:10;:26;;;;:::i;:::-;11764:8;:58::i;:::-;11867:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11849:55;;;11913:4;11920:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11849:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11833:13;;:110;;;;;;;;;;;;;;;;;;11954:15;;;;;;;;;;;:31;;;11993:21;12024:4;12030:24;12048:4;12030:9;:24::i;:::-;12055:1;12057::::0;12059:7:::1;:5;:7::i;:::-;12067:15;11954:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12101:13;;;;;;;;;;;12094:29;;;12132:15;;;;;;;;;;;12150:14;12094:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12190:4;12176:11;;:18;;;;;;;;;;;;;;;;;;12219:4;12205:11;;:18;;;;;;;;;;;;;;;;;;12251:7;:5;:7::i;:::-;12241:35;;;12260:15;12241:35;;;;;;:::i;:::-;;;;;;;;11562:722::o:0;5297:23::-;;;;;;;;;;;;;:::o;637:98::-;690:7;717:10;710:17;;637:98;:::o;7805:335::-;7915:1;7898:19;;:5;:19;;;7890:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7996:1;7977:21;;:7;:21;;;7969:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8078:6;8048:11;:18;8060:5;8048:18;;;;;;;;;;;;;;;:27;8067:7;8048:27;;;;;;;;;;;;;;;:36;;;;8116:7;8100:32;;8109:5;8100:32;;;8125:6;8100:32;;;;;;:::i;:::-;;;;;;;;7805:335;;;:::o;8148:2418::-;8252:1;8236:18;;:4;:18;;;8228:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8329:1;8315:16;;:2;:16;;;8307:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8399:1;8390:6;:10;8382:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8457:17;8499:7;:5;:7::i;:::-;8491:15;;:4;:15;;;;:32;;;;;8516:7;:5;:7::i;:::-;8510:13;;:2;:13;;;;8491:32;:52;;;;;8533:10;;;;;;;;;;;8527:16;;:2;:16;;;;8491:52;8487:1723;;;8574:1;8563:9;;:12;8560:139;;8607:76;8679:3;8607:67;8629:15;;8619:9;;:25;8618:55;;8659:14;;8618:55;;;8646:12;;8618:55;8607:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8595:88;;8560:139;8726:1;8716:9;;:11;8713:95;;;8759:33;8788:3;8759:24;8770:12;;8759:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8747:45;;8713:95;8836:13;;;;;;;;;;;8828:21;;:4;:21;;;:55;;;;;8867:15;;;;;;;;;;;8853:30;;:2;:30;;;;8828:55;:83;;;;;8889:18;:22;8908:2;8889:22;;;;;;;;;;;;;;;;;;;;;;;;;8887:24;8828:83;8824:420;;;8951:12;;8941:6;:22;;8933:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9046:14;;9036:6;9020:13;9030:2;9020:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9012:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9122:76;9194:3;9122:67;9144:15;;9134:9;;:25;9133:55;;9174:14;;9133:55;;;9161:12;;9133:55;9122:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9110:88;;9217:9;;:11;;;;;;;;;:::i;:::-;;;;;;8824:420;9269:13;;;;;;;;;;;9263:19;;:2;:19;;;:43;;;;;9301:4;9286:20;;:4;:20;;;;9263:43;9260:174;;;9339:79;9414:3;9339:70;9361:16;;9351:9;;:26;9350:58;;9393:15;;9350:58;;;9379:13;;9350:58;9339:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9327:91;;9260:174;9450:28;9481:24;9499:4;9481:9;:24::i;:::-;9450:55;;9525:6;;;;;;;;;;;9524:7;:30;;;;;9541:13;;;;;;;;;;;9535:19;;:2;:19;;;9524:30;:45;;;;;9558:11;;;;;;;;;;;9524:45;:89;;;;;9596:17;;9573:20;:40;9524:89;:123;;;;;9629:18;;9617:9;;:30;9524:123;9520:679;;;9687:13;;9672:12;:28;9668:90;;;9737:1;9725:9;:13;;;;9668:90;9796:1;9784:9;;:13;9776:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9844:69;9861:51;9865:6;9873:38;9877:20;9899:11;;9873:3;:38::i;:::-;9861:3;:51::i;:::-;9844:16;:69::i;:::-;9932:26;9961:21;9932:50;;10026:1;10005:18;:22;10001:106;;;10052:35;10065:21;10052:12;:35::i;:::-;10001:106;10125:9;;:11;;;;;;;;;:::i;:::-;;;;;;10171:12;10155:13;:28;;;;9649:550;9520:679;8545:1665;8487:1723;10235:1;10225:9;:11;10222:161;;;10275:39;10304:9;10275;:24;10293:4;10275:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10250:9;:24;10268:4;10250:24;;;;;;;;;;;;;;;:64;;;;10355:4;10332:39;;10341:4;10332:39;;;10361:9;10332:39;;;;;;:::i;:::-;;;;;;;;10222:161;10409:27;10429:6;10409:9;:15;10419:4;10409:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10393:9;:15;10403:4;10393:15;;;;;;;;;;;;;;;:43;;;;10461:40;10479:21;10490:9;10479:6;:10;;:21;;;;:::i;:::-;10461:9;:13;10471:2;10461:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10447:9;:13;10457:2;10447:13;;;;;;;;;;;;;;;:54;;;;10532:2;10517:41;;10526:4;10517:41;;;10536:21;10547:9;10536:6;:10;;:21;;;;:::i;:::-;10517:41;;;;;;:::i;:::-;;;;;;;;8217:2349;8148:2418;;;:::o;1774:190::-;1860:7;1893:1;1888;:6;;1896:12;1880:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1920:9;1936:1;1932;:5;;;;:::i;:::-;1920:17;;1955:1;1948:8;;;1774:190;;;;;:::o;10682:483::-;5673:4;5664:6;;:13;;;;;;;;;;;;;;;;;;10760:21:::1;10798:1;10784:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:40;;10829:4;10811;10816:1;10811:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10855:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10845:4;10850:1;10845:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10888:62;10905:4;10920:15;;;;;;;;;;;10938:11;10888:8;:62::i;:::-;10961:15;;;;;;;;;;;:66;;;11042:11;11068:1;11084:4;11111;11131:15;10961:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10749:416;5709:5:::0;5700:6;;:14;;;;;;;;;;;;;;;;;;10682:483;:::o;11462:92::-;11519:10;;;;;;;;;;;:19;;:27;11539:6;11519:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11462:92;:::o;1972:246::-;2030:7;2059:1;2054;:6;2050:47;;2084:1;2077:8;;;;2050:47;2107:9;2123:1;2119;:5;;;;:::i;:::-;2107:17;;2152:1;2147;2143;:5;;;;:::i;:::-;:10;2135:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:1;2202:8;;;1972:246;;;;;:::o;2226:132::-;2284:7;2311:39;2315:1;2318;2311:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2304:46;;2226:132;;;;:::o;10576:98::-;10633:7;10660:1;10658;:3;10657:9;;10665:1;10657:9;;;10663:1;10657:9;10650:16;;10576:98;;;;:::o;1443:179::-;1501:7;1521:9;1537:1;1533;:5;;;;:::i;:::-;1521:17;;1562:1;1557;:6;;1549:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1613:1;1606:8;;;1443:179;;;;:::o;1630:136::-;1688:7;1715:43;1719:1;1722;1715:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1708:50;;1630:136;;;;:::o;2366:189::-;2452:7;2484:1;2480;:5;2487:12;2472:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2511:9;2527:1;2523;:5;;;;:::i;:::-;2511:17;;2546:1;2539:8;;;2366:189;;;;;:::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:664::-;4003:4;4041:3;4030:9;4026:19;4018:27;;4055:71;4123:1;4112:9;4108:17;4099:6;4055:71;:::i;:::-;4136:72;4204:2;4193:9;4189:18;4180:6;4136:72;:::i;:::-;4218;4286:2;4275:9;4271:18;4262:6;4218:72;:::i;:::-;4300;4368:2;4357:9;4353:18;4344:6;4300:72;:::i;:::-;4382:73;4450:3;4439:9;4435:19;4426:6;4382:73;:::i;:::-;3798:664;;;;;;;;:::o;4468:619::-;4545:6;4553;4561;4610:2;4598:9;4589:7;4585:23;4581:32;4578:119;;;4616:79;;:::i;:::-;4578:119;4736:1;4761:53;4806:7;4797:6;4786:9;4782:22;4761:53;:::i;:::-;4751:63;;4707:117;4863:2;4889:53;4934:7;4925:6;4914:9;4910:22;4889:53;:::i;:::-;4879:63;;4834:118;4991:2;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4962:118;4468:619;;;;;:::o;5093:86::-;5128:7;5168:4;5161:5;5157:16;5146:27;;5093:86;;;:::o;5185:112::-;5268:22;5284:5;5268:22;:::i;:::-;5263:3;5256:35;5185:112;;:::o;5303:214::-;5392:4;5430:2;5419:9;5415:18;5407:26;;5443:67;5507:1;5496:9;5492:17;5483:6;5443:67;:::i;:::-;5303:214;;;;:::o;5523:329::-;5582:6;5631:2;5619:9;5610:7;5606:23;5602:32;5599:119;;;5637:79;;:::i;:::-;5599:119;5757:1;5782:53;5827:7;5818:6;5807:9;5803:22;5782:53;:::i;:::-;5772:63;;5728:117;5523:329;;;;:::o;5858:118::-;5945:24;5963:5;5945:24;:::i;:::-;5940:3;5933:37;5858:118;;:::o;5982:222::-;6075:4;6113:2;6102:9;6098:18;6090:26;;6126:71;6194:1;6183:9;6179:17;6170:6;6126:71;:::i;:::-;5982:222;;;;:::o;6210:474::-;6278:6;6286;6335:2;6323:9;6314:7;6310:23;6306:32;6303:119;;;6341:79;;:::i;:::-;6303:119;6461:1;6486:53;6531:7;6522:6;6511:9;6507:22;6486:53;:::i;:::-;6476:63;;6432:117;6588:2;6614:53;6659:7;6650:6;6639:9;6635:22;6614:53;:::i;:::-;6604:63;;6559:118;6210:474;;;;;:::o;6690:329::-;6749:6;6798:2;6786:9;6777:7;6773:23;6769:32;6766:119;;;6804:79;;:::i;:::-;6766:119;6924:1;6949:53;6994:7;6985:6;6974:9;6970:22;6949:53;:::i;:::-;6939:63;;6895:117;6690:329;;;;:::o;7025:182::-;7165:34;7161:1;7153:6;7149:14;7142:58;7025:182;:::o;7213:366::-;7355:3;7376:67;7440:2;7435:3;7376:67;:::i;:::-;7369:74;;7452:93;7541:3;7452:93;:::i;:::-;7570:2;7565:3;7561:12;7554:19;;7213:366;;;:::o;7585:419::-;7751:4;7789:2;7778:9;7774:18;7766:26;;7838:9;7832:4;7828:20;7824:1;7813:9;7809:17;7802:47;7866:131;7992:4;7866:131;:::i;:::-;7858:139;;7585:419;;;:::o;8010:85::-;8055:7;8084:5;8073:16;;8010:85;;;:::o;8101:60::-;8129:3;8150:5;8143:12;;8101:60;;;:::o;8167:158::-;8225:9;8258:61;8276:42;8285:32;8311:5;8285:32;:::i;:::-;8276:42;:::i;:::-;8258:61;:::i;:::-;8245:74;;8167:158;;;:::o;8331:147::-;8426:45;8465:5;8426:45;:::i;:::-;8421:3;8414:58;8331:147;;:::o;8484:238::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:79;8712:1;8701:9;8697:17;8688:6;8636:79;:::i;:::-;8484:238;;;;:::o;8728:180::-;8776:77;8773:1;8766:88;8873:4;8870:1;8863:15;8897:4;8894:1;8887:15;8914:102;8956:8;9003:5;9000:1;8996:13;8975:34;;8914:102;;;:::o;9022:848::-;9083:5;9090:4;9114:6;9105:15;;9138:5;9129:14;;9152:712;9173:1;9163:8;9160:15;9152:712;;;9268:4;9263:3;9259:14;9253:4;9250:24;9247:50;;;9277:18;;:::i;:::-;9247:50;9327:1;9317:8;9313:16;9310:451;;;9742:4;9735:5;9731:16;9722:25;;9310:451;9792:4;9786;9782:15;9774:23;;9822:32;9845:8;9822:32;:::i;:::-;9810:44;;9152:712;;;9022:848;;;;;;;:::o;9876:1073::-;9930:5;10121:8;10111:40;;10142:1;10133:10;;10144:5;;10111:40;10170:4;10160:36;;10187:1;10178:10;;10189:5;;10160:36;10256:4;10304:1;10299:27;;;;10340:1;10335:191;;;;10249:277;;10299:27;10317:1;10308:10;;10319:5;;;10335:191;10380:3;10370:8;10367:17;10364:43;;;10387:18;;:::i;:::-;10364:43;10436:8;10433:1;10429:16;10420:25;;10471:3;10464:5;10461:14;10458:40;;;10478:18;;:::i;:::-;10458:40;10511:5;;;10249:277;;10635:2;10625:8;10622:16;10616:3;10610:4;10607:13;10603:36;10585:2;10575:8;10572:16;10567:2;10561:4;10558:12;10554:35;10538:111;10535:246;;;10691:8;10685:4;10681:19;10672:28;;10726:3;10719:5;10716:14;10713:40;;;10733:18;;:::i;:::-;10713:40;10766:5;;10535:246;10806:42;10844:3;10834:8;10828:4;10825:1;10806:42;:::i;:::-;10791:57;;;;10880:4;10875:3;10871:14;10864:5;10861:25;10858:51;;;10889:18;;:::i;:::-;10858:51;10938:4;10931:5;10927:16;10918:25;;9876:1073;;;;;;:::o;10955:281::-;11013:5;11037:23;11055:4;11037:23;:::i;:::-;11029:31;;11081:25;11097:8;11081:25;:::i;:::-;11069:37;;11125:104;11162:66;11152:8;11146:4;11125:104;:::i;:::-;11116:113;;10955:281;;;;:::o;11242:410::-;11282:7;11305:20;11323:1;11305:20;:::i;:::-;11300:25;;11339:20;11357:1;11339:20;:::i;:::-;11334:25;;11394:1;11391;11387:9;11416:30;11434:11;11416:30;:::i;:::-;11405:41;;11595:1;11586:7;11582:15;11579:1;11576:22;11556:1;11549:9;11529:83;11506:139;;11625:18;;:::i;:::-;11506:139;11290:362;11242:410;;;;:::o;11658:173::-;11798:25;11794:1;11786:6;11782:14;11775:49;11658:173;:::o;11837:366::-;11979:3;12000:67;12064:2;12059:3;12000:67;:::i;:::-;11993:74;;12076:93;12165:3;12076:93;:::i;:::-;12194:2;12189:3;12185:12;12178:19;;11837:366;;;:::o;12209:419::-;12375:4;12413:2;12402:9;12398:18;12390:26;;12462:9;12456:4;12452:20;12448:1;12437:9;12433:17;12426:47;12490:131;12616:4;12490:131;:::i;:::-;12482:139;;12209:419;;;:::o;12634:143::-;12691:5;12722:6;12716:13;12707:22;;12738:33;12765:5;12738:33;:::i;:::-;12634:143;;;;:::o;12783:351::-;12853:6;12902:2;12890:9;12881:7;12877:23;12873:32;12870:119;;;12908:79;;:::i;:::-;12870:119;13028:1;13053:64;13109:7;13100:6;13089:9;13085:22;13053:64;:::i;:::-;13043:74;;12999:128;12783:351;;;;:::o;13140:332::-;13261:4;13299:2;13288:9;13284:18;13276:26;;13312:71;13380:1;13369:9;13365:17;13356:6;13312:71;:::i;:::-;13393:72;13461:2;13450:9;13446:18;13437:6;13393:72;:::i;:::-;13140:332;;;;;:::o;13478:807::-;13727:4;13765:3;13754:9;13750:19;13742:27;;13779:71;13847:1;13836:9;13832:17;13823:6;13779:71;:::i;:::-;13860:72;13928:2;13917:9;13913:18;13904:6;13860:72;:::i;:::-;13942:80;14018:2;14007:9;14003:18;13994:6;13942:80;:::i;:::-;14032;14108:2;14097:9;14093:18;14084:6;14032:80;:::i;:::-;14122:73;14190:3;14179:9;14175:19;14166:6;14122:73;:::i;:::-;14205;14273:3;14262:9;14258:19;14249:6;14205:73;:::i;:::-;13478:807;;;;;;;;;:::o;14291:143::-;14348:5;14379:6;14373:13;14364:22;;14395:33;14422:5;14395:33;:::i;:::-;14291:143;;;;:::o;14440:663::-;14528:6;14536;14544;14593:2;14581:9;14572:7;14568:23;14564:32;14561:119;;;14599:79;;:::i;:::-;14561:119;14719:1;14744:64;14800:7;14791:6;14780:9;14776:22;14744:64;:::i;:::-;14734:74;;14690:128;14857:2;14883:64;14939:7;14930:6;14919:9;14915:22;14883:64;:::i;:::-;14873:74;;14828:129;14996:2;15022:64;15078:7;15069:6;15058:9;15054:22;15022:64;:::i;:::-;15012:74;;14967:129;14440:663;;;;;:::o;15109:332::-;15230:4;15268:2;15257:9;15253:18;15245:26;;15281:71;15349:1;15338:9;15334:17;15325:6;15281:71;:::i;:::-;15362:72;15430:2;15419:9;15415:18;15406:6;15362:72;:::i;:::-;15109:332;;;;;:::o;15447:116::-;15517:21;15532:5;15517:21;:::i;:::-;15510:5;15507:32;15497:60;;15553:1;15550;15543:12;15497:60;15447:116;:::o;15569:137::-;15623:5;15654:6;15648:13;15639:22;;15670:30;15694:5;15670:30;:::i;:::-;15569:137;;;;:::o;15712:345::-;15779:6;15828:2;15816:9;15807:7;15803:23;15799:32;15796:119;;;15834:79;;:::i;:::-;15796:119;15954:1;15979:61;16032:7;16023:6;16012:9;16008:22;15979:61;:::i;:::-;15969:71;;15925:125;15712:345;;;;:::o;16063:223::-;16203:34;16199:1;16191:6;16187:14;16180:58;16272:6;16267:2;16259:6;16255:15;16248:31;16063:223;:::o;16292:366::-;16434:3;16455:67;16519:2;16514:3;16455:67;:::i;:::-;16448:74;;16531:93;16620:3;16531:93;:::i;:::-;16649:2;16644:3;16640:12;16633:19;;16292:366;;;:::o;16664:419::-;16830:4;16868:2;16857:9;16853:18;16845:26;;16917:9;16911:4;16907:20;16903:1;16892:9;16888:17;16881:47;16945:131;17071:4;16945:131;:::i;:::-;16937:139;;16664:419;;;:::o;17089:221::-;17229:34;17225:1;17217:6;17213:14;17206:58;17298:4;17293:2;17285:6;17281:15;17274:29;17089:221;:::o;17316:366::-;17458:3;17479:67;17543:2;17538:3;17479:67;:::i;:::-;17472:74;;17555:93;17644:3;17555:93;:::i;:::-;17673:2;17668:3;17664:12;17657:19;;17316:366;;;:::o;17688:419::-;17854:4;17892:2;17881:9;17877:18;17869:26;;17941:9;17935:4;17931:20;17927:1;17916:9;17912:17;17905:47;17969:131;18095:4;17969:131;:::i;:::-;17961:139;;17688:419;;;:::o;18113:224::-;18253:34;18249:1;18241:6;18237:14;18230:58;18322:7;18317:2;18309:6;18305:15;18298:32;18113:224;:::o;18343:366::-;18485:3;18506:67;18570:2;18565:3;18506:67;:::i;:::-;18499:74;;18582:93;18671:3;18582:93;:::i;:::-;18700:2;18695:3;18691:12;18684:19;;18343:366;;;:::o;18715:419::-;18881:4;18919:2;18908:9;18904:18;18896:26;;18968:9;18962:4;18958:20;18954:1;18943:9;18939:17;18932:47;18996:131;19122:4;18996:131;:::i;:::-;18988:139;;18715:419;;;:::o;19140:222::-;19280:34;19276:1;19268:6;19264:14;19257:58;19349:5;19344:2;19336:6;19332:15;19325:30;19140:222;:::o;19368:366::-;19510:3;19531:67;19595:2;19590:3;19531:67;:::i;:::-;19524:74;;19607:93;19696:3;19607:93;:::i;:::-;19725:2;19720:3;19716:12;19709:19;;19368:366;;;:::o;19740:419::-;19906:4;19944:2;19933:9;19929:18;19921:26;;19993:9;19987:4;19983:20;19979:1;19968:9;19964:17;19957:47;20021:131;20147:4;20021:131;:::i;:::-;20013:139;;19740:419;;;:::o;20165:228::-;20305:34;20301:1;20293:6;20289:14;20282:58;20374:11;20369:2;20361:6;20357:15;20350:36;20165:228;:::o;20399:366::-;20541:3;20562:67;20626:2;20621:3;20562:67;:::i;:::-;20555:74;;20638:93;20727:3;20638:93;:::i;:::-;20756:2;20751:3;20747:12;20740:19;;20399:366;;;:::o;20771:419::-;20937:4;20975:2;20964:9;20960:18;20952:26;;21024:9;21018:4;21014:20;21010:1;20999:9;20995:17;20988:47;21052:131;21178:4;21052:131;:::i;:::-;21044:139;;20771:419;;;:::o;21196:175::-;21336:27;21332:1;21324:6;21320:14;21313:51;21196:175;:::o;21377:366::-;21519:3;21540:67;21604:2;21599:3;21540:67;:::i;:::-;21533:74;;21616:93;21705:3;21616:93;:::i;:::-;21734:2;21729:3;21725:12;21718:19;;21377:366;;;:::o;21749:419::-;21915:4;21953:2;21942:9;21938:18;21930:26;;22002:9;21996:4;21992:20;21988:1;21977:9;21973:17;21966:47;22030:131;22156:4;22030:131;:::i;:::-;22022:139;;21749:419;;;:::o;22174:191::-;22214:3;22233:20;22251:1;22233:20;:::i;:::-;22228:25;;22267:20;22285:1;22267:20;:::i;:::-;22262:25;;22310:1;22307;22303:9;22296:16;;22331:3;22328:1;22325:10;22322:36;;;22338:18;;:::i;:::-;22322:36;22174:191;;;;:::o;22371:176::-;22511:28;22507:1;22499:6;22495:14;22488:52;22371:176;:::o;22553:366::-;22695:3;22716:67;22780:2;22775:3;22716:67;:::i;:::-;22709:74;;22792:93;22881:3;22792:93;:::i;:::-;22910:2;22905:3;22901:12;22894:19;;22553:366;;;:::o;22925:419::-;23091:4;23129:2;23118:9;23114:18;23106:26;;23178:9;23172:4;23168:20;23164:1;23153:9;23149:17;23142:47;23206:131;23332:4;23206:131;:::i;:::-;23198:139;;22925:419;;;:::o;23350:233::-;23389:3;23412:24;23430:5;23412:24;:::i;:::-;23403:33;;23458:66;23451:5;23448:77;23445:103;;23528:18;;:::i;:::-;23445:103;23575:1;23568:5;23564:13;23557:20;;23350:233;;;:::o;23589:173::-;23729:25;23725:1;23717:6;23713:14;23706:49;23589:173;:::o;23768:366::-;23910:3;23931:67;23995:2;23990:3;23931:67;:::i;:::-;23924:74;;24007:93;24096:3;24007:93;:::i;:::-;24125:2;24120:3;24116:12;24109:19;;23768:366;;;:::o;24140:419::-;24306:4;24344:2;24333:9;24329:18;24321:26;;24393:9;24387:4;24383:20;24379:1;24368:9;24364:17;24357:47;24421:131;24547:4;24421:131;:::i;:::-;24413:139;;24140:419;;;:::o;24565:194::-;24605:4;24625:20;24643:1;24625:20;:::i;:::-;24620:25;;24659:20;24677:1;24659:20;:::i;:::-;24654:25;;24703:1;24700;24696:9;24688:17;;24727:1;24721:4;24718:11;24715:37;;;24732:18;;:::i;:::-;24715:37;24565:194;;;;:::o;24765:180::-;24813:77;24810:1;24803:88;24910:4;24907:1;24900:15;24934:4;24931:1;24924:15;24951:180;24999:77;24996:1;24989:88;25096:4;25093:1;25086:15;25120:4;25117:1;25110:15;25137:114;25204:6;25238:5;25232:12;25222:22;;25137:114;;;:::o;25257:184::-;25356:11;25390:6;25385:3;25378:19;25430:4;25425:3;25421:14;25406:29;;25257:184;;;;:::o;25447:132::-;25514:4;25537:3;25529:11;;25567:4;25562:3;25558:14;25550:22;;25447:132;;;:::o;25585:108::-;25662:24;25680:5;25662:24;:::i;:::-;25657:3;25650:37;25585:108;;:::o;25699:179::-;25768:10;25789:46;25831:3;25823:6;25789:46;:::i;:::-;25867:4;25862:3;25858:14;25844:28;;25699:179;;;;:::o;25884:113::-;25954:4;25986;25981:3;25977:14;25969:22;;25884:113;;;:::o;26033:732::-;26152:3;26181:54;26229:5;26181:54;:::i;:::-;26251:86;26330:6;26325:3;26251:86;:::i;:::-;26244:93;;26361:56;26411:5;26361:56;:::i;:::-;26440:7;26471:1;26456:284;26481:6;26478:1;26475:13;26456:284;;;26557:6;26551:13;26584:63;26643:3;26628:13;26584:63;:::i;:::-;26577:70;;26670:60;26723:6;26670:60;:::i;:::-;26660:70;;26516:224;26503:1;26500;26496:9;26491:14;;26456:284;;;26460:14;26756:3;26749:10;;26157:608;;;26033:732;;;;:::o;26771:831::-;27034:4;27072:3;27061:9;27057:19;27049:27;;27086:71;27154:1;27143:9;27139:17;27130:6;27086:71;:::i;:::-;27167:80;27243:2;27232:9;27228:18;27219:6;27167:80;:::i;:::-;27294:9;27288:4;27284:20;27279:2;27268:9;27264:18;27257:48;27322:108;27425:4;27416:6;27322:108;:::i;:::-;27314:116;;27440:72;27508:2;27497:9;27493:18;27484:6;27440:72;:::i;:::-;27522:73;27590:3;27579:9;27575:19;27566:6;27522:73;:::i;:::-;26771:831;;;;;;;;:::o;27608:180::-;27656:77;27653:1;27646:88;27753:4;27750:1;27743:15;27777:4;27774:1;27767:15;27794:185;27834:1;27851:20;27869:1;27851:20;:::i;:::-;27846:25;;27885:20;27903:1;27885:20;:::i;:::-;27880:25;;27924:1;27914:35;;27929:18;;:::i;:::-;27914:35;27971:1;27968;27964:9;27959:14;;27794:185;;;;:::o;27985:220::-;28125:34;28121:1;28113:6;28109:14;28102:58;28194:3;28189:2;28181:6;28177:15;28170:28;27985:220;:::o;28211:366::-;28353:3;28374:67;28438:2;28433:3;28374:67;:::i;:::-;28367:74;;28450:93;28539:3;28450:93;:::i;:::-;28568:2;28563:3;28559:12;28552:19;;28211:366;;;:::o;28583:419::-;28749:4;28787:2;28776:9;28772:18;28764:26;;28836:9;28830:4;28826:20;28822:1;28811:9;28807:17;28800:47;28864:131;28990:4;28864:131;:::i;:::-;28856:139;;28583:419;;;:::o;29008:177::-;29148:29;29144:1;29136:6;29132:14;29125:53;29008:177;:::o;29191:366::-;29333:3;29354:67;29418:2;29413:3;29354:67;:::i;:::-;29347:74;;29430:93;29519:3;29430:93;:::i;:::-;29548:2;29543:3;29539:12;29532:19;;29191:366;;;:::o;29563:419::-;29729:4;29767:2;29756:9;29752:18;29744:26;;29816:9;29810:4;29806:20;29802:1;29791:9;29787:17;29780:47;29844:131;29970:4;29844:131;:::i;:::-;29836:139;;29563:419;;;:::o
Swarm Source
ipfs://3258cc7f8aac0402dd9152bc8b450bae169cd0569e89ddba514c4e703ac1f993
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)