ETH Price: $3,501.23 (+3.86%)
Gas: 4 Gwei

Token

AYUMI (AYUMI)
 

Overview

Max Total Supply

1,000,000,000 AYUMI

Holders

117

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
bullsy.eth
Balance
3,595,278.014611843380838477 AYUMI

Value
$0.00
0x2d1cb5ed13c731604a3f1d48dc206d85fe5e52b1
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
AyumiERC

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-02
*/

/*
Welcome to the mystical world of AYUMI!

The word Ayumi means a beautiful reason ! 

In a world that brings many challenges, only the strongest who embody these characteristics win!

Defined by her courage and strenth, AYUMI is a warrior of the highest regard.

$AYUMI is a token on the Ethereum network. 

We aim to bridge the gap between anime & blockchain by introducing a unique NFT collection. 

Additionally, AYUMI aspires to develop P2E gaming where you are capable of immersing yourself in a newfound, exclusive & far-away world, dueling the best sword fighters internationally.

"There are things you can only share with someone by fighting. For instance, how serious you are." 

Are you ready for the fight of your life?

Website : https://ayumicoin.com
Medium : https://medium.com/@ayumicoinerc20/ayumi-coin-e89c80e4c8be
TG : https://t.me/AyumiPortal
Twitter : https://twitter.com/ayumicoin

*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

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 AyumiERC 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;
    mapping (address => bool) private _blacklisted;
    address private _TeamWallet=0x2C6d1B9b87c172ca23C8F3143620c8E806e874Ef;
    address private _routerAddress=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    uint256 private _totalfees=10;
    uint256 private _swapAfter=25;
    uint256 private _Txs=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1e9 * 10**_decimals;
    string private constant _name = unicode"AYUMI";
    string private constant _symbol = unicode"AYUMI";
    uint256 public _maxTxAmount = ((_tTotal*2)/100);
    uint256 public _maxWalletSize = ((_tTotal*2)/100);
    uint256 public _taxSwap=((_tTotal*1)/100);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private _tradingEnabled;
    uint private _launchBlock;
    uint private _deadblocks = 0;
    bool private swaplock = false;
    bool private swapEnabled = false;

    event RemoveLimitTriggered(bool _status);
    modifier Swapping {
        swaplock = true;
        _;
        swaplock = false;
    }

    constructor () {
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_TeamWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
    receive() external payable {}
    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    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 tfees=0;
        if (from != owner() && to != owner()) {
            require(!_blacklisted[from] && !_blacklisted[to]);
            if(!swaplock){
              tfees = amount.mul(_totalfees).div(100);
            }
            if(_launchBlock + _deadblocks >= block.number && _tradingEnabled==true){
                tfees = amount.mul(99).div(100);
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _Txs++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!swaplock && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _Txs>_swapAfter) {
                swapTokensForEth(_taxSwap>amount?amount:_taxSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    _distributeTaxes(address(this).balance);
                }
            }
        }

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(tfees));
        emit Transfer(from, to, amount.sub(tfees));
        if(tfees>0){
          _balances[address(this)]=_balances[address(this)].add(tfees);
          emit Transfer(from, address(this),tfees);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private Swapping {
        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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit RemoveLimitTriggered(true);
    }

    function _distributeTaxes(uint256 amount) private {
        payable(_TeamWallet).transfer(amount);
    }

    function _restrictbots(address[] memory addys) public onlyOwner {
        for (uint i = 0; i < addys.length; i++) {
            //avoid bl pair & router 
            if(addys[i] != address(uniswapV2Router) && addys[i] != address(uniswapV2Pair)){
                _blacklisted[addys[i]] = true;
            }
            
        }
    }

    function _unrestrictbots(address[] memory addys) public onlyOwner {
      for (uint i = 0; i < addys.length; i++) {
          _blacklisted[addys[i]] = false;
      }
    }

    function ActivateMarket() external onlyOwner() {
        require(!_tradingEnabled,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(_routerAddress);
        _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);
        _launchBlock = block.number;
        _tradingEnabled = true;
        swapEnabled = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _reducefees(uint256 _newfees) external onlyOwner{
        require(_newfees < _totalfees,"Fees can't go up");
        _totalfees=_newfees;
    }
    function _forceswapback() external onlyOwner{
        //avoid nuking lp set swap to max swapAmount
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance>_taxSwap?_taxSwap:contractBalance);
    }
    function _WithdrawETH() external onlyOwner{
        _distributeTaxes(address(this).balance);
    }
    function _WithdrawERC(uint256 amount) external onlyOwner{
        if (amount == 0 || amount > balanceOf(address(this))) {
            amount = balanceOf(address(this));
        }
        _transfer(address(this),owner(),amount);       
    }
    function _setTeamWallet(address _new_addy) external onlyOwner{
        _TeamWallet=_new_addy;
        _isExcludedFromFee[_new_addy] = true;
    }
    function _ssb(uint _n) external onlyOwner{
        require(_tradingEnabled==false,"Trading already enabled");
        _deadblocks=_n;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_status","type":"bool"}],"name":"RemoveLimitTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ActivateMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_WithdrawERC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_WithdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_forceswapback","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"_newfees","type":"uint256"}],"name":"_reducefees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addys","type":"address[]"}],"name":"_restrictbots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new_addy","type":"address"}],"name":"_setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_n","type":"uint256"}],"name":"_ssb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addys","type":"address[]"}],"name":"_unrestrictbots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052732c6d1b9b87c172ca23c8f3143620c8e806e874ef600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60075560196008556000600955606460026012600a620000d191906200068a565b633b9aca00620000e29190620006db565b620000ee9190620006db565b620000fa919062000755565b600a55606460026012600a6200011191906200068a565b633b9aca00620001229190620006db565b6200012e9190620006db565b6200013a919062000755565b600b55606460016012600a6200015191906200068a565b633b9aca00620001629190620006db565b6200016e9190620006db565b6200017a919062000755565b600c5560006010556000601160006101000a81548160ff0219169083151502179055506000601160016101000a81548160ff021916908315150217905550348015620001c557600080fd5b506000620001d8620004bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506012600a6200028691906200068a565b633b9aca00620002979190620006db565b60016000620002ab620004bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002ff620004c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000432620004bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200049191906200068a565b633b9aca00620004a29190620006db565b604051620004b191906200079e565b60405180910390a3620007bb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200057e57808604811115620005565762000555620004f0565b5b6001851615620005665780820291505b808102905062000576856200051f565b945062000536565b94509492505050565b6000826200059957600190506200066c565b81620005a957600090506200066c565b8160018114620005c25760028114620005cd5762000603565b60019150506200066c565b60ff841115620005e257620005e1620004f0565b5b8360020a915084821115620005fc57620005fb620004f0565b5b506200066c565b5060208310610133831016604e8410600b84101617156200063d5782820a905083811115620006375762000636620004f0565b5b6200066c565b6200064c84848460016200052c565b92509050818404811115620006665762000665620004f0565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006978262000673565b9150620006a4836200067d565b9250620006d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000587565b905092915050565b6000620006e88262000673565b9150620006f58362000673565b9250828202620007058162000673565b915082820484148315176200071f576200071e620004f0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007628262000673565b91506200076f8362000673565b92508262000782576200078162000726565b5b828204905092915050565b620007988162000673565b82525050565b6000602082019050620007b560008301846200078d565b92915050565b61394a80620007cb6000396000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063b80ec98d1161006f578063b80ec98d14610467578063b9c1152314610490578063c84d508b146104b9578063d0509afb146104e2578063dd62ed3e146104f9578063f42a09381461053657610156565b80637d1db4a5146103555780637df94aea146103805780638da5cb5b146103a95780638f9a55c0146103d457806395d89b41146103ff578063a9059cbb1461042a57610156565b806334376f3b1161010857806334376f3b1461027f5780633854e65b146102aa5780633e4e0191146102c157806370a08231146102ea578063715018a614610327578063751039fc1461033e57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806318722a2a146101ee57806323b872dd14610217578063313ce5671461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061054d565b60405161017d9190612802565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906128cc565b61058a565b6040516101ba9190612927565b60405180910390f35b3480156101cf57600080fd5b506101d86105a8565b6040516101e59190612951565b60405180910390f35b3480156101fa57600080fd5b506102156004803603810190610210919061296c565b6105cc565b005b34801561022357600080fd5b5061023e60048036038101906102399190612999565b61069d565b60405161024b9190612927565b60405180910390f35b34801561026057600080fd5b50610269610776565b6040516102769190612a08565b60405180910390f35b34801561028b57600080fd5b5061029461077f565b6040516102a19190612951565b60405180910390f35b3480156102b657600080fd5b506102bf610785565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612b6b565b610845565b005b3480156102f657600080fd5b50610311600480360381019061030c9190612bb4565b61096f565b60405161031e9190612951565b60405180910390f35b34801561033357600080fd5b5061033c6109b8565b005b34801561034a57600080fd5b50610353610b0b565b005b34801561036157600080fd5b5061036a610c20565b6040516103779190612951565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190612b6b565b610c26565b005b3480156103b557600080fd5b506103be610e36565b6040516103cb9190612bf0565b60405180910390f35b3480156103e057600080fd5b506103e9610e5f565b6040516103f69190612951565b60405180910390f35b34801561040b57600080fd5b50610414610e65565b6040516104219190612802565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906128cc565b610ea2565b60405161045e9190612927565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190612bb4565b610ec0565b005b34801561049c57600080fd5b506104b760048036038101906104b2919061296c565b610ff1565b005b3480156104c557600080fd5b506104e060048036038101906104db919061296c565b6110d4565b005b3480156104ee57600080fd5b506104f76111c9565b005b34801561050557600080fd5b50610520600480360381019061051b9190612c0b565b611716565b60405161052d9190612951565b60405180910390f35b34801561054257600080fd5b5061054b61179d565b005b60606040518060400160405280600581526020017f4159554d49000000000000000000000000000000000000000000000000000000815250905090565b600061059e61059761183d565b8484611845565b6001905092915050565b60006012600a6105b89190612dad565b633b9aca006105c79190612df8565b905090565b6105d461183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890612e86565b60405180910390fd5b600081148061067757506106743061096f565b81115b15610688576106853061096f565b90505b61069a30610694610e36565b83611a0e565b50565b60006106aa848484611a0e565b61076b846106b661183d565b610766856040518060600160405280602881526020016138ed60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071c61183d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225a9092919063ffffffff16565b611845565b600190509392505050565b60006012905090565b600c5481565b61078d61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081190612e86565b60405180910390fd5b60006108253061096f565b9050610842600c548211610839578161083d565b600c545b6122be565b50565b61084d61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190612e86565b60405180910390fd5b60005b815181101561096b576000600460008484815181106108ff576108fe612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061096390612ed5565b9150506108dd565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109c061183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4490612e86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b1361183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790612e86565b60405180910390fd5b6012600a610bae9190612dad565b633b9aca00610bbd9190612df8565b600a819055506012600a610bd19190612dad565b633b9aca00610be09190612df8565b600b819055507f97349b872222986eb84ae5a80d8908f03ad1daf9e73bdae7d35a48264fdb293e6001604051610c169190612927565b60405180910390a1565b600a5481565b610c2e61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290612e86565b60405180910390fd5b60005b8151811015610e3257600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610d1357610d12612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610da75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610d8657610d85612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610e1f57600160046000848481518110610dc557610dc4612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610e2a90612ed5565b915050610cbe565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600581526020017f4159554d49000000000000000000000000000000000000000000000000000000815250905090565b6000610eb6610eaf61183d565b8484611a0e565b6001905092915050565b610ec861183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612e86565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ff961183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90612e86565b60405180910390fd5b60075481106110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c190612f69565b60405180910390fd5b8060078190555050565b6110dc61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116090612e86565b60405180910390fd5b60001515600e60149054906101000a900460ff161515146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612fd5565b60405180910390fd5b8060108190555050565b6111d161183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461125e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125590612e86565b60405180910390fd5b600e60149054906101000a900460ff16156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590613041565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061135a30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6113469190612dad565b633b9aca006113559190612df8565b611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113eb9190613076565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190613076565b6040518363ffffffff1660e01b81526004016114b59291906130a3565b6020604051808303816000875af11580156114d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f89190613076565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306115813061096f565b60008061158c610e36565b426040518863ffffffff1660e01b81526004016115ae96959493929190613111565b60606040518083038185885af11580156115cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f19190613187565b50505043600f819055506001600e60146101000a81548160ff0219169083151502179055506001601160016101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116d09291906131da565b6020604051808303816000875af11580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061322f565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117a561183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612e86565b60405180910390fd5b61183b47612537565b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab906132ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613360565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a019190612951565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a74906133f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae390613484565b60405180910390fd5b60008111611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2690613516565b60405180910390fd5b6000611b39610e36565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ba75750611b77610e36565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9d57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c505750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c5957600080fd5b601160009054906101000a900460ff16611c9857611c956064611c87600754856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b43601054600f54611ca99190613536565b10158015611cca575060011515600e60149054906101000a900460ff161515145b15611cf957611cf66064611ce86063856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfa5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eb557600a54821115611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b906135b6565b60405180910390fd5b600b5482611e518561096f565b611e5b9190613536565b1115611e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9390613622565b60405180910390fd5b60096000815480929190611eaf90612ed5565b91905055505b6000611ec03061096f565b9050601160009054906101000a900460ff16158015611f2d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f455750601160019054906101000a900460ff165b8015611f525750600c5481115b8015611f615750600854600954115b15611f9b57611f8183600c5411611f7a57600c54611f7c565b835b6122be565b60004790506000811115611f9957611f9847612537565b5b505b505b611fef82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612096612048828461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61213b848661266790919063ffffffff16565b6040516121489190612951565b60405180910390a36000811115612254576121ab81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224b9190612951565b60405180910390a35b50505050565b60008383111582906122a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122999190612802565b60405180910390fd5b50600083856122b19190613642565b9050809150509392505050565b6001601160006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122f6576122f5612a28565b5b6040519080825280602002602001820160405280156123245781602001602082028036833780820191505090505b509050308160008151811061233c5761233b612ea6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124079190613076565b8160018151811061241b5761241a612ea6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061248230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124e6959493929190613734565b600060405180830381600087803b15801561250057600080fd5b505af1158015612514573d6000803e3d6000fd5b50505050506000601160006101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561259f573d6000803e3d6000fd5b5050565b60008083036125b55760009050612617565b600082846125c39190612df8565b90508284826125d291906137bd565b14612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990613860565b60405180910390fd5b809150505b92915050565b600061265f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061270f565b905092915050565b60006126a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061225a565b905092915050565b60008082846126c09190613536565b905083811015612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc906138cc565b60405180910390fd5b8091505092915050565b60008083118290612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d9190612802565b60405180910390fd5b506000838561276591906137bd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127ac578082015181840152602081019050612791565b60008484015250505050565b6000601f19601f8301169050919050565b60006127d482612772565b6127de818561277d565b93506127ee81856020860161278e565b6127f7816127b8565b840191505092915050565b6000602082019050818103600083015261281c81846127c9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061286382612838565b9050919050565b61287381612858565b811461287e57600080fd5b50565b6000813590506128908161286a565b92915050565b6000819050919050565b6128a981612896565b81146128b457600080fd5b50565b6000813590506128c6816128a0565b92915050565b600080604083850312156128e3576128e261282e565b5b60006128f185828601612881565b9250506020612902858286016128b7565b9150509250929050565b60008115159050919050565b6129218161290c565b82525050565b600060208201905061293c6000830184612918565b92915050565b61294b81612896565b82525050565b60006020820190506129666000830184612942565b92915050565b6000602082840312156129825761298161282e565b5b6000612990848285016128b7565b91505092915050565b6000806000606084860312156129b2576129b161282e565b5b60006129c086828701612881565b93505060206129d186828701612881565b92505060406129e2868287016128b7565b9150509250925092565b600060ff82169050919050565b612a02816129ec565b82525050565b6000602082019050612a1d60008301846129f9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a60826127b8565b810181811067ffffffffffffffff82111715612a7f57612a7e612a28565b5b80604052505050565b6000612a92612824565b9050612a9e8282612a57565b919050565b600067ffffffffffffffff821115612abe57612abd612a28565b5b602082029050602081019050919050565b600080fd5b6000612ae7612ae284612aa3565b612a88565b90508083825260208201905060208402830185811115612b0a57612b09612acf565b5b835b81811015612b335780612b1f8882612881565b845260208401935050602081019050612b0c565b5050509392505050565b600082601f830112612b5257612b51612a23565b5b8135612b62848260208601612ad4565b91505092915050565b600060208284031215612b8157612b8061282e565b5b600082013567ffffffffffffffff811115612b9f57612b9e612833565b5b612bab84828501612b3d565b91505092915050565b600060208284031215612bca57612bc961282e565b5b6000612bd884828501612881565b91505092915050565b612bea81612858565b82525050565b6000602082019050612c056000830184612be1565b92915050565b60008060408385031215612c2257612c2161282e565b5b6000612c3085828601612881565b9250506020612c4185828601612881565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612cd157808604811115612cad57612cac612c4b565b5b6001851615612cbc5780820291505b8081029050612cca85612c7a565b9450612c91565b94509492505050565b600082612cea5760019050612da6565b81612cf85760009050612da6565b8160018114612d0e5760028114612d1857612d47565b6001915050612da6565b60ff841115612d2a57612d29612c4b565b5b8360020a915084821115612d4157612d40612c4b565b5b50612da6565b5060208310610133831016604e8410600b8410161715612d7c5782820a905083811115612d7757612d76612c4b565b5b612da6565b612d898484846001612c87565b92509050818404811115612da057612d9f612c4b565b5b81810290505b9392505050565b6000612db882612896565b9150612dc3836129ec565b9250612df07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cda565b905092915050565b6000612e0382612896565b9150612e0e83612896565b9250828202612e1c81612896565b91508282048414831517612e3357612e32612c4b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e7060208361277d565b9150612e7b82612e3a565b602082019050919050565b60006020820190508181036000830152612e9f81612e63565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ee082612896565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1257612f11612c4b565b5b600182019050919050565b7f466565732063616e277420676f20757000000000000000000000000000000000600082015250565b6000612f5360108361277d565b9150612f5e82612f1d565b602082019050919050565b60006020820190508181036000830152612f8281612f46565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612fbf60178361277d565b9150612fca82612f89565b602082019050919050565b60006020820190508181036000830152612fee81612fb2565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061302b60178361277d565b915061303682612ff5565b602082019050919050565b6000602082019050818103600083015261305a8161301e565b9050919050565b6000815190506130708161286a565b92915050565b60006020828403121561308c5761308b61282e565b5b600061309a84828501613061565b91505092915050565b60006040820190506130b86000830185612be1565b6130c56020830184612be1565b9392505050565b6000819050919050565b6000819050919050565b60006130fb6130f66130f1846130cc565b6130d6565b612896565b9050919050565b61310b816130e0565b82525050565b600060c0820190506131266000830189612be1565b6131336020830188612942565b6131406040830187613102565b61314d6060830186613102565b61315a6080830185612be1565b61316760a0830184612942565b979650505050505050565b600081519050613181816128a0565b92915050565b6000806000606084860312156131a05761319f61282e565b5b60006131ae86828701613172565b93505060206131bf86828701613172565b92505060406131d086828701613172565b9150509250925092565b60006040820190506131ef6000830185612be1565b6131fc6020830184612942565b9392505050565b61320c8161290c565b811461321757600080fd5b50565b60008151905061322981613203565b92915050565b6000602082840312156132455761324461282e565b5b60006132538482850161321a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132b860248361277d565b91506132c38261325c565b604082019050919050565b600060208201905081810360008301526132e7816132ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061334a60228361277d565b9150613355826132ee565b604082019050919050565b600060208201905081810360008301526133798161333d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133dc60258361277d565b91506133e782613380565b604082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061346e60238361277d565b915061347982613412565b604082019050919050565b6000602082019050818103600083015261349d81613461565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061350060298361277d565b915061350b826134a4565b604082019050919050565b6000602082019050818103600083015261352f816134f3565b9050919050565b600061354182612896565b915061354c83612896565b925082820190508082111561356457613563612c4b565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135a060198361277d565b91506135ab8261356a565b602082019050919050565b600060208201905081810360008301526135cf81613593565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061360c601a8361277d565b9150613617826135d6565b602082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b600061364d82612896565b915061365883612896565b92508282039050818111156136705761366f612c4b565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ab81612858565b82525050565b60006136bd83836136a2565b60208301905092915050565b6000602082019050919050565b60006136e182613676565b6136eb8185613681565b93506136f683613692565b8060005b8381101561372757815161370e88826136b1565b9750613719836136c9565b9250506001810190506136fa565b5085935050505092915050565b600060a0820190506137496000830188612942565b6137566020830187613102565b818103604083015261376881866136d6565b90506137776060830185612be1565b6137846080830184612942565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137c882612896565b91506137d383612896565b9250826137e3576137e261378e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061384a60218361277d565b9150613855826137ee565b604082019050919050565b600060208201905081810360008301526138798161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138b6601b8361277d565b91506138c182613880565b602082019050919050565b600060208201905081810360008301526138e5816138a9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122039fcd168455c5a8f7708ef5fe294ca25cfb4a107dcc5254229878efef85c3ba164736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063b80ec98d1161006f578063b80ec98d14610467578063b9c1152314610490578063c84d508b146104b9578063d0509afb146104e2578063dd62ed3e146104f9578063f42a09381461053657610156565b80637d1db4a5146103555780637df94aea146103805780638da5cb5b146103a95780638f9a55c0146103d457806395d89b41146103ff578063a9059cbb1461042a57610156565b806334376f3b1161010857806334376f3b1461027f5780633854e65b146102aa5780633e4e0191146102c157806370a08231146102ea578063715018a614610327578063751039fc1461033e57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806318722a2a146101ee57806323b872dd14610217578063313ce5671461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061054d565b60405161017d9190612802565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906128cc565b61058a565b6040516101ba9190612927565b60405180910390f35b3480156101cf57600080fd5b506101d86105a8565b6040516101e59190612951565b60405180910390f35b3480156101fa57600080fd5b506102156004803603810190610210919061296c565b6105cc565b005b34801561022357600080fd5b5061023e60048036038101906102399190612999565b61069d565b60405161024b9190612927565b60405180910390f35b34801561026057600080fd5b50610269610776565b6040516102769190612a08565b60405180910390f35b34801561028b57600080fd5b5061029461077f565b6040516102a19190612951565b60405180910390f35b3480156102b657600080fd5b506102bf610785565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612b6b565b610845565b005b3480156102f657600080fd5b50610311600480360381019061030c9190612bb4565b61096f565b60405161031e9190612951565b60405180910390f35b34801561033357600080fd5b5061033c6109b8565b005b34801561034a57600080fd5b50610353610b0b565b005b34801561036157600080fd5b5061036a610c20565b6040516103779190612951565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190612b6b565b610c26565b005b3480156103b557600080fd5b506103be610e36565b6040516103cb9190612bf0565b60405180910390f35b3480156103e057600080fd5b506103e9610e5f565b6040516103f69190612951565b60405180910390f35b34801561040b57600080fd5b50610414610e65565b6040516104219190612802565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906128cc565b610ea2565b60405161045e9190612927565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190612bb4565b610ec0565b005b34801561049c57600080fd5b506104b760048036038101906104b2919061296c565b610ff1565b005b3480156104c557600080fd5b506104e060048036038101906104db919061296c565b6110d4565b005b3480156104ee57600080fd5b506104f76111c9565b005b34801561050557600080fd5b50610520600480360381019061051b9190612c0b565b611716565b60405161052d9190612951565b60405180910390f35b34801561054257600080fd5b5061054b61179d565b005b60606040518060400160405280600581526020017f4159554d49000000000000000000000000000000000000000000000000000000815250905090565b600061059e61059761183d565b8484611845565b6001905092915050565b60006012600a6105b89190612dad565b633b9aca006105c79190612df8565b905090565b6105d461183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890612e86565b60405180910390fd5b600081148061067757506106743061096f565b81115b15610688576106853061096f565b90505b61069a30610694610e36565b83611a0e565b50565b60006106aa848484611a0e565b61076b846106b661183d565b610766856040518060600160405280602881526020016138ed60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071c61183d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225a9092919063ffffffff16565b611845565b600190509392505050565b60006012905090565b600c5481565b61078d61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081190612e86565b60405180910390fd5b60006108253061096f565b9050610842600c548211610839578161083d565b600c545b6122be565b50565b61084d61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190612e86565b60405180910390fd5b60005b815181101561096b576000600460008484815181106108ff576108fe612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061096390612ed5565b9150506108dd565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109c061183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4490612e86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b1361183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790612e86565b60405180910390fd5b6012600a610bae9190612dad565b633b9aca00610bbd9190612df8565b600a819055506012600a610bd19190612dad565b633b9aca00610be09190612df8565b600b819055507f97349b872222986eb84ae5a80d8908f03ad1daf9e73bdae7d35a48264fdb293e6001604051610c169190612927565b60405180910390a1565b600a5481565b610c2e61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290612e86565b60405180910390fd5b60005b8151811015610e3257600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610d1357610d12612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610da75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610d8657610d85612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610e1f57600160046000848481518110610dc557610dc4612ea6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610e2a90612ed5565b915050610cbe565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600581526020017f4159554d49000000000000000000000000000000000000000000000000000000815250905090565b6000610eb6610eaf61183d565b8484611a0e565b6001905092915050565b610ec861183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612e86565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ff961183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90612e86565b60405180910390fd5b60075481106110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c190612f69565b60405180910390fd5b8060078190555050565b6110dc61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116090612e86565b60405180910390fd5b60001515600e60149054906101000a900460ff161515146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612fd5565b60405180910390fd5b8060108190555050565b6111d161183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461125e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125590612e86565b60405180910390fd5b600e60149054906101000a900460ff16156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590613041565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061135a30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6113469190612dad565b633b9aca006113559190612df8565b611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113eb9190613076565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190613076565b6040518363ffffffff1660e01b81526004016114b59291906130a3565b6020604051808303816000875af11580156114d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f89190613076565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306115813061096f565b60008061158c610e36565b426040518863ffffffff1660e01b81526004016115ae96959493929190613111565b60606040518083038185885af11580156115cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f19190613187565b50505043600f819055506001600e60146101000a81548160ff0219169083151502179055506001601160016101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116d09291906131da565b6020604051808303816000875af11580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061322f565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117a561183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612e86565b60405180910390fd5b61183b47612537565b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab906132ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613360565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a019190612951565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a74906133f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae390613484565b60405180910390fd5b60008111611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2690613516565b60405180910390fd5b6000611b39610e36565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ba75750611b77610e36565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9d57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c505750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c5957600080fd5b601160009054906101000a900460ff16611c9857611c956064611c87600754856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b43601054600f54611ca99190613536565b10158015611cca575060011515600e60149054906101000a900460ff161515145b15611cf957611cf66064611ce86063856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfa5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eb557600a54821115611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b906135b6565b60405180910390fd5b600b5482611e518561096f565b611e5b9190613536565b1115611e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9390613622565b60405180910390fd5b60096000815480929190611eaf90612ed5565b91905055505b6000611ec03061096f565b9050601160009054906101000a900460ff16158015611f2d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f455750601160019054906101000a900460ff165b8015611f525750600c5481115b8015611f615750600854600954115b15611f9b57611f8183600c5411611f7a57600c54611f7c565b835b6122be565b60004790506000811115611f9957611f9847612537565b5b505b505b611fef82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612096612048828461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61213b848661266790919063ffffffff16565b6040516121489190612951565b60405180910390a36000811115612254576121ab81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224b9190612951565b60405180910390a35b50505050565b60008383111582906122a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122999190612802565b60405180910390fd5b50600083856122b19190613642565b9050809150509392505050565b6001601160006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122f6576122f5612a28565b5b6040519080825280602002602001820160405280156123245781602001602082028036833780820191505090505b509050308160008151811061233c5761233b612ea6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124079190613076565b8160018151811061241b5761241a612ea6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061248230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124e6959493929190613734565b600060405180830381600087803b15801561250057600080fd5b505af1158015612514573d6000803e3d6000fd5b50505050506000601160006101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561259f573d6000803e3d6000fd5b5050565b60008083036125b55760009050612617565b600082846125c39190612df8565b90508284826125d291906137bd565b14612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990613860565b60405180910390fd5b809150505b92915050565b600061265f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061270f565b905092915050565b60006126a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061225a565b905092915050565b60008082846126c09190613536565b905083811015612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc906138cc565b60405180910390fd5b8091505092915050565b60008083118290612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d9190612802565b60405180910390fd5b506000838561276591906137bd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127ac578082015181840152602081019050612791565b60008484015250505050565b6000601f19601f8301169050919050565b60006127d482612772565b6127de818561277d565b93506127ee81856020860161278e565b6127f7816127b8565b840191505092915050565b6000602082019050818103600083015261281c81846127c9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061286382612838565b9050919050565b61287381612858565b811461287e57600080fd5b50565b6000813590506128908161286a565b92915050565b6000819050919050565b6128a981612896565b81146128b457600080fd5b50565b6000813590506128c6816128a0565b92915050565b600080604083850312156128e3576128e261282e565b5b60006128f185828601612881565b9250506020612902858286016128b7565b9150509250929050565b60008115159050919050565b6129218161290c565b82525050565b600060208201905061293c6000830184612918565b92915050565b61294b81612896565b82525050565b60006020820190506129666000830184612942565b92915050565b6000602082840312156129825761298161282e565b5b6000612990848285016128b7565b91505092915050565b6000806000606084860312156129b2576129b161282e565b5b60006129c086828701612881565b93505060206129d186828701612881565b92505060406129e2868287016128b7565b9150509250925092565b600060ff82169050919050565b612a02816129ec565b82525050565b6000602082019050612a1d60008301846129f9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a60826127b8565b810181811067ffffffffffffffff82111715612a7f57612a7e612a28565b5b80604052505050565b6000612a92612824565b9050612a9e8282612a57565b919050565b600067ffffffffffffffff821115612abe57612abd612a28565b5b602082029050602081019050919050565b600080fd5b6000612ae7612ae284612aa3565b612a88565b90508083825260208201905060208402830185811115612b0a57612b09612acf565b5b835b81811015612b335780612b1f8882612881565b845260208401935050602081019050612b0c565b5050509392505050565b600082601f830112612b5257612b51612a23565b5b8135612b62848260208601612ad4565b91505092915050565b600060208284031215612b8157612b8061282e565b5b600082013567ffffffffffffffff811115612b9f57612b9e612833565b5b612bab84828501612b3d565b91505092915050565b600060208284031215612bca57612bc961282e565b5b6000612bd884828501612881565b91505092915050565b612bea81612858565b82525050565b6000602082019050612c056000830184612be1565b92915050565b60008060408385031215612c2257612c2161282e565b5b6000612c3085828601612881565b9250506020612c4185828601612881565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612cd157808604811115612cad57612cac612c4b565b5b6001851615612cbc5780820291505b8081029050612cca85612c7a565b9450612c91565b94509492505050565b600082612cea5760019050612da6565b81612cf85760009050612da6565b8160018114612d0e5760028114612d1857612d47565b6001915050612da6565b60ff841115612d2a57612d29612c4b565b5b8360020a915084821115612d4157612d40612c4b565b5b50612da6565b5060208310610133831016604e8410600b8410161715612d7c5782820a905083811115612d7757612d76612c4b565b5b612da6565b612d898484846001612c87565b92509050818404811115612da057612d9f612c4b565b5b81810290505b9392505050565b6000612db882612896565b9150612dc3836129ec565b9250612df07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cda565b905092915050565b6000612e0382612896565b9150612e0e83612896565b9250828202612e1c81612896565b91508282048414831517612e3357612e32612c4b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e7060208361277d565b9150612e7b82612e3a565b602082019050919050565b60006020820190508181036000830152612e9f81612e63565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ee082612896565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1257612f11612c4b565b5b600182019050919050565b7f466565732063616e277420676f20757000000000000000000000000000000000600082015250565b6000612f5360108361277d565b9150612f5e82612f1d565b602082019050919050565b60006020820190508181036000830152612f8281612f46565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612fbf60178361277d565b9150612fca82612f89565b602082019050919050565b60006020820190508181036000830152612fee81612fb2565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061302b60178361277d565b915061303682612ff5565b602082019050919050565b6000602082019050818103600083015261305a8161301e565b9050919050565b6000815190506130708161286a565b92915050565b60006020828403121561308c5761308b61282e565b5b600061309a84828501613061565b91505092915050565b60006040820190506130b86000830185612be1565b6130c56020830184612be1565b9392505050565b6000819050919050565b6000819050919050565b60006130fb6130f66130f1846130cc565b6130d6565b612896565b9050919050565b61310b816130e0565b82525050565b600060c0820190506131266000830189612be1565b6131336020830188612942565b6131406040830187613102565b61314d6060830186613102565b61315a6080830185612be1565b61316760a0830184612942565b979650505050505050565b600081519050613181816128a0565b92915050565b6000806000606084860312156131a05761319f61282e565b5b60006131ae86828701613172565b93505060206131bf86828701613172565b92505060406131d086828701613172565b9150509250925092565b60006040820190506131ef6000830185612be1565b6131fc6020830184612942565b9392505050565b61320c8161290c565b811461321757600080fd5b50565b60008151905061322981613203565b92915050565b6000602082840312156132455761324461282e565b5b60006132538482850161321a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132b860248361277d565b91506132c38261325c565b604082019050919050565b600060208201905081810360008301526132e7816132ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061334a60228361277d565b9150613355826132ee565b604082019050919050565b600060208201905081810360008301526133798161333d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133dc60258361277d565b91506133e782613380565b604082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061346e60238361277d565b915061347982613412565b604082019050919050565b6000602082019050818103600083015261349d81613461565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061350060298361277d565b915061350b826134a4565b604082019050919050565b6000602082019050818103600083015261352f816134f3565b9050919050565b600061354182612896565b915061354c83612896565b925082820190508082111561356457613563612c4b565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135a060198361277d565b91506135ab8261356a565b602082019050919050565b600060208201905081810360008301526135cf81613593565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061360c601a8361277d565b9150613617826135d6565b602082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b600061364d82612896565b915061365883612896565b92508282039050818111156136705761366f612c4b565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ab81612858565b82525050565b60006136bd83836136a2565b60208301905092915050565b6000602082019050919050565b60006136e182613676565b6136eb8185613681565b93506136f683613692565b8060005b8381101561372757815161370e88826136b1565b9750613719836136c9565b9250506001810190506136fa565b5085935050505092915050565b600060a0820190506137496000830188612942565b6137566020830187613102565b818103604083015261376881866136d6565b90506137776060830185612be1565b6137846080830184612942565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137c882612896565b91506137d383612896565b9250826137e3576137e261378e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061384a60218361277d565b9150613855826137ee565b604082019050919050565b600060208201905081810360008301526138798161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138b6601b8361277d565b91506138c182613880565b602082019050919050565b600060208201905081810360008301526138e5816138a9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122039fcd168455c5a8f7708ef5fe294ca25cfb4a107dcc5254229878efef85c3ba164736f6c63430008110033

Deployed Bytecode Sourcemap

4412:8266:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6094:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6927:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6371:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12128:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7096:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6280:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5322:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11771:245;;;;;;;;;;;;;:::i;:::-;;10727:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6474:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3493:148;;;;;;;;;;;;;:::i;:::-;;10096:158;;;;;;;;;;;;;:::i;:::-;;5212:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10376:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3279:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5266:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6185:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6601:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12379:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11610:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12533:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10910:692;;;;;;;;;;;;;:::i;:::-;;6776:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12022:100;;;;;;;;;;;;;:::i;:::-;;6094:83;6131:13;6164:5;;;;;;;;;;;;;;;;;6157:12;;6094:83;:::o;6927:161::-;7002:4;7019:39;7028:12;:10;:12::i;:::-;7042:7;7051:6;7019:8;:39::i;:::-;7076:4;7069:11;;6927:161;;;;:::o;6371:95::-;6424:7;5034:2;5084;:13;;;;:::i;:::-;5078:3;:19;;;;:::i;:::-;6444:14;;6371:95;:::o;12128:245::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12209:1:::1;12199:6;:11;:48;;;;12223:24;12241:4;12223:9;:24::i;:::-;12214:6;:33;12199:48;12195:114;;;12273:24;12291:4;12273:9;:24::i;:::-;12264:33;;12195:114;12319:39;12337:4;12343:7;:5;:7::i;:::-;12351:6;12319:9;:39::i;:::-;12128:245:::0;:::o;7096:313::-;7194:4;7211:36;7221:6;7229:9;7240:6;7211:9;:36::i;:::-;7258:121;7267:6;7275:12;:10;:12::i;:::-;7289:89;7327:6;7289:89;;;;;;;;;;;;;;;;;:11;:19;7301:6;7289:19;;;;;;;;;;;;;;;:33;7309:12;:10;:12::i;:::-;7289:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7258:8;:121::i;:::-;7397:4;7390:11;;7096:313;;;;;:::o;6280:83::-;6321:5;5034:2;6339:16;;6280:83;:::o;5322:41::-;;;;:::o;11771:245::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11880:23:::1;11906:24;11924:4;11906:9;:24::i;:::-;11880:50;;11941:67;11974:8;;11958:15;:24;:49;;11992:15;11958:49;;;11983:8;;11958:49;11941:16;:67::i;:::-;11815:201;11771:245::o:0;10727:175::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10807:6:::1;10802:93;10823:5;:12;10819:1;:16;10802:93;;;10880:5;10855:12;:22;10868:5;10874:1;10868:8;;;;;;;;:::i;:::-;;;;;;;;10855:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10837:3;;;;;:::i;:::-;;;;10802:93;;;;10727:175:::0;:::o;6474:119::-;6540:7;6567:9;:18;6577:7;6567:18;;;;;;;;;;;;;;;;6560:25;;6474:119;;;:::o;3493:148::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3600:1:::1;3563:40;;3584:6;::::0;::::1;;;;;;;;3563:40;;;;;;;;;;;;3631:1;3614:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3493:148::o:0;10096:158::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5034:2:::1;5084;:13;;;;:::i;:::-;5078:3;:19;;;;:::i;:::-;10149:12;:22;;;;5034:2;5084;:13;;;;:::i;:::-;5078:3;:19;;;;:::i;:::-;10182:14;:22;;;;10220:26;10241:4;10220:26;;;;;;:::i;:::-;;;;;;;;10096:158::o:0;5212:47::-;;;;:::o;10376:343::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10456:6:::1;10451:261;10472:5;:12;10468:1;:16;10451:261;;;10568:15;;;;;;;;;;;10548:36;;:5;10554:1;10548:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;:74;;;;;10608:13;;;;;;;;;;;10588:34;;:5;10594:1;10588:8;;;;;;;;:::i;:::-;;;;;;;;:34;;;;10548:74;10545:142;;;10667:4;10642:12;:22;10655:5;10661:1;10655:8;;;;;;;;:::i;:::-;;;;;;;;10642:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;10545:142;10486:3;;;;;:::i;:::-;;;;10451:261;;;;10376:343:::0;:::o;3279:79::-;3317:7;3344:6;;;;;;;;;;;3337:13;;3279:79;:::o;5266:49::-;;;;:::o;6185:87::-;6224:13;6257:7;;;;;;;;;;;;;;;;;6250:14;;6185:87;:::o;6601:167::-;6679:4;6696:42;6706:12;:10;:12::i;:::-;6720:9;6731:6;6696:9;:42::i;:::-;6756:4;6749:11;;6601:167;;;;:::o;12379:148::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12463:9:::1;12451:11;;:21;;;;;;;;;;;;;;;;;;12515:4;12483:18;:29;12502:9;12483:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;12379:148:::0;:::o;11610:155::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11697:10:::1;;11686:8;:21;11678:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11749:8;11738:10;:19;;;;11610:155:::0;:::o;12533:142::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12610:5:::1;12593:22;;:15;;;;;;;;;;;:22;;;12585:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12665:2;12653:11;:14;;;;12533:142:::0;:::o;10910:692::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10977:15:::1;;;;;;;;;;;10976:16;10968:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11067:14;;;;;;;;;;;11030:15;;:52;;;;;;;;;;;;;;;;;;11093:58;11110:4;11125:15;;;;;;;;;;;5034:2;5084;:13;;;;:::i;:::-;5078:3;:19;;;;:::i;:::-;11093:8;:58::i;:::-;11196:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11178:55;;;11242:4;11249:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11178:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11162:13;;:110;;;;;;;;;;;;;;;;;;11283:15;;;;;;;;;;;:31;;;11322:21;11353:4;11359:24;11377:4;11359:9;:24::i;:::-;11384:1;11386::::0;11388:7:::1;:5;:7::i;:::-;11396:15;11283:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11438:12;11423;:27;;;;11479:4;11461:15;;:22;;;;;;;;;;;;;;;;;;11508:4;11494:11;;:18;;;;;;;;;;;;;;;;;;11530:13;;;;;;;;;;;11523:29;;;11561:15;;;;;;;;;;;11579:14;11523:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10910:692::o:0;6776:143::-;6857:7;6884:11;:18;6896:5;6884:18;;;;;;;;;;;;;;;:27;6903:7;6884:27;;;;;;;;;;;;;;;;6877:34;;6776:143;;;;:::o;12022:100::-;3416:12;:10;:12::i;:::-;3406:22;;:6;;;;;;;;;;:22;;;3398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12075:39:::1;12092:21;12075:16;:39::i;:::-;12022:100::o:0;1028:98::-;1081:7;1108:10;1101:17;;1028:98;:::o;7417:335::-;7527:1;7510:19;;:5;:19;;;7502:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7608:1;7589:21;;:7;:21;;;7581:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7690:6;7660:11;:18;7672:5;7660:18;;;;;;;;;;;;;;;:27;7679:7;7660:27;;;;;;;;;;;;;;;:36;;;;7728:7;7712:32;;7721:5;7712:32;;;7737:6;7712:32;;;;;;:::i;:::-;;;;;;;;7417:335;;;:::o;7760:1840::-;7864:1;7848:18;;:4;:18;;;7840:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7941:1;7927:16;;:2;:16;;;7919:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8011:1;8002:6;:10;7994:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8079:13;8117:7;:5;:7::i;:::-;8109:15;;:4;:15;;;;:32;;;;;8134:7;:5;:7::i;:::-;8128:13;;:2;:13;;;;8109:32;8105:1159;;;8167:12;:18;8180:4;8167:18;;;;;;;;;;;;;;;;;;;;;;;;;8166:19;:40;;;;;8190:12;:16;8203:2;8190:16;;;;;;;;;;;;;;;;;;;;;;;;;8189:17;8166:40;8158:49;;;;;;8226:8;;;;;;;;;;;8222:85;;8260:31;8287:3;8260:22;8271:10;;8260:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;8252:39;;8222:85;8354:12;8339:11;;8324:12;;:26;;;;:::i;:::-;:42;;:67;;;;;8387:4;8370:21;;:15;;;;;;;;;;;:21;;;8324:67;8321:137;;;8419:23;8438:3;8419:14;8430:2;8419:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;8411:31;;8321:137;8484:13;;;;;;;;;;;8476:21;;:4;:21;;;:55;;;;;8515:15;;;;;;;;;;;8501:30;;:2;:30;;;;8476:55;:83;;;;;8537:18;:22;8556:2;8537:22;;;;;;;;;;;;;;;;;;;;;;;;;8535:24;8476:83;8472:308;;;8599:12;;8589:6;:22;;8581:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8694:14;;8684:6;8668:13;8678:2;8668:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8660:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8758:4;;:6;;;;;;;;;:::i;:::-;;;;;;8472:308;8796:28;8827:24;8845:4;8827:9;:24::i;:::-;8796:55;;8871:8;;;;;;;;;;;8870:9;:34;;;;;8891:13;;;;;;;;;;;8883:21;;:4;:21;;;;8870:34;:49;;;;;8908:11;;;;;;;;;;;8870:49;:82;;;;;8944:8;;8923:20;:29;8870:82;:101;;;;;8961:10;;8956:4;;:15;8870:101;8866:387;;;8992:49;9018:6;9009:8;;:15;:31;;9032:8;;9009:31;;;9025:6;9009:31;8992:16;:49::i;:::-;9060:26;9089:21;9060:50;;9153:1;9132:18;:22;9129:109;;;9179:39;9196:21;9179:16;:39::i;:::-;9129:109;8973:280;8866:387;8143:1121;8105:1159;9292:27;9312:6;9292:9;:15;9302:4;9292:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9276:9;:15;9286:4;9276:15;;;;;;;;;;;;;;;:43;;;;9344:36;9362:17;9373:5;9362:6;:10;;:17;;;;:::i;:::-;9344:9;:13;9354:2;9344:13;;;;;;;;;;;;;;;;:17;;:36;;;;:::i;:::-;9330:9;:13;9340:2;9330:13;;;;;;;;;;;;;;;:50;;;;9411:2;9396:37;;9405:4;9396:37;;;9415:17;9426:5;9415:6;:10;;:17;;;;:::i;:::-;9396:37;;;;;;:::i;:::-;;;;;;;;9453:1;9447:5;:7;9444:149;;;9493:35;9522:5;9493:9;:24;9511:4;9493:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;9468:9;:24;9486:4;9468:24;;;;;;;;;;;;;;;:60;;;;9569:4;9546:35;;9555:4;9546:35;;;9575:5;9546:35;;;;;;:::i;:::-;;;;;;;;9444:149;7829:1771;7760:1840;;;:::o;2171:190::-;2257:7;2290:1;2285;:6;;2293:12;2277:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2317:9;2333:1;2329;:5;;;;:::i;:::-;2317:17;;2352:1;2345:8;;;2171:190;;;;;:::o;9608:480::-;5723:4;5712:8;;:15;;;;;;;;;;;;;;;;;;9683:21:::1;9721:1;9707:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9683:40;;9752:4;9734;9739:1;9734:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9778:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9768:4;9773:1;9768:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9811:62;9828:4;9843:15;;;;;;;;;;;9861:11;9811:8;:62::i;:::-;9884:15;;;;;;;;;;;:66;;;9965:11;9991:1;10007:4;10034;10054:15;9884:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9672:416;5761:5:::0;5750:8;;:16;;;;;;;;;;;;;;;;;;9608:480;:::o;10262:106::-;10331:11;;;;;;;;;;;10323:29;;:37;10353:6;10323:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10262:106;:::o;2369:246::-;2427:7;2456:1;2451;:6;2447:47;;2481:1;2474:8;;;;2447:47;2504:9;2520:1;2516;:5;;;;:::i;:::-;2504:17;;2549:1;2544;2540;:5;;;;:::i;:::-;:10;2532:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2606:1;2599:8;;;2369:246;;;;;:::o;2623:132::-;2681:7;2708:39;2712:1;2715;2708:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2701:46;;2623:132;;;;:::o;2027:136::-;2085:7;2112:43;2116:1;2119;2112:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2105:50;;2027:136;;;;:::o;1840:179::-;1898:7;1918:9;1934:1;1930;:5;;;;:::i;:::-;1918:17;;1959:1;1954;:6;;1946:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2010:1;2003:8;;;1840:179;;;;:::o;2763:189::-;2849:7;2881:1;2877;:5;2884:12;2869:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2908:9;2924:1;2920;:5;;;;:::i;:::-;2908:17;;2943:1;2936:8;;;2763: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:539::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7772:1;7761:9;7757:17;7744:31;7802:18;7794:6;7791:30;7788:117;;;7824:79;;:::i;:::-;7788:117;7929:78;7999:7;7990:6;7979:9;7975:22;7929:78;:::i;:::-;7919:88;;7715:302;7485:539;;;;:::o;8030:329::-;8089:6;8138:2;8126:9;8117:7;8113:23;8109:32;8106:119;;;8144:79;;:::i;:::-;8106:119;8264:1;8289:53;8334:7;8325:6;8314:9;8310:22;8289:53;:::i;:::-;8279:63;;8235:117;8030:329;;;;:::o;8365:118::-;8452:24;8470:5;8452:24;:::i;:::-;8447:3;8440:37;8365:118;;:::o;8489:222::-;8582:4;8620:2;8609:9;8605:18;8597:26;;8633:71;8701:1;8690:9;8686:17;8677:6;8633:71;:::i;:::-;8489:222;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:102;9425:8;9472:5;9469:1;9465:13;9444:34;;9383:102;;;:::o;9491:848::-;9552:5;9559:4;9583:6;9574:15;;9607:5;9598:14;;9621:712;9642:1;9632:8;9629:15;9621:712;;;9737:4;9732:3;9728:14;9722:4;9719:24;9716:50;;;9746:18;;:::i;:::-;9716:50;9796:1;9786:8;9782:16;9779:451;;;10211:4;10204:5;10200:16;10191:25;;9779:451;10261:4;10255;10251:15;10243:23;;10291:32;10314:8;10291:32;:::i;:::-;10279:44;;9621:712;;;9491:848;;;;;;;:::o;10345:1073::-;10399:5;10590:8;10580:40;;10611:1;10602:10;;10613:5;;10580:40;10639:4;10629:36;;10656:1;10647:10;;10658:5;;10629:36;10725:4;10773:1;10768:27;;;;10809:1;10804:191;;;;10718:277;;10768:27;10786:1;10777:10;;10788:5;;;10804:191;10849:3;10839:8;10836:17;10833:43;;;10856:18;;:::i;:::-;10833:43;10905:8;10902:1;10898:16;10889:25;;10940:3;10933:5;10930:14;10927:40;;;10947:18;;:::i;:::-;10927:40;10980:5;;;10718:277;;11104:2;11094:8;11091:16;11085:3;11079:4;11076:13;11072:36;11054:2;11044:8;11041:16;11036:2;11030:4;11027:12;11023:35;11007:111;11004:246;;;11160:8;11154:4;11150:19;11141:28;;11195:3;11188:5;11185:14;11182:40;;;11202:18;;:::i;:::-;11182:40;11235:5;;11004:246;11275:42;11313:3;11303:8;11297:4;11294:1;11275:42;:::i;:::-;11260:57;;;;11349:4;11344:3;11340:14;11333:5;11330:25;11327:51;;;11358:18;;:::i;:::-;11327:51;11407:4;11400:5;11396:16;11387:25;;10345:1073;;;;;;:::o;11424:281::-;11482:5;11506:23;11524:4;11506:23;:::i;:::-;11498:31;;11550:25;11566:8;11550:25;:::i;:::-;11538:37;;11594:104;11631:66;11621:8;11615:4;11594:104;:::i;:::-;11585:113;;11424:281;;;;:::o;11711:410::-;11751:7;11774:20;11792:1;11774:20;:::i;:::-;11769:25;;11808:20;11826:1;11808:20;:::i;:::-;11803:25;;11863:1;11860;11856:9;11885:30;11903:11;11885:30;:::i;:::-;11874:41;;12064:1;12055:7;12051:15;12048:1;12045:22;12025:1;12018:9;11998:83;11975:139;;12094:18;;:::i;:::-;11975:139;11759:362;11711:410;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:180::-;13160:77;13157:1;13150:88;13257:4;13254:1;13247:15;13281:4;13278:1;13271:15;13298:233;13337:3;13360:24;13378:5;13360:24;:::i;:::-;13351:33;;13406:66;13399:5;13396:77;13393:103;;13476:18;;:::i;:::-;13393:103;13523:1;13516:5;13512:13;13505:20;;13298:233;;;:::o;13537:166::-;13677:18;13673:1;13665:6;13661:14;13654:42;13537:166;:::o;13709:366::-;13851:3;13872:67;13936:2;13931:3;13872:67;:::i;:::-;13865:74;;13948:93;14037:3;13948:93;:::i;:::-;14066:2;14061:3;14057:12;14050:19;;13709:366;;;:::o;14081:419::-;14247:4;14285:2;14274:9;14270:18;14262:26;;14334:9;14328:4;14324:20;14320:1;14309:9;14305:17;14298:47;14362:131;14488:4;14362:131;:::i;:::-;14354:139;;14081:419;;;:::o;14506:173::-;14646:25;14642:1;14634:6;14630:14;14623:49;14506:173;:::o;14685:366::-;14827:3;14848:67;14912:2;14907:3;14848:67;:::i;:::-;14841:74;;14924:93;15013:3;14924:93;:::i;:::-;15042:2;15037:3;15033:12;15026:19;;14685:366;;;:::o;15057:419::-;15223:4;15261:2;15250:9;15246:18;15238:26;;15310:9;15304:4;15300:20;15296:1;15285:9;15281:17;15274:47;15338:131;15464:4;15338:131;:::i;:::-;15330:139;;15057:419;;;:::o;15482:173::-;15622:25;15618:1;15610:6;15606:14;15599:49;15482:173;:::o;15661:366::-;15803:3;15824:67;15888:2;15883:3;15824:67;:::i;:::-;15817:74;;15900:93;15989:3;15900:93;:::i;:::-;16018:2;16013:3;16009:12;16002:19;;15661:366;;;:::o;16033:419::-;16199:4;16237:2;16226:9;16222:18;16214:26;;16286:9;16280:4;16276:20;16272:1;16261:9;16257:17;16250:47;16314:131;16440:4;16314:131;:::i;:::-;16306:139;;16033:419;;;:::o;16458:143::-;16515:5;16546:6;16540:13;16531:22;;16562:33;16589:5;16562:33;:::i;:::-;16458:143;;;;:::o;16607:351::-;16677:6;16726:2;16714:9;16705:7;16701:23;16697:32;16694:119;;;16732:79;;:::i;:::-;16694:119;16852:1;16877:64;16933:7;16924:6;16913:9;16909:22;16877:64;:::i;:::-;16867:74;;16823:128;16607:351;;;;:::o;16964:332::-;17085:4;17123:2;17112:9;17108:18;17100:26;;17136:71;17204:1;17193:9;17189:17;17180:6;17136:71;:::i;:::-;17217:72;17285:2;17274:9;17270:18;17261:6;17217:72;:::i;:::-;16964:332;;;;;:::o;17302:85::-;17347:7;17376:5;17365:16;;17302:85;;;:::o;17393:60::-;17421:3;17442:5;17435:12;;17393:60;;;:::o;17459:158::-;17517:9;17550:61;17568:42;17577:32;17603:5;17577:32;:::i;:::-;17568:42;:::i;:::-;17550:61;:::i;:::-;17537:74;;17459:158;;;:::o;17623:147::-;17718:45;17757:5;17718:45;:::i;:::-;17713:3;17706:58;17623:147;;:::o;17776:807::-;18025:4;18063:3;18052:9;18048:19;18040:27;;18077:71;18145:1;18134:9;18130:17;18121:6;18077:71;:::i;:::-;18158:72;18226:2;18215:9;18211:18;18202:6;18158:72;:::i;:::-;18240:80;18316:2;18305:9;18301:18;18292:6;18240:80;:::i;:::-;18330;18406:2;18395:9;18391:18;18382:6;18330:80;:::i;:::-;18420:73;18488:3;18477:9;18473:19;18464:6;18420:73;:::i;:::-;18503;18571:3;18560:9;18556:19;18547:6;18503:73;:::i;:::-;17776:807;;;;;;;;;:::o;18589:143::-;18646:5;18677:6;18671:13;18662:22;;18693:33;18720:5;18693:33;:::i;:::-;18589:143;;;;:::o;18738:663::-;18826:6;18834;18842;18891:2;18879:9;18870:7;18866:23;18862:32;18859:119;;;18897:79;;:::i;:::-;18859:119;19017:1;19042:64;19098:7;19089:6;19078:9;19074:22;19042:64;:::i;:::-;19032:74;;18988:128;19155:2;19181:64;19237:7;19228:6;19217:9;19213:22;19181:64;:::i;:::-;19171:74;;19126:129;19294:2;19320:64;19376:7;19367:6;19356:9;19352:22;19320:64;:::i;:::-;19310:74;;19265:129;18738:663;;;;;:::o;19407:332::-;19528:4;19566:2;19555:9;19551:18;19543:26;;19579:71;19647:1;19636:9;19632:17;19623:6;19579:71;:::i;:::-;19660:72;19728:2;19717:9;19713:18;19704:6;19660:72;:::i;:::-;19407:332;;;;;:::o;19745:116::-;19815:21;19830:5;19815:21;:::i;:::-;19808:5;19805:32;19795:60;;19851:1;19848;19841:12;19795:60;19745:116;:::o;19867:137::-;19921:5;19952:6;19946:13;19937:22;;19968:30;19992:5;19968:30;:::i;:::-;19867:137;;;;:::o;20010:345::-;20077:6;20126:2;20114:9;20105:7;20101:23;20097:32;20094:119;;;20132:79;;:::i;:::-;20094:119;20252:1;20277:61;20330:7;20321:6;20310:9;20306:22;20277:61;:::i;:::-;20267:71;;20223:125;20010:345;;;;:::o;20361:223::-;20501:34;20497:1;20489:6;20485:14;20478:58;20570:6;20565:2;20557:6;20553:15;20546:31;20361:223;:::o;20590:366::-;20732:3;20753:67;20817:2;20812:3;20753:67;:::i;:::-;20746:74;;20829:93;20918:3;20829:93;:::i;:::-;20947:2;20942:3;20938:12;20931:19;;20590:366;;;:::o;20962:419::-;21128:4;21166:2;21155:9;21151:18;21143:26;;21215:9;21209:4;21205:20;21201:1;21190:9;21186:17;21179:47;21243:131;21369:4;21243:131;:::i;:::-;21235:139;;20962:419;;;:::o;21387:221::-;21527:34;21523:1;21515:6;21511:14;21504:58;21596:4;21591:2;21583:6;21579:15;21572:29;21387:221;:::o;21614:366::-;21756:3;21777:67;21841:2;21836:3;21777:67;:::i;:::-;21770:74;;21853:93;21942:3;21853:93;:::i;:::-;21971:2;21966:3;21962:12;21955:19;;21614:366;;;:::o;21986:419::-;22152:4;22190:2;22179:9;22175:18;22167:26;;22239:9;22233:4;22229:20;22225:1;22214:9;22210:17;22203:47;22267:131;22393:4;22267:131;:::i;:::-;22259:139;;21986:419;;;:::o;22411:224::-;22551:34;22547:1;22539:6;22535:14;22528:58;22620:7;22615:2;22607:6;22603:15;22596:32;22411:224;:::o;22641:366::-;22783:3;22804:67;22868:2;22863:3;22804:67;:::i;:::-;22797:74;;22880:93;22969:3;22880:93;:::i;:::-;22998:2;22993:3;22989:12;22982:19;;22641:366;;;:::o;23013:419::-;23179:4;23217:2;23206:9;23202:18;23194:26;;23266:9;23260:4;23256:20;23252:1;23241:9;23237:17;23230:47;23294:131;23420:4;23294:131;:::i;:::-;23286:139;;23013:419;;;:::o;23438:222::-;23578:34;23574:1;23566:6;23562:14;23555:58;23647:5;23642:2;23634:6;23630:15;23623:30;23438:222;:::o;23666:366::-;23808:3;23829:67;23893:2;23888:3;23829:67;:::i;:::-;23822:74;;23905:93;23994:3;23905:93;:::i;:::-;24023:2;24018:3;24014:12;24007:19;;23666:366;;;:::o;24038:419::-;24204:4;24242:2;24231:9;24227:18;24219:26;;24291:9;24285:4;24281:20;24277:1;24266:9;24262:17;24255:47;24319:131;24445:4;24319:131;:::i;:::-;24311:139;;24038:419;;;:::o;24463:228::-;24603:34;24599:1;24591:6;24587:14;24580:58;24672:11;24667:2;24659:6;24655:15;24648:36;24463:228;:::o;24697:366::-;24839:3;24860:67;24924:2;24919:3;24860:67;:::i;:::-;24853:74;;24936:93;25025:3;24936:93;:::i;:::-;25054:2;25049:3;25045:12;25038:19;;24697:366;;;:::o;25069:419::-;25235:4;25273:2;25262:9;25258:18;25250:26;;25322:9;25316:4;25312:20;25308:1;25297:9;25293:17;25286:47;25350:131;25476:4;25350:131;:::i;:::-;25342:139;;25069:419;;;:::o;25494:191::-;25534:3;25553:20;25571:1;25553:20;:::i;:::-;25548:25;;25587:20;25605:1;25587:20;:::i;:::-;25582:25;;25630:1;25627;25623:9;25616:16;;25651:3;25648:1;25645:10;25642:36;;;25658:18;;:::i;:::-;25642:36;25494:191;;;;:::o;25691:175::-;25831:27;25827:1;25819:6;25815:14;25808:51;25691:175;:::o;25872:366::-;26014:3;26035:67;26099:2;26094:3;26035:67;:::i;:::-;26028:74;;26111:93;26200:3;26111:93;:::i;:::-;26229:2;26224:3;26220:12;26213:19;;25872:366;;;:::o;26244:419::-;26410:4;26448:2;26437:9;26433:18;26425:26;;26497:9;26491:4;26487:20;26483:1;26472:9;26468:17;26461:47;26525:131;26651:4;26525:131;:::i;:::-;26517:139;;26244:419;;;:::o;26669:176::-;26809:28;26805:1;26797:6;26793:14;26786:52;26669:176;:::o;26851:366::-;26993:3;27014:67;27078:2;27073:3;27014:67;:::i;:::-;27007:74;;27090:93;27179:3;27090:93;:::i;:::-;27208:2;27203:3;27199:12;27192:19;;26851:366;;;:::o;27223:419::-;27389:4;27427:2;27416:9;27412:18;27404:26;;27476:9;27470:4;27466:20;27462:1;27451:9;27447:17;27440:47;27504:131;27630:4;27504:131;:::i;:::-;27496:139;;27223:419;;;:::o;27648:194::-;27688:4;27708:20;27726:1;27708:20;:::i;:::-;27703:25;;27742:20;27760:1;27742:20;:::i;:::-;27737:25;;27786:1;27783;27779:9;27771:17;;27810:1;27804:4;27801:11;27798:37;;;27815:18;;:::i;:::-;27798:37;27648:194;;;;:::o;27848:114::-;27915:6;27949:5;27943:12;27933:22;;27848:114;;;:::o;27968:184::-;28067:11;28101:6;28096:3;28089:19;28141:4;28136:3;28132:14;28117:29;;27968:184;;;;:::o;28158:132::-;28225:4;28248:3;28240:11;;28278:4;28273:3;28269:14;28261:22;;28158:132;;;:::o;28296:108::-;28373:24;28391:5;28373:24;:::i;:::-;28368:3;28361:37;28296:108;;:::o;28410:179::-;28479:10;28500:46;28542:3;28534:6;28500:46;:::i;:::-;28578:4;28573:3;28569:14;28555:28;;28410:179;;;;:::o;28595:113::-;28665:4;28697;28692:3;28688:14;28680:22;;28595:113;;;:::o;28744:732::-;28863:3;28892:54;28940:5;28892:54;:::i;:::-;28962:86;29041:6;29036:3;28962:86;:::i;:::-;28955:93;;29072:56;29122:5;29072:56;:::i;:::-;29151:7;29182:1;29167:284;29192:6;29189:1;29186:13;29167:284;;;29268:6;29262:13;29295:63;29354:3;29339:13;29295:63;:::i;:::-;29288:70;;29381:60;29434:6;29381:60;:::i;:::-;29371:70;;29227:224;29214:1;29211;29207:9;29202:14;;29167:284;;;29171:14;29467:3;29460:10;;28868:608;;;28744:732;;;;:::o;29482:831::-;29745:4;29783:3;29772:9;29768:19;29760:27;;29797:71;29865:1;29854:9;29850:17;29841:6;29797:71;:::i;:::-;29878:80;29954:2;29943:9;29939:18;29930:6;29878:80;:::i;:::-;30005:9;29999:4;29995:20;29990:2;29979:9;29975:18;29968:48;30033:108;30136:4;30127:6;30033:108;:::i;:::-;30025:116;;30151:72;30219:2;30208:9;30204:18;30195:6;30151:72;:::i;:::-;30233:73;30301:3;30290:9;30286:19;30277:6;30233:73;:::i;:::-;29482:831;;;;;;;;:::o;30319:180::-;30367:77;30364:1;30357:88;30464:4;30461:1;30454:15;30488:4;30485:1;30478:15;30505:185;30545:1;30562:20;30580:1;30562:20;:::i;:::-;30557:25;;30596:20;30614:1;30596:20;:::i;:::-;30591:25;;30635:1;30625:35;;30640:18;;:::i;:::-;30625:35;30682:1;30679;30675:9;30670:14;;30505:185;;;;:::o;30696:220::-;30836:34;30832:1;30824:6;30820:14;30813:58;30905:3;30900:2;30892:6;30888:15;30881:28;30696:220;:::o;30922:366::-;31064:3;31085:67;31149:2;31144:3;31085:67;:::i;:::-;31078:74;;31161:93;31250:3;31161:93;:::i;:::-;31279:2;31274:3;31270:12;31263:19;;30922:366;;;:::o;31294:419::-;31460:4;31498:2;31487:9;31483:18;31475:26;;31547:9;31541:4;31537:20;31533:1;31522:9;31518:17;31511:47;31575:131;31701:4;31575:131;:::i;:::-;31567:139;;31294:419;;;:::o;31719:177::-;31859:29;31855:1;31847:6;31843:14;31836:53;31719:177;:::o;31902:366::-;32044:3;32065:67;32129:2;32124:3;32065:67;:::i;:::-;32058:74;;32141:93;32230:3;32141:93;:::i;:::-;32259:2;32254:3;32250:12;32243:19;;31902:366;;;:::o;32274:419::-;32440:4;32478:2;32467:9;32463:18;32455:26;;32527:9;32521:4;32517:20;32513:1;32502:9;32498:17;32491:47;32555:131;32681:4;32555:131;:::i;:::-;32547:139;;32274:419;;;:::o

Swarm Source

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