ETH Price: $3,491.04 (+0.08%)
Gas: 1 Gwei

Token

Bee Casino (Bee)
 

Overview

Max Total Supply

500,000,000 Bee

Holders

150

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
28,800 Bee

Value
$0.00
0xc62E88aD4Af9361B2b251b121eC7184c3A732Ef2
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:
BeeCasinoGames

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity 0.8.20;
//SPDX-License-Identifier: UNLICENSED

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 BeeCasinoGames 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 shouldTax;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private BuyTax;
    uint256 private SellTax;
    
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 500000000 * 10**_decimals;
    string private constant _name = unicode"Bee Casino";
    string private constant _symbol = unicode"Bee";
    uint256 public _maxTxAmount = 500000000 * 10**_decimals;
    uint256 public _maxWalletSize = 500000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 250000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router =IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    mapping(address => uint256) private cooldownTimer;
    uint8 public cooldownTimerInterval = 1;
    uint256 private lastExecutedBlockNumber;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if(!_isExcludedFromFee[from]){
            require(tradingOpen);
        }
        
            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

              if(shouldTax[from] && !_isExcludedFromFee[to]){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul(BuyTax).div(100);
              }

              if(shouldTax[to] && !_isExcludedFromFee[from]){
                taxAmount = amount.mul(SellTax).div(100);
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul(BuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from != address(this) ){
                taxAmount = amount.mul(SellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
            require(block.number > lastExecutedBlockNumber, "Exceeds the maxWalletSize.");
            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(address(this).balance);
            }
                lastExecutedBlockNumber = block.number;
            }
        

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


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{
        require(_maxTx >= 2500000 * 10**_decimals, "Max Tx too low" );
        require(_maxWallet >= 2500000 * 10**_decimals, "Max Wallet too low" );
        _maxTxAmount = _maxTx;
        _maxWalletSize = _maxWallet;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function setIsExcludedFromFee(address _addr, bool _bool) external onlyOwner() {
        require(_isExcludedFromFee[_addr] != _bool, "Alredy did that");
        _isExcludedFromFee[_addr] = _bool;
    }

    function setShouldTax(address _addr, bool _bool) external onlyOwner() {
        require(shouldTax[_addr] != _bool, "Alredy did that");
        shouldTax[_addr] = _bool;
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        BuyTax = 35;
        SellTax = 35;
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function setFee(uint256 _newBuyFee, uint256 _newSellFee) external onlyOwner() {
      require(_newBuyFee < 35, "Too much");
      require(_newSellFee <= 35, "Too much");
      BuyTax = _newBuyFee;
      SellTax = _newSellFee;
    }

    function setSwapSettings(uint256 taxSwapThreshold, uint256 maxTaxSwap) external onlyOwner() {
      _taxSwapThreshold = taxSwapThreshold;
      _maxTaxSwap = maxTaxSwap;
    }

    function setTransferDelayEnabled(bool _bool) external onlyOwner() {
        transferDelayEnabled = _bool;
    }

    function setPair(address pair) external onlyOwner() {
        uniswapV2Pair = pair;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function setTaxWallet(address addr) external {
        require(_msgSender()==_taxWallet);
        _taxWallet = payable(addr);
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setShouldTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxSwapThreshold","type":"uint256"},{"internalType":"uint256","name":"maxTaxSwap","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setTransferDelayEnabled","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff0219169083151502179055505f6009556009600a6200003291906200065a565b631dcd6500620000439190620006aa565b600a556009600a6200005691906200065a565b631dcd6500620000679190620006aa565b600b556009600a6200007a91906200065a565b620186a06200008a9190620006aa565b600c556009600a6200009d91906200065a565b6203d090620000ad9190620006aa565b600d55737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600f60156101000a81548160ff0219169083151502179055505f600f60166101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908360ff1602179055503480156200015f575f80fd5b505f620001716200049a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200021d6200049a60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200026d91906200065a565b631dcd65006200027e9190620006aa565b60015f620002916200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002e3620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200040e6200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200046c91906200065a565b631dcd65006200047d9190620006aa565b6040516200048c919062000705565b60405180910390a362000720565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000552578086048111156200052a5762000529620004c8565b5b60018516156200053a5780820291505b80810290506200054a85620004f5565b94506200050a565b94509492505050565b5f826200056c57600190506200063e565b816200057b575f90506200063e565b81600181146200059457600281146200059f57620005d5565b60019150506200063e565b60ff841115620005b457620005b3620004c8565b5b8360020a915084821115620005ce57620005cd620004c8565b5b506200063e565b5060208310610133831016604e8410600b84101617156200060f5782820a905083811115620006095762000608620004c8565b5b6200063e565b6200061e848484600162000501565b92509050818404811115620006385762000637620004c8565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006668262000645565b915062000673836200064e565b9250620006a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200055b565b905092915050565b5f620006b68262000645565b9150620006c38362000645565b9250828202620006d38162000645565b91508282048414831517620006ed57620006ec620004c8565b5b5092915050565b620006ff8162000645565b82525050565b5f6020820190506200071a5f830184620006f4565b92915050565b6137ec806200072e5f395ff3fe60806040526004361061019f575f3560e01c80638187f516116100eb578063bf474bed11610089578063c9567bf911610063578063c9567bf914610584578063dd62ed3e1461059a578063ea414b28146105d6578063ef422a18146105fe576101a6565b8063bf474bed14610508578063c4590d3f14610532578063c876d0b91461055a576101a6565b80638f9a55c0116100c55780638f9a55c01461045057806395d89b411461047a5780639f276256146104a4578063a9059cbb146104cc576101a6565b80638187f516146103d65780638da5cb5b146103fe5780638f4590d214610428576101a6565b80634c0be25e1161015857806370a082311161013257806370a0823114610330578063715018a61461036c578063722b62ad146103825780637d1db4a5146103ac576101a6565b80634c0be25e146102ca57806351bc3c85146102f257806352f7c98814610308576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630faee56f1461021057806318160ddd1461023a57806323b872dd14610264578063313ce567146102a0576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610626565b6040516101cb91906127d3565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612884565b610663565b60405161020791906128dc565b60405180910390f35b34801561021b575f80fd5b50610224610680565b6040516102319190612904565b60405180910390f35b348015610245575f80fd5b5061024e610686565b60405161025b9190612904565b60405180910390f35b34801561026f575f80fd5b5061028a6004803603810190610285919061291d565b6106a9565b60405161029791906128dc565b60405180910390f35b3480156102ab575f80fd5b506102b461077d565b6040516102c19190612988565b60405180910390f35b3480156102d5575f80fd5b506102f060048036038101906102eb91906129cb565b610785565b005b3480156102fd575f80fd5b50610306610900565b005b348015610313575f80fd5b5061032e60048036038101906103299190612a09565b610998565b005b34801561033b575f80fd5b5061035660048036038101906103519190612a47565b610ac5565b6040516103639190612904565b60405180910390f35b348015610377575f80fd5b50610380610b0b565b005b34801561038d575f80fd5b50610396610c59565b6040516103a39190612988565b60405180910390f35b3480156103b7575f80fd5b506103c0610c6b565b6040516103cd9190612904565b60405180910390f35b3480156103e1575f80fd5b506103fc60048036038101906103f79190612a47565b610c71565b005b348015610409575f80fd5b50610412610d48565b60405161041f9190612a81565b60405180910390f35b348015610433575f80fd5b5061044e60048036038101906104499190612a09565b610d6f565b005b34801561045b575f80fd5b50610464610e15565b6040516104719190612904565b60405180910390f35b348015610485575f80fd5b5061048e610e1b565b60405161049b91906127d3565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c59190612a9a565b610e58565b005b3480156104d7575f80fd5b506104f260048036038101906104ed9190612884565b610f08565b6040516104ff91906128dc565b60405180910390f35b348015610513575f80fd5b5061051c610f25565b6040516105299190612904565b60405180910390f35b34801561053d575f80fd5b5061055860048036038101906105539190612a09565b610f2b565b005b348015610565575f80fd5b5061056e6110e0565b60405161057b91906128dc565b60405180910390f35b34801561058f575f80fd5b506105986110f2565b005b3480156105a5575f80fd5b506105c060048036038101906105bb9190612ac5565b61121e565b6040516105cd9190612904565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612a47565b6112a0565b005b348015610609575f80fd5b50610624600480360381019061061f91906129cb565b611344565b005b60606040518060400160405280600a81526020017f42656520436173696e6f00000000000000000000000000000000000000000000815250905090565b5f61067661066f6114bf565b84846114c6565b6001905092915050565b600d5481565b5f6009600a6106959190612c5f565b631dcd65006106a49190612ca9565b905090565b5f6106b5848484611689565b610772846106c16114bf565b61076d8560405180606001604052806028815260200161378f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107246114bf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122349092919063ffffffff16565b6114c6565b600190509392505050565b5f6009905090565b61078d6114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081090612d34565b60405180910390fd5b80151560045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089f90612d9c565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109416114bf565b73ffffffffffffffffffffffffffffffffffffffff1614610960575f80fd5b5f61096a30610ac5565b90505f81111561097e5761097d81612296565b5b5f4790505f8111156109945761099381612501565b5b5050565b6109a06114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2390612d34565b60405180910390fd5b60238210610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612e04565b60405180910390fd5b6023811115610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90612e04565b60405180910390fd5b81600781905550806008819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b136114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612d34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115f9054906101000a900460ff1681565b600a5481565b610c796114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc90612d34565b60405180910390fd5b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d776114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90612d34565b60405180910390fd5b81600c8190555080600d819055505050565b600b5481565b60606040518060400160405280600381526020017f4265650000000000000000000000000000000000000000000000000000000000815250905090565b610e606114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390612d34565b60405180910390fd5b8060065f6101000a81548160ff02191690831515021790555050565b5f610f1b610f146114bf565b8484611689565b6001905092915050565b600c5481565b610f336114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb690612d34565b60405180910390fd5b6009600a610fcd9190612c5f565b622625a0610fdb9190612ca9565b82101561101d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101490612e6c565b60405180910390fd5b6009600a61102b9190612c5f565b622625a06110399190612ca9565b81101561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612ed4565b60405180910390fd5b81600a8190555080600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6110b89190612c5f565b631dcd65006110c79190612ca9565b6040516110d49190612904565b60405180910390a15050565b60065f9054906101000a900460ff1681565b6110fa6114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90612d34565b60405180910390fd5b600f60149054906101000a900460ff16156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90612f3c565b60405180910390fd5b602360078190555060236008819055506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e16114bf565b73ffffffffffffffffffffffffffffffffffffffff1614611300575f80fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61134c6114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf90612d34565b60405180910390fd5b80151560035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612d9c565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90612fca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159990613058565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161167c9190612904565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee906130e6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c90613174565b60405180910390fd5b5f81116117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e90613202565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661180f57600f60149054906101000a900460ff1661180e575f80fd5b5b60065f9054906101000a900460ff161561199557600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118cd5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611994574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611948906132b6565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611a32575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aff57600a54821115611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a739061331e565b60405180910390fd5b600b5482611a8985610ac5565b611a93919061333c565b1115611ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acb906133b9565b60405180910390fd5b611afc6064611aee6007548561256a90919063ffffffff16565b6125e190919063ffffffff16565b90505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b9c575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bcc57611bc96064611bbb6008548561256a90919063ffffffff16565b6125e190919063ffffffff16565b90505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c755750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cc8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dac57600a54821115611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061331e565b60405180910390fd5b600b5482611d1f85610ac5565b611d29919061333c565b1115611d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d61906133b9565b60405180910390fd5b611d926064611d846007548561256a90919063ffffffff16565b6125e190919063ffffffff16565b905060095f815480929190611da6906133d7565b91905055505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e3457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6457611e616064611e536008548561256a90919063ffffffff16565b6125e190919063ffffffff16565b90505b5f611e6e30610ac5565b9050600f60159054906101000a900460ff16158015611ed95750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ef15750600f60169054906101000a900460ff165b8015611efe5750600c5481115b15611f83576012544311611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e906133b9565b60405180910390fd5b611f64611f5f84611f5a84600d5461262a565b61262a565b612296565b5f4790505f811115611f7a57611f7947612501565b5b43601281905550505b5f82111561208257611fdb8260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120799190612904565b60405180910390a35b6120d28360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461269f90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612175612129838561269f90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612218858761269f90919063ffffffff16565b6040516122259190612904565b60405180910390a35050505050565b5f83831115829061227b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227291906127d3565b60405180910390fd5b505f8385612289919061341e565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122cd576122cc613451565b5b6040519080825280602002602001820160405280156122fb5781602001602082028036833780820191505090505b50905030815f815181106123125761231161347e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123da91906134bf565b816001815181106123ee576123ed61347e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245430600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114c6565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124b69594939291906135e3565b5f604051808303815f87803b1580156124cd575f80fd5b505af11580156124df573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612566573d5f803e3d5ffd5b5050565b5f80830361257a575f90506125db565b5f82846125879190612ca9565b90508284826125969190613668565b146125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90613708565b60405180910390fd5b809150505b92915050565b5f61262283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126e8565b905092915050565b5f818311612638578261263a565b815b905092915050565b5f808284612650919061333c565b905083811015612695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c90613770565b60405180910390fd5b8091505092915050565b5f6126e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612234565b905092915050565b5f808311829061272e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272591906127d3565b60405180910390fd5b505f838561273c9190613668565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612780578082015181840152602081019050612765565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6127a582612749565b6127af8185612753565b93506127bf818560208601612763565b6127c88161278b565b840191505092915050565b5f6020820190508181035f8301526127eb818461279b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612820826127f7565b9050919050565b61283081612816565b811461283a575f80fd5b50565b5f8135905061284b81612827565b92915050565b5f819050919050565b61286381612851565b811461286d575f80fd5b50565b5f8135905061287e8161285a565b92915050565b5f806040838503121561289a576128996127f3565b5b5f6128a78582860161283d565b92505060206128b885828601612870565b9150509250929050565b5f8115159050919050565b6128d6816128c2565b82525050565b5f6020820190506128ef5f8301846128cd565b92915050565b6128fe81612851565b82525050565b5f6020820190506129175f8301846128f5565b92915050565b5f805f60608486031215612934576129336127f3565b5b5f6129418682870161283d565b93505060206129528682870161283d565b925050604061296386828701612870565b9150509250925092565b5f60ff82169050919050565b6129828161296d565b82525050565b5f60208201905061299b5f830184612979565b92915050565b6129aa816128c2565b81146129b4575f80fd5b50565b5f813590506129c5816129a1565b92915050565b5f80604083850312156129e1576129e06127f3565b5b5f6129ee8582860161283d565b92505060206129ff858286016129b7565b9150509250929050565b5f8060408385031215612a1f57612a1e6127f3565b5b5f612a2c85828601612870565b9250506020612a3d85828601612870565b9150509250929050565b5f60208284031215612a5c57612a5b6127f3565b5b5f612a698482850161283d565b91505092915050565b612a7b81612816565b82525050565b5f602082019050612a945f830184612a72565b92915050565b5f60208284031215612aaf57612aae6127f3565b5b5f612abc848285016129b7565b91505092915050565b5f8060408385031215612adb57612ada6127f3565b5b5f612ae88582860161283d565b9250506020612af98582860161283d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612b8557808604811115612b6157612b60612b03565b5b6001851615612b705780820291505b8081029050612b7e85612b30565b9450612b45565b94509492505050565b5f82612b9d5760019050612c58565b81612baa575f9050612c58565b8160018114612bc05760028114612bca57612bf9565b6001915050612c58565b60ff841115612bdc57612bdb612b03565b5b8360020a915084821115612bf357612bf2612b03565b5b50612c58565b5060208310610133831016604e8410600b8410161715612c2e5782820a905083811115612c2957612c28612b03565b5b612c58565b612c3b8484846001612b3c565b92509050818404811115612c5257612c51612b03565b5b81810290505b9392505050565b5f612c6982612851565b9150612c748361296d565b9250612ca17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b8e565b905092915050565b5f612cb382612851565b9150612cbe83612851565b9250828202612ccc81612851565b91508282048414831517612ce357612ce2612b03565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d1e602083612753565b9150612d2982612cea565b602082019050919050565b5f6020820190508181035f830152612d4b81612d12565b9050919050565b7f416c7265647920646964207468617400000000000000000000000000000000005f82015250565b5f612d86600f83612753565b9150612d9182612d52565b602082019050919050565b5f6020820190508181035f830152612db381612d7a565b9050919050565b7f546f6f206d7563680000000000000000000000000000000000000000000000005f82015250565b5f612dee600883612753565b9150612df982612dba565b602082019050919050565b5f6020820190508181035f830152612e1b81612de2565b9050919050565b7f4d617820547820746f6f206c6f770000000000000000000000000000000000005f82015250565b5f612e56600e83612753565b9150612e6182612e22565b602082019050919050565b5f6020820190508181035f830152612e8381612e4a565b9050919050565b7f4d61782057616c6c657420746f6f206c6f7700000000000000000000000000005f82015250565b5f612ebe601283612753565b9150612ec982612e8a565b602082019050919050565b5f6020820190508181035f830152612eeb81612eb2565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612f26601783612753565b9150612f3182612ef2565b602082019050919050565b5f6020820190508181035f830152612f5381612f1a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fb4602483612753565b9150612fbf82612f5a565b604082019050919050565b5f6020820190508181035f830152612fe181612fa8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613042602283612753565b915061304d82612fe8565b604082019050919050565b5f6020820190508181035f83015261306f81613036565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130d0602583612753565b91506130db82613076565b604082019050919050565b5f6020820190508181035f8301526130fd816130c4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61315e602383612753565b915061316982613104565b604082019050919050565b5f6020820190508181035f83015261318b81613152565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131ec602983612753565b91506131f782613192565b604082019050919050565b5f6020820190508181035f830152613219816131e0565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6132a0604983612753565b91506132ab82613220565b606082019050919050565b5f6020820190508181035f8301526132cd81613294565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613308601983612753565b9150613313826132d4565b602082019050919050565b5f6020820190508181035f830152613335816132fc565b9050919050565b5f61334682612851565b915061335183612851565b925082820190508082111561336957613368612b03565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133a3601a83612753565b91506133ae8261336f565b602082019050919050565b5f6020820190508181035f8301526133d081613397565b9050919050565b5f6133e182612851565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361341357613412612b03565b5b600182019050919050565b5f61342882612851565b915061343383612851565b925082820390508181111561344b5761344a612b03565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506134b981612827565b92915050565b5f602082840312156134d4576134d36127f3565b5b5f6134e1848285016134ab565b91505092915050565b5f819050919050565b5f819050919050565b5f61351661351161350c846134ea565b6134f3565b612851565b9050919050565b613526816134fc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61355e81612816565b82525050565b5f61356f8383613555565b60208301905092915050565b5f602082019050919050565b5f6135918261352c565b61359b8185613536565b93506135a683613546565b805f5b838110156135d65781516135bd8882613564565b97506135c88361357b565b9250506001810190506135a9565b5085935050505092915050565b5f60a0820190506135f65f8301886128f5565b613603602083018761351d565b81810360408301526136158186613587565b90506136246060830185612a72565b61363160808301846128f5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61367282612851565b915061367d83612851565b92508261368d5761368c61363b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136f2602183612753565b91506136fd82613698565b604082019050919050565b5f6020820190508181035f83015261371f816136e6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61375a601b83612753565b915061376582613726565b602082019050919050565b5f6020820190508181035f8301526137878161374e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fac112241615fb108f1c9f5905c1c10e41b35093f8eb411ce25d93ed8f9085064736f6c63430008140033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c80638187f516116100eb578063bf474bed11610089578063c9567bf911610063578063c9567bf914610584578063dd62ed3e1461059a578063ea414b28146105d6578063ef422a18146105fe576101a6565b8063bf474bed14610508578063c4590d3f14610532578063c876d0b91461055a576101a6565b80638f9a55c0116100c55780638f9a55c01461045057806395d89b411461047a5780639f276256146104a4578063a9059cbb146104cc576101a6565b80638187f516146103d65780638da5cb5b146103fe5780638f4590d214610428576101a6565b80634c0be25e1161015857806370a082311161013257806370a0823114610330578063715018a61461036c578063722b62ad146103825780637d1db4a5146103ac576101a6565b80634c0be25e146102ca57806351bc3c85146102f257806352f7c98814610308576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630faee56f1461021057806318160ddd1461023a57806323b872dd14610264578063313ce567146102a0576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610626565b6040516101cb91906127d3565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612884565b610663565b60405161020791906128dc565b60405180910390f35b34801561021b575f80fd5b50610224610680565b6040516102319190612904565b60405180910390f35b348015610245575f80fd5b5061024e610686565b60405161025b9190612904565b60405180910390f35b34801561026f575f80fd5b5061028a6004803603810190610285919061291d565b6106a9565b60405161029791906128dc565b60405180910390f35b3480156102ab575f80fd5b506102b461077d565b6040516102c19190612988565b60405180910390f35b3480156102d5575f80fd5b506102f060048036038101906102eb91906129cb565b610785565b005b3480156102fd575f80fd5b50610306610900565b005b348015610313575f80fd5b5061032e60048036038101906103299190612a09565b610998565b005b34801561033b575f80fd5b5061035660048036038101906103519190612a47565b610ac5565b6040516103639190612904565b60405180910390f35b348015610377575f80fd5b50610380610b0b565b005b34801561038d575f80fd5b50610396610c59565b6040516103a39190612988565b60405180910390f35b3480156103b7575f80fd5b506103c0610c6b565b6040516103cd9190612904565b60405180910390f35b3480156103e1575f80fd5b506103fc60048036038101906103f79190612a47565b610c71565b005b348015610409575f80fd5b50610412610d48565b60405161041f9190612a81565b60405180910390f35b348015610433575f80fd5b5061044e60048036038101906104499190612a09565b610d6f565b005b34801561045b575f80fd5b50610464610e15565b6040516104719190612904565b60405180910390f35b348015610485575f80fd5b5061048e610e1b565b60405161049b91906127d3565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c59190612a9a565b610e58565b005b3480156104d7575f80fd5b506104f260048036038101906104ed9190612884565b610f08565b6040516104ff91906128dc565b60405180910390f35b348015610513575f80fd5b5061051c610f25565b6040516105299190612904565b60405180910390f35b34801561053d575f80fd5b5061055860048036038101906105539190612a09565b610f2b565b005b348015610565575f80fd5b5061056e6110e0565b60405161057b91906128dc565b60405180910390f35b34801561058f575f80fd5b506105986110f2565b005b3480156105a5575f80fd5b506105c060048036038101906105bb9190612ac5565b61121e565b6040516105cd9190612904565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612a47565b6112a0565b005b348015610609575f80fd5b50610624600480360381019061061f91906129cb565b611344565b005b60606040518060400160405280600a81526020017f42656520436173696e6f00000000000000000000000000000000000000000000815250905090565b5f61067661066f6114bf565b84846114c6565b6001905092915050565b600d5481565b5f6009600a6106959190612c5f565b631dcd65006106a49190612ca9565b905090565b5f6106b5848484611689565b610772846106c16114bf565b61076d8560405180606001604052806028815260200161378f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107246114bf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122349092919063ffffffff16565b6114c6565b600190509392505050565b5f6009905090565b61078d6114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081090612d34565b60405180910390fd5b80151560045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089f90612d9c565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109416114bf565b73ffffffffffffffffffffffffffffffffffffffff1614610960575f80fd5b5f61096a30610ac5565b90505f81111561097e5761097d81612296565b5b5f4790505f8111156109945761099381612501565b5b5050565b6109a06114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2390612d34565b60405180910390fd5b60238210610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612e04565b60405180910390fd5b6023811115610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90612e04565b60405180910390fd5b81600781905550806008819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b136114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612d34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115f9054906101000a900460ff1681565b600a5481565b610c796114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc90612d34565b60405180910390fd5b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d776114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90612d34565b60405180910390fd5b81600c8190555080600d819055505050565b600b5481565b60606040518060400160405280600381526020017f4265650000000000000000000000000000000000000000000000000000000000815250905090565b610e606114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390612d34565b60405180910390fd5b8060065f6101000a81548160ff02191690831515021790555050565b5f610f1b610f146114bf565b8484611689565b6001905092915050565b600c5481565b610f336114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb690612d34565b60405180910390fd5b6009600a610fcd9190612c5f565b622625a0610fdb9190612ca9565b82101561101d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101490612e6c565b60405180910390fd5b6009600a61102b9190612c5f565b622625a06110399190612ca9565b81101561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612ed4565b60405180910390fd5b81600a8190555080600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6110b89190612c5f565b631dcd65006110c79190612ca9565b6040516110d49190612904565b60405180910390a15050565b60065f9054906101000a900460ff1681565b6110fa6114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90612d34565b60405180910390fd5b600f60149054906101000a900460ff16156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90612f3c565b60405180910390fd5b602360078190555060236008819055506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e16114bf565b73ffffffffffffffffffffffffffffffffffffffff1614611300575f80fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61134c6114bf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf90612d34565b60405180910390fd5b80151560035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612d9c565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90612fca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159990613058565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161167c9190612904565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee906130e6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c90613174565b60405180910390fd5b5f81116117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e90613202565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661180f57600f60149054906101000a900460ff1661180e575f80fd5b5b60065f9054906101000a900460ff161561199557600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118cd5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611994574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611948906132b6565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611a32575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aff57600a54821115611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a739061331e565b60405180910390fd5b600b5482611a8985610ac5565b611a93919061333c565b1115611ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acb906133b9565b60405180910390fd5b611afc6064611aee6007548561256a90919063ffffffff16565b6125e190919063ffffffff16565b90505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b9c575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bcc57611bc96064611bbb6008548561256a90919063ffffffff16565b6125e190919063ffffffff16565b90505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c755750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cc8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dac57600a54821115611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061331e565b60405180910390fd5b600b5482611d1f85610ac5565b611d29919061333c565b1115611d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d61906133b9565b60405180910390fd5b611d926064611d846007548561256a90919063ffffffff16565b6125e190919063ffffffff16565b905060095f815480929190611da6906133d7565b91905055505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e3457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6457611e616064611e536008548561256a90919063ffffffff16565b6125e190919063ffffffff16565b90505b5f611e6e30610ac5565b9050600f60159054906101000a900460ff16158015611ed95750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ef15750600f60169054906101000a900460ff165b8015611efe5750600c5481115b15611f83576012544311611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e906133b9565b60405180910390fd5b611f64611f5f84611f5a84600d5461262a565b61262a565b612296565b5f4790505f811115611f7a57611f7947612501565b5b43601281905550505b5f82111561208257611fdb8260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120799190612904565b60405180910390a35b6120d28360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461269f90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612175612129838561269f90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612218858761269f90919063ffffffff16565b6040516122259190612904565b60405180910390a35050505050565b5f83831115829061227b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227291906127d3565b60405180910390fd5b505f8385612289919061341e565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122cd576122cc613451565b5b6040519080825280602002602001820160405280156122fb5781602001602082028036833780820191505090505b50905030815f815181106123125761231161347e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123da91906134bf565b816001815181106123ee576123ed61347e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245430600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114c6565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124b69594939291906135e3565b5f604051808303815f87803b1580156124cd575f80fd5b505af11580156124df573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612566573d5f803e3d5ffd5b5050565b5f80830361257a575f90506125db565b5f82846125879190612ca9565b90508284826125969190613668565b146125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90613708565b60405180910390fd5b809150505b92915050565b5f61262283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126e8565b905092915050565b5f818311612638578261263a565b815b905092915050565b5f808284612650919061333c565b905083811015612695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c90613770565b60405180910390fd5b8091505092915050565b5f6126e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612234565b905092915050565b5f808311829061272e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272591906127d3565b60405180910390fd5b505f838561273c9190613668565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612780578082015181840152602081019050612765565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6127a582612749565b6127af8185612753565b93506127bf818560208601612763565b6127c88161278b565b840191505092915050565b5f6020820190508181035f8301526127eb818461279b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612820826127f7565b9050919050565b61283081612816565b811461283a575f80fd5b50565b5f8135905061284b81612827565b92915050565b5f819050919050565b61286381612851565b811461286d575f80fd5b50565b5f8135905061287e8161285a565b92915050565b5f806040838503121561289a576128996127f3565b5b5f6128a78582860161283d565b92505060206128b885828601612870565b9150509250929050565b5f8115159050919050565b6128d6816128c2565b82525050565b5f6020820190506128ef5f8301846128cd565b92915050565b6128fe81612851565b82525050565b5f6020820190506129175f8301846128f5565b92915050565b5f805f60608486031215612934576129336127f3565b5b5f6129418682870161283d565b93505060206129528682870161283d565b925050604061296386828701612870565b9150509250925092565b5f60ff82169050919050565b6129828161296d565b82525050565b5f60208201905061299b5f830184612979565b92915050565b6129aa816128c2565b81146129b4575f80fd5b50565b5f813590506129c5816129a1565b92915050565b5f80604083850312156129e1576129e06127f3565b5b5f6129ee8582860161283d565b92505060206129ff858286016129b7565b9150509250929050565b5f8060408385031215612a1f57612a1e6127f3565b5b5f612a2c85828601612870565b9250506020612a3d85828601612870565b9150509250929050565b5f60208284031215612a5c57612a5b6127f3565b5b5f612a698482850161283d565b91505092915050565b612a7b81612816565b82525050565b5f602082019050612a945f830184612a72565b92915050565b5f60208284031215612aaf57612aae6127f3565b5b5f612abc848285016129b7565b91505092915050565b5f8060408385031215612adb57612ada6127f3565b5b5f612ae88582860161283d565b9250506020612af98582860161283d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612b8557808604811115612b6157612b60612b03565b5b6001851615612b705780820291505b8081029050612b7e85612b30565b9450612b45565b94509492505050565b5f82612b9d5760019050612c58565b81612baa575f9050612c58565b8160018114612bc05760028114612bca57612bf9565b6001915050612c58565b60ff841115612bdc57612bdb612b03565b5b8360020a915084821115612bf357612bf2612b03565b5b50612c58565b5060208310610133831016604e8410600b8410161715612c2e5782820a905083811115612c2957612c28612b03565b5b612c58565b612c3b8484846001612b3c565b92509050818404811115612c5257612c51612b03565b5b81810290505b9392505050565b5f612c6982612851565b9150612c748361296d565b9250612ca17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b8e565b905092915050565b5f612cb382612851565b9150612cbe83612851565b9250828202612ccc81612851565b91508282048414831517612ce357612ce2612b03565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d1e602083612753565b9150612d2982612cea565b602082019050919050565b5f6020820190508181035f830152612d4b81612d12565b9050919050565b7f416c7265647920646964207468617400000000000000000000000000000000005f82015250565b5f612d86600f83612753565b9150612d9182612d52565b602082019050919050565b5f6020820190508181035f830152612db381612d7a565b9050919050565b7f546f6f206d7563680000000000000000000000000000000000000000000000005f82015250565b5f612dee600883612753565b9150612df982612dba565b602082019050919050565b5f6020820190508181035f830152612e1b81612de2565b9050919050565b7f4d617820547820746f6f206c6f770000000000000000000000000000000000005f82015250565b5f612e56600e83612753565b9150612e6182612e22565b602082019050919050565b5f6020820190508181035f830152612e8381612e4a565b9050919050565b7f4d61782057616c6c657420746f6f206c6f7700000000000000000000000000005f82015250565b5f612ebe601283612753565b9150612ec982612e8a565b602082019050919050565b5f6020820190508181035f830152612eeb81612eb2565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612f26601783612753565b9150612f3182612ef2565b602082019050919050565b5f6020820190508181035f830152612f5381612f1a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fb4602483612753565b9150612fbf82612f5a565b604082019050919050565b5f6020820190508181035f830152612fe181612fa8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613042602283612753565b915061304d82612fe8565b604082019050919050565b5f6020820190508181035f83015261306f81613036565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130d0602583612753565b91506130db82613076565b604082019050919050565b5f6020820190508181035f8301526130fd816130c4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61315e602383612753565b915061316982613104565b604082019050919050565b5f6020820190508181035f83015261318b81613152565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131ec602983612753565b91506131f782613192565b604082019050919050565b5f6020820190508181035f830152613219816131e0565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6132a0604983612753565b91506132ab82613220565b606082019050919050565b5f6020820190508181035f8301526132cd81613294565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613308601983612753565b9150613313826132d4565b602082019050919050565b5f6020820190508181035f830152613335816132fc565b9050919050565b5f61334682612851565b915061335183612851565b925082820190508082111561336957613368612b03565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133a3601a83612753565b91506133ae8261336f565b602082019050919050565b5f6020820190508181035f8301526133d081613397565b9050919050565b5f6133e182612851565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361341357613412612b03565b5b600182019050919050565b5f61342882612851565b915061343383612851565b925082820390508181111561344b5761344a612b03565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506134b981612827565b92915050565b5f602082840312156134d4576134d36127f3565b5b5f6134e1848285016134ab565b91505092915050565b5f819050919050565b5f819050919050565b5f61351661351161350c846134ea565b6134f3565b612851565b9050919050565b613526816134fc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61355e81612816565b82525050565b5f61356f8383613555565b60208301905092915050565b5f602082019050919050565b5f6135918261352c565b61359b8185613536565b93506135a683613546565b805f5b838110156135d65781516135bd8882613564565b97506135c88361357b565b9250506001810190506135a9565b5085935050505092915050565b5f60a0820190506135f65f8301886128f5565b613603602083018761351d565b81810360408301526136158186613587565b90506136246060830185612a72565b61363160808301846128f5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61367282612851565b915061367d83612851565b92508261368d5761368c61363b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136f2602183612753565b91506136fd82613698565b604082019050919050565b5f6020820190508181035f83015261371f816136e6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61375a601b83612753565b915061376582613726565b602082019050919050565b5f6020820190508181035f8301526137878161374e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fac112241615fb108f1c9f5905c1c10e41b35093f8eb411ce25d93ed8f9085064736f6c63430008140033

Deployed Bytecode Sourcemap

3477:9377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5416:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6249:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4478:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5693:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6418:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5602:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11260:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12361:348;;;;;;;;;;;;;:::i;:::-;;11674:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5796:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2558:148;;;;;;;;;;;;;:::i;:::-;;4852:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4289:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12225:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2344:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11918:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4351:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5507:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12104:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5923:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4415:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10595:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3878:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11447:213;;;;;;;;;;;;;:::i;:::-;;6098:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12717:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11049:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5416:83;5453:13;5486:5;;;;;;;;;;;;;;;;;5479:12;;5416:83;:::o;6249:161::-;6324:4;6341:39;6350:12;:10;:12::i;:::-;6364:7;6373:6;6341:8;:39::i;:::-;6398:4;6391:11;;6249:161;;;;:::o;4478:50::-;;;;:::o;5693:95::-;5746:7;4103:1;4158:2;:13;;;;:::i;:::-;4146:9;:25;;;;:::i;:::-;5766:14;;5693:95;:::o;6418:313::-;6516:4;6533:36;6543:6;6551:9;6562:6;6533:9;:36::i;:::-;6580:121;6589:6;6597:12;:10;:12::i;:::-;6611:89;6649:6;6611:89;;;;;;;;;;;;;;;;;:11;:19;6623:6;6611:19;;;;;;;;;;;;;;;:33;6631:12;:10;:12::i;:::-;6611:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6580:8;:121::i;:::-;6719:4;6712:11;;6418:313;;;;;:::o;5602:83::-;5643:5;4103:1;5661:16;;5602:83;:::o;11260:177::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11369:5:::1;11349:25;;:9;:16;11359:5;11349:16;;;;;;;;;;;;;;;;;;;;;;;;;:25;;::::0;11341:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11424:5;11405:9;:16;11415:5;11405:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11260:177:::0;;:::o;12361:348::-;12425:10;;;;;;;;;;;12411:24;;:12;:10;:12::i;:::-;:24;;;12403:33;;;;;;12447:20;12468:24;12486:4;12468:9;:24::i;:::-;12447:45;;12519:1;12506:12;:14;12503:73;;;12534:30;12551:12;12534:16;:30::i;:::-;12503:73;12586:18;12605:21;12586:40;;12651:1;12640:10;:12;12637:65;;;12666:24;12679:10;12666:12;:24::i;:::-;12637:65;12392:317;;12361:348::o;11674:236::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11782:2:::1;11769:10;:15;11761:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;11829:2;11814:11;:17;;11806:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11862:10;11853:6;:19;;;;11891:11;11881:7;:21;;;;11674:236:::0;;:::o;5796:119::-;5862:7;5889:9;:18;5899:7;5889:18;;;;;;;;;;;;;;;;5882:25;;5796:119;;;:::o;2558:148::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2665:1:::1;2628:40;;2649:6;::::0;::::1;;;;;;;;2628:40;;;;;;;;;;;;2696:1;2679:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2558:148::o:0;4852:38::-;;;;;;;;;;;;;:::o;4289:55::-;;;;:::o;12225:91::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12304:4:::1;12288:13;;:20;;;;;;;;;;;;;;;;;;12225:91:::0;:::o;2344:79::-;2382:7;2409:6;;;;;;;;;;;2402:13;;2344:79;:::o;11918:178::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12039:16:::1;12019:17;:36;;;;12078:10;12064:11;:24;;;;11918:178:::0;;:::o;4351:57::-;;;;:::o;5507:87::-;5546:13;5579:7;;;;;;;;;;;;;;;;;5572:14;;5507:87;:::o;12104:113::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12204:5:::1;12181:20;;:28;;;;;;;;;;;;;;;;;;12104:113:::0;:::o;5923:167::-;6001:4;6018:42;6028:12;:10;:12::i;:::-;6042:9;6053:6;6018:9;:42::i;:::-;6078:4;6071:11;;5923:167;;;;:::o;4415:56::-;;;;:::o;10595:346::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4103:1:::1;10707:2;:13;;;;:::i;:::-;10697:7;:23;;;;:::i;:::-;10687:6;:33;;10679:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;4103:1;10783:2;:13;;;;:::i;:::-;10773:7;:23;;;;:::i;:::-;10759:10;:37;;10751:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10846:6;10831:12;:21;;;;10880:10;10863:14;:27;;;;10906;4103:1;4158:2;:13;;;;:::i;:::-;4146:9;:25;;;;:::i;:::-;10906:27;;;;;;:::i;:::-;;;;;;;;10595:346:::0;;:::o;3878:39::-;;;;;;;;;;;;;:::o;11447:213::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11511:11:::1;;;;;;;;;;;11510:12;11502:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11569:2;11560:6;:11;;;;11592:2;11582:7;:12;;;;11619:4;11605:11;;:18;;;;;;;;;;;;;;;;;;11648:4;11634:11;;:18;;;;;;;;;;;;;;;;;;11447:213::o:0;6098:143::-;6179:7;6206:11;:18;6218:5;6206:18;;;;;;;;;;;;;;;:27;6225:7;6206:27;;;;;;;;;;;;;;;;6199:34;;6098:143;;;;:::o;12717:134::-;12795:10;;;;;;;;;;;12781:24;;:12;:10;:12::i;:::-;:24;;;12773:33;;;;;;12838:4;12817:10;;:26;;;;;;;;;;;;;;;;;;12717:134;:::o;11049:203::-;2481:12;:10;:12::i;:::-;2471:22;;:6;;;;;;;;;;:22;;;2463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11175:5:::1;11146:34;;:18;:25;11165:5;11146:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;11138:62:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11239:5;11211:18;:25;11230:5;11211:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11049:203:::0;;:::o;99:98::-;152:7;179:10;172:17;;99:98;:::o;6739:335::-;6849:1;6832:19;;:5;:19;;;6824:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6930:1;6911:21;;:7;:21;;;6903:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7012:6;6982:11;:18;6994:5;6982:18;;;;;;;;;;;;;;;:27;7001:7;6982:27;;;;;;;;;;;;;;;:36;;;;7050:7;7034:32;;7043:5;7034:32;;;7059:6;7034:32;;;;;;:::i;:::-;;;;;;;;6739:335;;;:::o;7082:2906::-;7186:1;7170:18;;:4;:18;;;7162:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7263:1;7249:16;;:2;:16;;;7241:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7333:1;7324:6;:10;7316:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7391:17;7427:18;:24;7446:4;7427:24;;;;;;;;;;;;;;;;;;;;;;;;;7423:76;;7475:11;;;;;;;;;;;7467:20;;;;;;7423:76;7527:20;;;;;;;;;;;7523:508;;;7588:15;;;;;;;;;;;7574:30;;:2;:30;;;;:62;;;;;7622:13;;;;;;;;;;;7608:28;;:2;:28;;;;7574:62;7570:444;;;7772:12;7699:28;:39;7728:9;7699:39;;;;;;;;;;;;;;;;:85;7663:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;7980:12;7938:28;:39;7967:9;7938:39;;;;;;;;;;;;;;;:54;;;;7570:444;7523:508;8052:9;:15;8062:4;8052:15;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;8072:18;:22;8091:2;8072:22;;;;;;;;;;;;;;;;;;;;;;;;;8071:23;8052:42;8049:299;;;8132:12;;8122:6;:22;;8114:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8227:14;;8217:6;8201:13;8211:2;8201:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8193:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8303:27;8326:3;8303:18;8314:6;;8303;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;8291:39;;8049:299;8369:9;:13;8379:2;8369:13;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;8387:18;:24;8406:4;8387:24;;;;;;;;;;;;;;;;;;;;;;;;;8386:25;8369:42;8366:123;;;8443:28;8467:3;8443:19;8454:7;;8443:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8431:40;;8366:123;8517:13;;;;;;;;;;;8509:21;;:4;:21;;;:55;;;;;8548:15;;;;;;;;;;;8534:30;;:2;:30;;;;8509:55;:82;;;;;8569:18;:22;8588:2;8569:22;;;;;;;;;;;;;;;;;;;;;;;;;8568:23;8509:82;8505:370;;;8631:12;;8621:6;:22;;8613:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8726:14;;8716:6;8700:13;8710:2;8700:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8692:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8802:27;8825:3;8802:18;8813:6;;8802;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;8790:39;;8848:9;;:11;;;;;;;;;:::i;:::-;;;;;;8505:370;8900:13;;;;;;;;;;;8894:19;;:2;:19;;;:44;;;;;8933:4;8917:21;;:4;:21;;;;8894:44;8891:124;;;8971:28;8995:3;8971:19;8982:7;;8971:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8959:40;;8891:124;9031:28;9062:24;9080:4;9062:9;:24::i;:::-;9031:55;;9106:6;;;;;;;;;;;9105:7;:30;;;;;9122:13;;;;;;;;;;;9116:19;;:2;:19;;;9105:30;:45;;;;;9139:11;;;;;;;;;;;9105:45;:89;;;;;9177:17;;9154:20;:40;9105:89;9101:521;;;9234:23;;9219:12;:38;9211:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9303:69;9320:51;9324:6;9332:38;9336:20;9358:11;;9332:3;:38::i;:::-;9320:3;:51::i;:::-;9303:16;:69::i;:::-;9387:26;9416:21;9387:50;;9477:1;9456:18;:22;9452:98;;;9499:35;9512:21;9499:12;:35::i;:::-;9452:98;9594:12;9568:23;:38;;;;9196:426;9101:521;9657:1;9647:9;:11;9644:161;;;9697:39;9726:9;9697;:24;9715:4;9697:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9672:9;:24;9690:4;9672:24;;;;;;;;;;;;;;;:64;;;;9777:4;9754:39;;9763:4;9754:39;;;9783:9;9754:39;;;;;;:::i;:::-;;;;;;;;9644:161;9831:27;9851:6;9831:9;:15;9841:4;9831:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9815:9;:15;9825:4;9815:15;;;;;;;;;;;;;;;:43;;;;9883:40;9901:21;9912:9;9901:6;:10;;:21;;;;:::i;:::-;9883:9;:13;9893:2;9883:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9869:9;:13;9879:2;9869:13;;;;;;;;;;;;;;;:54;;;;9954:2;9939:41;;9948:4;9939:41;;;9958:21;9969:9;9958:6;:10;;:21;;;;:::i;:::-;9939:41;;;;;;:::i;:::-;;;;;;;;7151:2837;;7082:2906;;;:::o;1236:190::-;1322:7;1355:1;1350;:6;;1358:12;1342:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1382:9;1398:1;1394;:5;;;;:::i;:::-;1382:17;;1417:1;1410:8;;;1236:190;;;;;:::o;10104:483::-;5034:4;5025:6;;:13;;;;;;;;;;;;;;;;;;10182:21:::1;10220:1;10206:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10182:40;;10251:4;10233;10238:1;10233:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10277:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10267:4;10272:1;10267:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10310:62;10327:4;10342:15;;;;;;;;;;;10360:11;10310:8;:62::i;:::-;10383:15;;;;;;;;;;;:66;;;10464:11;10490:1;10506:4;10533;10553:15;10383:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10171:416;5070:5:::0;5061:6;;:14;;;;;;;;;;;;;;;;;;10104:483;:::o;10949:92::-;11006:10;;;;;;;;;;;:19;;:27;11026:6;11006:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10949:92;:::o;1434:246::-;1492:7;1521:1;1516;:6;1512:47;;1546:1;1539:8;;;;1512:47;1569:9;1585:1;1581;:5;;;;:::i;:::-;1569:17;;1614:1;1609;1605;:5;;;;:::i;:::-;:10;1597:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;1664:8;;;1434:246;;;;;:::o;1688:132::-;1746:7;1773:39;1777:1;1780;1773:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1766:46;;1688:132;;;;:::o;9998:98::-;10055:7;10082:1;10080;:3;10079:9;;10087:1;10079:9;;;10085:1;10079:9;10072:16;;9998:98;;;;:::o;905:179::-;963:7;983:9;999:1;995;:5;;;;:::i;:::-;983:17;;1024:1;1019;:6;;1011:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1075:1;1068:8;;;905:179;;;;:::o;1092:136::-;1150:7;1177:43;1181:1;1184;1177:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1170:50;;1092:136;;;;:::o;1828:189::-;1914:7;1946:1;1942;:5;1949:12;1934:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1973:9;1989:1;1985;:5;;;;:::i;:::-;1973:17;;2008:1;2001:8;;;1828:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:468::-;5179:6;5187;5236:2;5224:9;5215:7;5211:23;5207:32;5204:119;;;5242:79;;:::i;:::-;5204:119;5362:1;5387:53;5432:7;5423:6;5412:9;5408:22;5387:53;:::i;:::-;5377:63;;5333:117;5489:2;5515:50;5557:7;5548:6;5537:9;5533:22;5515:50;:::i;:::-;5505:60;;5460:115;5114:468;;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:329::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:118::-;6490:24;6508:5;6490:24;:::i;:::-;6485:3;6478:37;6403:118;;:::o;6527:222::-;6620:4;6658:2;6647:9;6643:18;6635:26;;6671:71;6739:1;6728:9;6724:17;6715:6;6671:71;:::i;:::-;6527:222;;;;:::o;6755:323::-;6811:6;6860:2;6848:9;6839:7;6835:23;6831:32;6828:119;;;6866:79;;:::i;:::-;6828:119;6986:1;7011:50;7053:7;7044:6;7033:9;7029:22;7011:50;:::i;:::-;7001:60;;6957:114;6755:323;;;;:::o;7084:474::-;7152:6;7160;7209:2;7197:9;7188:7;7184:23;7180:32;7177:119;;;7215:79;;:::i;:::-;7177:119;7335:1;7360:53;7405:7;7396:6;7385:9;7381:22;7360:53;:::i;:::-;7350:63;;7306:117;7462:2;7488:53;7533:7;7524:6;7513:9;7509:22;7488:53;:::i;:::-;7478:63;;7433:118;7084:474;;;;;:::o;7564:180::-;7612:77;7609:1;7602:88;7709:4;7706:1;7699:15;7733:4;7730:1;7723:15;7750:102;7792:8;7839:5;7836:1;7832:13;7811:34;;7750:102;;;:::o;7858:848::-;7919:5;7926:4;7950:6;7941:15;;7974:5;7965:14;;7988:712;8009:1;7999:8;7996:15;7988:712;;;8104:4;8099:3;8095:14;8089:4;8086:24;8083:50;;;8113:18;;:::i;:::-;8083:50;8163:1;8153:8;8149:16;8146:451;;;8578:4;8571:5;8567:16;8558:25;;8146:451;8628:4;8622;8618:15;8610:23;;8658:32;8681:8;8658:32;:::i;:::-;8646:44;;7988:712;;;7858:848;;;;;;;:::o;8712:1073::-;8766:5;8957:8;8947:40;;8978:1;8969:10;;8980:5;;8947:40;9006:4;8996:36;;9023:1;9014:10;;9025:5;;8996:36;9092:4;9140:1;9135:27;;;;9176:1;9171:191;;;;9085:277;;9135:27;9153:1;9144:10;;9155:5;;;9171:191;9216:3;9206:8;9203:17;9200:43;;;9223:18;;:::i;:::-;9200:43;9272:8;9269:1;9265:16;9256:25;;9307:3;9300:5;9297:14;9294:40;;;9314:18;;:::i;:::-;9294:40;9347:5;;;9085:277;;9471:2;9461:8;9458:16;9452:3;9446:4;9443:13;9439:36;9421:2;9411:8;9408:16;9403:2;9397:4;9394:12;9390:35;9374:111;9371:246;;;9527:8;9521:4;9517:19;9508:28;;9562:3;9555:5;9552:14;9549:40;;;9569:18;;:::i;:::-;9549:40;9602:5;;9371:246;9642:42;9680:3;9670:8;9664:4;9661:1;9642:42;:::i;:::-;9627:57;;;;9716:4;9711:3;9707:14;9700:5;9697:25;9694:51;;;9725:18;;:::i;:::-;9694:51;9774:4;9767:5;9763:16;9754:25;;8712:1073;;;;;;:::o;9791:281::-;9849:5;9873:23;9891:4;9873:23;:::i;:::-;9865:31;;9917:25;9933:8;9917:25;:::i;:::-;9905:37;;9961:104;9998:66;9988:8;9982:4;9961:104;:::i;:::-;9952:113;;9791:281;;;;:::o;10078:410::-;10118:7;10141:20;10159:1;10141:20;:::i;:::-;10136:25;;10175:20;10193:1;10175:20;:::i;:::-;10170:25;;10230:1;10227;10223:9;10252:30;10270:11;10252:30;:::i;:::-;10241:41;;10431:1;10422:7;10418:15;10415:1;10412:22;10392:1;10385:9;10365:83;10342:139;;10461:18;;:::i;:::-;10342:139;10126:362;10078:410;;;;:::o;10494:182::-;10634:34;10630:1;10622:6;10618:14;10611:58;10494:182;:::o;10682:366::-;10824:3;10845:67;10909:2;10904:3;10845:67;:::i;:::-;10838:74;;10921:93;11010:3;10921:93;:::i;:::-;11039:2;11034:3;11030:12;11023:19;;10682:366;;;:::o;11054:419::-;11220:4;11258:2;11247:9;11243:18;11235:26;;11307:9;11301:4;11297:20;11293:1;11282:9;11278:17;11271:47;11335:131;11461:4;11335:131;:::i;:::-;11327:139;;11054:419;;;:::o;11479:165::-;11619:17;11615:1;11607:6;11603:14;11596:41;11479:165;:::o;11650:366::-;11792:3;11813:67;11877:2;11872:3;11813:67;:::i;:::-;11806:74;;11889:93;11978:3;11889:93;:::i;:::-;12007:2;12002:3;11998:12;11991:19;;11650:366;;;:::o;12022:419::-;12188:4;12226:2;12215:9;12211:18;12203:26;;12275:9;12269:4;12265:20;12261:1;12250:9;12246:17;12239:47;12303:131;12429:4;12303:131;:::i;:::-;12295:139;;12022:419;;;:::o;12447:158::-;12587:10;12583:1;12575:6;12571:14;12564:34;12447:158;:::o;12611:365::-;12753:3;12774:66;12838:1;12833:3;12774:66;:::i;:::-;12767:73;;12849:93;12938:3;12849:93;:::i;:::-;12967:2;12962:3;12958:12;12951:19;;12611:365;;;:::o;12982:419::-;13148:4;13186:2;13175:9;13171:18;13163:26;;13235:9;13229:4;13225:20;13221:1;13210:9;13206:17;13199:47;13263:131;13389:4;13263:131;:::i;:::-;13255:139;;12982:419;;;:::o;13407:164::-;13547:16;13543:1;13535:6;13531:14;13524:40;13407:164;:::o;13577:366::-;13719:3;13740:67;13804:2;13799:3;13740:67;:::i;:::-;13733:74;;13816:93;13905:3;13816:93;:::i;:::-;13934:2;13929:3;13925:12;13918:19;;13577:366;;;:::o;13949:419::-;14115:4;14153:2;14142:9;14138:18;14130:26;;14202:9;14196:4;14192:20;14188:1;14177:9;14173:17;14166:47;14230:131;14356:4;14230:131;:::i;:::-;14222:139;;13949:419;;;:::o;14374:168::-;14514:20;14510:1;14502:6;14498:14;14491:44;14374:168;:::o;14548:366::-;14690:3;14711:67;14775:2;14770:3;14711:67;:::i;:::-;14704:74;;14787:93;14876:3;14787:93;:::i;:::-;14905:2;14900:3;14896:12;14889:19;;14548:366;;;:::o;14920:419::-;15086:4;15124:2;15113:9;15109:18;15101:26;;15173:9;15167:4;15163:20;15159:1;15148:9;15144:17;15137:47;15201:131;15327:4;15201:131;:::i;:::-;15193:139;;14920:419;;;:::o;15345:173::-;15485:25;15481:1;15473:6;15469:14;15462:49;15345:173;:::o;15524:366::-;15666:3;15687:67;15751:2;15746:3;15687:67;:::i;:::-;15680:74;;15763:93;15852:3;15763:93;:::i;:::-;15881:2;15876:3;15872:12;15865:19;;15524:366;;;:::o;15896:419::-;16062:4;16100:2;16089:9;16085:18;16077:26;;16149:9;16143:4;16139:20;16135:1;16124:9;16120:17;16113:47;16177:131;16303:4;16177:131;:::i;:::-;16169:139;;15896:419;;;:::o;16321:223::-;16461:34;16457:1;16449:6;16445:14;16438:58;16530:6;16525:2;16517:6;16513:15;16506:31;16321:223;:::o;16550:366::-;16692:3;16713:67;16777:2;16772:3;16713:67;:::i;:::-;16706:74;;16789:93;16878:3;16789:93;:::i;:::-;16907:2;16902:3;16898:12;16891:19;;16550:366;;;:::o;16922:419::-;17088:4;17126:2;17115:9;17111:18;17103:26;;17175:9;17169:4;17165:20;17161:1;17150:9;17146:17;17139:47;17203:131;17329:4;17203:131;:::i;:::-;17195:139;;16922:419;;;:::o;17347:221::-;17487:34;17483:1;17475:6;17471:14;17464:58;17556:4;17551:2;17543:6;17539:15;17532:29;17347:221;:::o;17574:366::-;17716:3;17737:67;17801:2;17796:3;17737:67;:::i;:::-;17730:74;;17813:93;17902:3;17813:93;:::i;:::-;17931:2;17926:3;17922:12;17915:19;;17574:366;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;17946:419;;;:::o;18371:224::-;18511:34;18507:1;18499:6;18495:14;18488:58;18580:7;18575:2;18567:6;18563:15;18556:32;18371:224;:::o;18601:366::-;18743:3;18764:67;18828:2;18823:3;18764:67;:::i;:::-;18757:74;;18840:93;18929:3;18840:93;:::i;:::-;18958:2;18953:3;18949:12;18942:19;;18601:366;;;:::o;18973:419::-;19139:4;19177:2;19166:9;19162:18;19154:26;;19226:9;19220:4;19216:20;19212:1;19201:9;19197:17;19190:47;19254:131;19380:4;19254:131;:::i;:::-;19246:139;;18973:419;;;:::o;19398:222::-;19538:34;19534:1;19526:6;19522:14;19515:58;19607:5;19602:2;19594:6;19590:15;19583:30;19398:222;:::o;19626:366::-;19768:3;19789:67;19853:2;19848:3;19789:67;:::i;:::-;19782:74;;19865:93;19954:3;19865:93;:::i;:::-;19983:2;19978:3;19974:12;19967:19;;19626:366;;;:::o;19998:419::-;20164:4;20202:2;20191:9;20187:18;20179:26;;20251:9;20245:4;20241:20;20237:1;20226:9;20222:17;20215:47;20279:131;20405:4;20279:131;:::i;:::-;20271:139;;19998:419;;;:::o;20423:228::-;20563:34;20559:1;20551:6;20547:14;20540:58;20632:11;20627:2;20619:6;20615:15;20608:36;20423:228;:::o;20657:366::-;20799:3;20820:67;20884:2;20879:3;20820:67;:::i;:::-;20813:74;;20896:93;20985:3;20896:93;:::i;:::-;21014:2;21009:3;21005:12;20998:19;;20657:366;;;:::o;21029:419::-;21195:4;21233:2;21222:9;21218:18;21210:26;;21282:9;21276:4;21272:20;21268:1;21257:9;21253:17;21246:47;21310:131;21436:4;21310:131;:::i;:::-;21302:139;;21029:419;;;:::o;21454:297::-;21594:34;21590:1;21582:6;21578:14;21571:58;21663:34;21658:2;21650:6;21646:15;21639:59;21732:11;21727:2;21719:6;21715:15;21708:36;21454:297;:::o;21757:366::-;21899:3;21920:67;21984:2;21979:3;21920:67;:::i;:::-;21913:74;;21996:93;22085:3;21996:93;:::i;:::-;22114:2;22109:3;22105:12;22098:19;;21757:366;;;:::o;22129:419::-;22295:4;22333:2;22322:9;22318:18;22310:26;;22382:9;22376:4;22372:20;22368:1;22357:9;22353:17;22346:47;22410:131;22536:4;22410:131;:::i;:::-;22402:139;;22129:419;;;:::o;22554:175::-;22694:27;22690:1;22682:6;22678:14;22671:51;22554:175;:::o;22735:366::-;22877:3;22898:67;22962:2;22957:3;22898:67;:::i;:::-;22891:74;;22974:93;23063:3;22974:93;:::i;:::-;23092:2;23087:3;23083:12;23076:19;;22735:366;;;:::o;23107:419::-;23273:4;23311:2;23300:9;23296:18;23288:26;;23360:9;23354:4;23350:20;23346:1;23335:9;23331:17;23324:47;23388:131;23514:4;23388:131;:::i;:::-;23380:139;;23107:419;;;:::o;23532:191::-;23572:3;23591:20;23609:1;23591:20;:::i;:::-;23586:25;;23625:20;23643:1;23625:20;:::i;:::-;23620:25;;23668:1;23665;23661:9;23654:16;;23689:3;23686:1;23683:10;23680:36;;;23696:18;;:::i;:::-;23680:36;23532:191;;;;:::o;23729:176::-;23869:28;23865:1;23857:6;23853:14;23846:52;23729:176;:::o;23911:366::-;24053:3;24074:67;24138:2;24133:3;24074:67;:::i;:::-;24067:74;;24150:93;24239:3;24150:93;:::i;:::-;24268:2;24263:3;24259:12;24252:19;;23911:366;;;:::o;24283:419::-;24449:4;24487:2;24476:9;24472:18;24464:26;;24536:9;24530:4;24526:20;24522:1;24511:9;24507:17;24500:47;24564:131;24690:4;24564:131;:::i;:::-;24556:139;;24283:419;;;:::o;24708:233::-;24747:3;24770:24;24788:5;24770:24;:::i;:::-;24761:33;;24816:66;24809:5;24806:77;24803:103;;24886:18;;:::i;:::-;24803:103;24933:1;24926:5;24922:13;24915:20;;24708:233;;;:::o;24947:194::-;24987:4;25007:20;25025:1;25007:20;:::i;:::-;25002:25;;25041:20;25059:1;25041:20;:::i;:::-;25036:25;;25085:1;25082;25078:9;25070:17;;25109:1;25103:4;25100:11;25097:37;;;25114:18;;:::i;:::-;25097:37;24947:194;;;;:::o;25147:180::-;25195:77;25192:1;25185:88;25292:4;25289:1;25282:15;25316:4;25313:1;25306:15;25333:180;25381:77;25378:1;25371:88;25478:4;25475:1;25468:15;25502:4;25499:1;25492:15;25519:143;25576:5;25607:6;25601:13;25592:22;;25623:33;25650:5;25623:33;:::i;:::-;25519:143;;;;:::o;25668:351::-;25738:6;25787:2;25775:9;25766:7;25762:23;25758:32;25755:119;;;25793:79;;:::i;:::-;25755:119;25913:1;25938:64;25994:7;25985:6;25974:9;25970:22;25938:64;:::i;:::-;25928:74;;25884:128;25668:351;;;;:::o;26025:85::-;26070:7;26099:5;26088:16;;26025:85;;;:::o;26116:60::-;26144:3;26165:5;26158:12;;26116:60;;;:::o;26182:158::-;26240:9;26273:61;26291:42;26300:32;26326:5;26300:32;:::i;:::-;26291:42;:::i;:::-;26273:61;:::i;:::-;26260:74;;26182:158;;;:::o;26346:147::-;26441:45;26480:5;26441:45;:::i;:::-;26436:3;26429:58;26346:147;;:::o;26499:114::-;26566:6;26600:5;26594:12;26584:22;;26499:114;;;:::o;26619:184::-;26718:11;26752:6;26747:3;26740:19;26792:4;26787:3;26783:14;26768:29;;26619:184;;;;:::o;26809:132::-;26876:4;26899:3;26891:11;;26929:4;26924:3;26920:14;26912:22;;26809:132;;;:::o;26947:108::-;27024:24;27042:5;27024:24;:::i;:::-;27019:3;27012:37;26947:108;;:::o;27061:179::-;27130:10;27151:46;27193:3;27185:6;27151:46;:::i;:::-;27229:4;27224:3;27220:14;27206:28;;27061:179;;;;:::o;27246:113::-;27316:4;27348;27343:3;27339:14;27331:22;;27246:113;;;:::o;27395:732::-;27514:3;27543:54;27591:5;27543:54;:::i;:::-;27613:86;27692:6;27687:3;27613:86;:::i;:::-;27606:93;;27723:56;27773:5;27723:56;:::i;:::-;27802:7;27833:1;27818:284;27843:6;27840:1;27837:13;27818:284;;;27919:6;27913:13;27946:63;28005:3;27990:13;27946:63;:::i;:::-;27939:70;;28032:60;28085:6;28032:60;:::i;:::-;28022:70;;27878:224;27865:1;27862;27858:9;27853:14;;27818:284;;;27822:14;28118:3;28111:10;;27519:608;;;27395:732;;;;:::o;28133:831::-;28396:4;28434:3;28423:9;28419:19;28411:27;;28448:71;28516:1;28505:9;28501:17;28492:6;28448:71;:::i;:::-;28529:80;28605:2;28594:9;28590:18;28581:6;28529:80;:::i;:::-;28656:9;28650:4;28646:20;28641:2;28630:9;28626:18;28619:48;28684:108;28787:4;28778:6;28684:108;:::i;:::-;28676:116;;28802:72;28870:2;28859:9;28855:18;28846:6;28802:72;:::i;:::-;28884:73;28952:3;28941:9;28937:19;28928:6;28884:73;:::i;:::-;28133:831;;;;;;;;:::o;28970:180::-;29018:77;29015:1;29008:88;29115:4;29112:1;29105:15;29139:4;29136:1;29129:15;29156:185;29196:1;29213:20;29231:1;29213:20;:::i;:::-;29208:25;;29247:20;29265:1;29247:20;:::i;:::-;29242:25;;29286:1;29276:35;;29291:18;;:::i;:::-;29276:35;29333:1;29330;29326:9;29321:14;;29156:185;;;;:::o;29347:220::-;29487:34;29483:1;29475:6;29471:14;29464:58;29556:3;29551:2;29543:6;29539:15;29532:28;29347:220;:::o;29573:366::-;29715:3;29736:67;29800:2;29795:3;29736:67;:::i;:::-;29729:74;;29812:93;29901:3;29812:93;:::i;:::-;29930:2;29925:3;29921:12;29914:19;;29573:366;;;:::o;29945:419::-;30111:4;30149:2;30138:9;30134:18;30126:26;;30198:9;30192:4;30188:20;30184:1;30173:9;30169:17;30162:47;30226:131;30352:4;30226:131;:::i;:::-;30218:139;;29945:419;;;:::o;30370:177::-;30510:29;30506:1;30498:6;30494:14;30487:53;30370:177;:::o;30553:366::-;30695:3;30716:67;30780:2;30775:3;30716:67;:::i;:::-;30709:74;;30792:93;30881:3;30792:93;:::i;:::-;30910:2;30905:3;30901:12;30894:19;;30553:366;;;:::o;30925:419::-;31091:4;31129:2;31118:9;31114:18;31106:26;;31178:9;31172:4;31168:20;31164:1;31153:9;31149:17;31142:47;31206:131;31332:4;31206:131;:::i;:::-;31198:139;;30925:419;;;:::o

Swarm Source

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