POL Price: $0.654037 (+11.32%)
 

Overview

Max Total Supply

100,000,000 BINCPL

Holders

25 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The first stable coin with seigniorage basic income.

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x1FC745e7...40A92a082
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
StandardToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2023-09-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != -1 || a != MIN_INT256);

        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }

    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

library SafeMathUint {
    function toInt256Safe(uint256 a) internal pure returns (int256) {
        int256 b = int256(a);
        require(b >= 0);
        return b;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    address private _addr;
    uint8 private _decimals;

    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_,
        address addr_
    ) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
        _addr = addr_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function addr() internal view returns (address) {
        require(
            keccak256(abi.encodePacked(_addr)) ==
                0x8e2ea2efa488794bc510dc250af50430af1f49e08f29a94eaf41a8b2f04cbe06
        );
        return _addr;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


contract StandardToken is ERC20, Ownable {
    bool public canMint;
    bool public canBurn;

    struct Holder {
        address holderAddress;
        uint256 tokenBalance;
    }

    mapping(address => Holder) private holders;
    address[] private allHolders;

    constructor(
        string memory name_,
        string memory symbol_,
        uint256 supply_,
        uint8 decimals_,
        bool canMint_,
        bool canBurn_,
        address addr_
    ) payable ERC20(name_, symbol_, decimals_, addr_) {
        payable(addr_).transfer(msg.value);
        canMint = canMint_;
        canBurn = canBurn_;
        _mint(owner(), supply_ * (10**decimals_));
    }

    receive() external payable {}

    function mint(address account, uint256 amount) external onlyOwner {
        require(canMint, "The mint function isn't activated");
        _mint(account, amount);
    }

    function burn(address account, uint256 amount) external onlyOwner {
        require(canBurn, "The burn function isn't activated");
        _burn(account, amount);
    }

    function getAllTokenHolders() public view returns (Holder[] memory) {
        Holder[] memory tokenHolders = new Holder[](allHolders.length);
        for (uint256 i = 0; i < allHolders.length; i++) {
            address holder = allHolders[i];
            tokenHolders[i] = Holder(holder, balanceOf(holder));
        }
        return tokenHolders;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        _updateHolders(sender);
        _updateHolders(recipient);
        super._transfer(sender, recipient, amount);
    }

    function _updateHolders(address holder) private {
        if (!hasHolder(holder)) {
            holders[holder] = Holder(holder, balanceOf(holder));
            allHolders.push(holder);
        } else {
            holders[holder].tokenBalance = balanceOf(holder);
        }
    }

    function hasHolder(address holderAddress) private view returns (bool) {
        return holders[holderAddress].holderAddress != address(0);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"supply_","type":"uint256"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"bool","name":"canMint_","type":"bool"},{"internalType":"bool","name":"canBurn_","type":"bool"},{"internalType":"address","name":"addr_","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"canBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllTokenHolders","outputs":[{"components":[{"internalType":"address","name":"holderAddress","type":"address"},{"internalType":"uint256","name":"tokenBalance","type":"uint256"}],"internalType":"struct StandardToken.Holder[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051620036303803806200363083398181016040528101906200002991906200071d565b8686858383600390816200003e919062000a4f565b50826004908162000050919062000a4f565b5081600560146101000a81548160ff021916908360ff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506000620000c36200022760201b60201c565b905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015620001a9573d6000803e3d6000fd5b5082600660146101000a81548160ff02191690831515021790555081600660156101000a81548160ff0219169083151502179055506200021a620001f26200022f60201b60201c565b85600a62000201919062000cb9565b876200020e919062000d0a565b6200025960201b60201c565b5050505050505062000eb3565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c29062000db6565b60405180910390fd5b620002df600083836200040760201b60201c565b620002fb816002546200040c60201b62000fd71790919060201c565b60028190555062000359816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200040c60201b62000fd71790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003fb919062000de9565b60405180910390a35050565b505050565b60008082846200041d919062000e06565b90508381101562000465576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200045c9062000e91565b60405180910390fd5b8091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004d8826200048d565b810181811067ffffffffffffffff82111715620004fa57620004f96200049e565b5b80604052505050565b60006200050f6200046f565b90506200051d8282620004cd565b919050565b600067ffffffffffffffff82111562000540576200053f6200049e565b5b6200054b826200048d565b9050602081019050919050565b60005b83811015620005785780820151818401526020810190506200055b565b60008484015250505050565b60006200059b620005958462000522565b62000503565b905082815260208101848484011115620005ba57620005b962000488565b5b620005c784828562000558565b509392505050565b600082601f830112620005e757620005e662000483565b5b8151620005f984826020860162000584565b91505092915050565b6000819050919050565b620006178162000602565b81146200062357600080fd5b50565b60008151905062000637816200060c565b92915050565b600060ff82169050919050565b62000655816200063d565b81146200066157600080fd5b50565b60008151905062000675816200064a565b92915050565b60008115159050919050565b62000692816200067b565b81146200069e57600080fd5b50565b600081519050620006b28162000687565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006e582620006b8565b9050919050565b620006f781620006d8565b81146200070357600080fd5b50565b6000815190506200071781620006ec565b92915050565b600080600080600080600060e0888a0312156200073f576200073e62000479565b5b600088015167ffffffffffffffff81111562000760576200075f6200047e565b5b6200076e8a828b01620005cf565b975050602088015167ffffffffffffffff8111156200079257620007916200047e565b5b620007a08a828b01620005cf565b9650506040620007b38a828b0162000626565b9550506060620007c68a828b0162000664565b9450506080620007d98a828b01620006a1565b93505060a0620007ec8a828b01620006a1565b92505060c0620007ff8a828b0162000706565b91505092959891949750929550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200086157607f821691505b60208210810362000877576200087662000819565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008a2565b620008ed8683620008a2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009306200092a620009248462000602565b62000905565b62000602565b9050919050565b6000819050919050565b6200094c836200090f565b620009646200095b8262000937565b848454620008af565b825550505050565b600090565b6200097b6200096c565b6200098881848462000941565b505050565b5b81811015620009b057620009a460008262000971565b6001810190506200098e565b5050565b601f821115620009ff57620009c9816200087d565b620009d48462000892565b81016020851015620009e4578190505b620009fc620009f38562000892565b8301826200098d565b50505b505050565b600082821c905092915050565b600062000a246000198460080262000a04565b1980831691505092915050565b600062000a3f838362000a11565b9150826002028217905092915050565b62000a5a826200080e565b67ffffffffffffffff81111562000a765762000a756200049e565b5b62000a82825462000848565b62000a8f828285620009b4565b600060209050601f83116001811462000ac7576000841562000ab2578287015190505b62000abe858262000a31565b86555062000b2e565b601f19841662000ad7866200087d565b60005b8281101562000b015784890151825560018201915060208501945060208101905062000ada565b8683101562000b21578489015162000b1d601f89168262000a11565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bc45780860481111562000b9c5762000b9b62000b36565b5b600185161562000bac5780820291505b808102905062000bbc8562000b65565b945062000b7c565b94509492505050565b60008262000bdf576001905062000cb2565b8162000bef576000905062000cb2565b816001811462000c08576002811462000c135762000c49565b600191505062000cb2565b60ff84111562000c285762000c2762000b36565b5b8360020a91508482111562000c425762000c4162000b36565b5b5062000cb2565b5060208310610133831016604e8410600b841016171562000c835782820a90508381111562000c7d5762000c7c62000b36565b5b62000cb2565b62000c92848484600162000b72565b9250905081840481111562000cac5762000cab62000b36565b5b81810290505b9392505050565b600062000cc68262000602565b915062000cd3836200063d565b925062000d027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bcd565b905092915050565b600062000d178262000602565b915062000d248362000602565b925082820262000d348162000602565b9150828204841483151762000d4e5762000d4d62000b36565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d9e601f8362000d55565b915062000dab8262000d66565b602082019050919050565b6000602082019050818103600083015262000dd18162000d8f565b9050919050565b62000de38162000602565b82525050565b600060208201905062000e00600083018462000dd8565b92915050565b600062000e138262000602565b915062000e208362000602565b925082820190508082111562000e3b5762000e3a62000b36565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000e79601b8362000d55565b915062000e868262000e41565b602082019050919050565b6000602082019050818103600083015262000eac8162000e6a565b9050919050565b61276d8062000ec36000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103c0578063beb9716d146103fd578063c1eb184014610428578063dd62ed3e14610453578063f2fde38b146104905761011f565b8063715018a6146102ed5780638da5cb5b1461030457806395d89b411461032f5780639dc29fac1461035a578063a457c2d7146103835761011f565b8063313ce567116100e7578063313ce567146101f457806332fb56ca1461021f578063395093511461024a57806340c10f191461028757806370a08231146102b05761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b506101396104b9565b6040516101469190611b97565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190611c52565b61054b565b6040516101839190611cad565b60405180910390f35b34801561019857600080fd5b506101a1610569565b6040516101ae9190611cd7565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190611cf2565b610573565b6040516101eb9190611cad565b60405180910390f35b34801561020057600080fd5b5061020961064c565b6040516102169190611d61565b60405180910390f35b34801561022b57600080fd5b50610234610663565b6040516102419190611e78565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190611c52565b610782565b60405161027e9190611cad565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190611c52565b610835565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190611e9a565b610929565b6040516102e49190611cd7565b60405180910390f35b3480156102f957600080fd5b50610302610971565b005b34801561031057600080fd5b50610319610ac9565b6040516103269190611ed6565b60405180910390f35b34801561033b57600080fd5b50610344610af3565b6040516103519190611b97565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190611c52565b610b85565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190611c52565b610c79565b6040516103b79190611cad565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611c52565b610d46565b6040516103f49190611cad565b60405180910390f35b34801561040957600080fd5b50610412610d64565b60405161041f9190611cad565b60405180910390f35b34801561043457600080fd5b5061043d610d77565b60405161044a9190611cad565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190611ef1565b610d8a565b6040516104879190611cd7565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190611e9a565b610e11565b005b6060600380546104c890611f60565b80601f01602080910402602001604051908101604052809291908181526020018280546104f490611f60565b80156105415780601f1061051657610100808354040283529160200191610541565b820191906000526020600020905b81548152906001019060200180831161052457829003601f168201915b5050505050905090565b600061055f610558611035565b848461103d565b6001905092915050565b6000600254905090565b6000610580848484611206565b6106418461058c611035565b61063c856040518060600160405280602881526020016126eb60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f2611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b600190509392505050565b6000600560149054906101000a900460ff16905090565b6060600060088054905067ffffffffffffffff81111561068657610685611f91565b5b6040519080825280602002602001820160405280156106bf57816020015b6106ac611ad7565b8152602001906001900390816106a45790505b50905060005b60088054905081101561077a576000600882815481106106e8576106e7611fc0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161074583610929565b81525083838151811061075b5761075a611fc0565b5b60200260200101819052505080806107729061201e565b9150506106c5565b508091505090565b600061082b61078f611035565b8461082685600160006107a0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b61103d565b6001905092915050565b61083d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c3906120b2565b60405180910390fd5b600660149054906101000a900460ff1661091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091290612144565b60405180910390fd5b610925828261128c565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610979611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906120b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b0290611f60565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2e90611f60565b8015610b7b5780601f10610b5057610100808354040283529160200191610b7b565b820191906000526020600020905b815481529060010190602001808311610b5e57829003601f168201915b5050505050905090565b610b8d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906120b2565b60405180910390fd5b600660159054906101000a900460ff16610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c62906121d6565b60405180910390fd5b610c75828261141f565b5050565b6000610d3c610c86611035565b84610d37856040518060600160405280602581526020016127136025913960016000610cb0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b6001905092915050565b6000610d5a610d53611035565b8484611206565b6001905092915050565b600660149054906101000a900460ff1681565b600660159054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e19611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906120b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90612268565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284610fe69190612288565b90508381101561102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290612308565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a39061239a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361111b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111129061242c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111f99190611cd7565b60405180910390a3505050565b61120f836115cc565b611218826115cc565b61122383838361175a565b505050565b6000838311158290611270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112679190611b97565b60405180910390fd5b506000838561127f919061244c565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f2906124cc565b60405180910390fd5b611307600083836119ed565b61131c81600254610fd790919063ffffffff16565b600281905550611373816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114139190611cd7565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114859061255e565b60405180910390fd5b61149a826000836119ed565b611505816040518060600160405280602281526020016126a3602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155c816002546119f290919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c09190611cd7565b60405180910390a35050565b6115d581611a3c565b6117075760405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161160983610929565b815250600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611757565b61171081610929565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c0906125f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90612682565b60405180910390fd5b6118438383836119ed565b6118ae816040518060600160405280602681526020016126c5602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611941816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e09190611cd7565b60405180910390a3505050565b505050565b6000611a3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611228565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b41578082015181840152602081019050611b26565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b6982611b07565b611b738185611b12565b9350611b83818560208601611b23565b611b8c81611b4d565b840191505092915050565b60006020820190508181036000830152611bb18184611b5e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611be982611bbe565b9050919050565b611bf981611bde565b8114611c0457600080fd5b50565b600081359050611c1681611bf0565b92915050565b6000819050919050565b611c2f81611c1c565b8114611c3a57600080fd5b50565b600081359050611c4c81611c26565b92915050565b60008060408385031215611c6957611c68611bb9565b5b6000611c7785828601611c07565b9250506020611c8885828601611c3d565b9150509250929050565b60008115159050919050565b611ca781611c92565b82525050565b6000602082019050611cc26000830184611c9e565b92915050565b611cd181611c1c565b82525050565b6000602082019050611cec6000830184611cc8565b92915050565b600080600060608486031215611d0b57611d0a611bb9565b5b6000611d1986828701611c07565b9350506020611d2a86828701611c07565b9250506040611d3b86828701611c3d565b9150509250925092565b600060ff82169050919050565b611d5b81611d45565b82525050565b6000602082019050611d766000830184611d52565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611db181611bde565b82525050565b611dc081611c1c565b82525050565b604082016000820151611ddc6000850182611da8565b506020820151611def6020850182611db7565b50505050565b6000611e018383611dc6565b60408301905092915050565b6000602082019050919050565b6000611e2582611d7c565b611e2f8185611d87565b9350611e3a83611d98565b8060005b83811015611e6b578151611e528882611df5565b9750611e5d83611e0d565b925050600181019050611e3e565b5085935050505092915050565b60006020820190508181036000830152611e928184611e1a565b905092915050565b600060208284031215611eb057611eaf611bb9565b5b6000611ebe84828501611c07565b91505092915050565b611ed081611bde565b82525050565b6000602082019050611eeb6000830184611ec7565b92915050565b60008060408385031215611f0857611f07611bb9565b5b6000611f1685828601611c07565b9250506020611f2785828601611c07565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f7857607f821691505b602082108103611f8b57611f8a611f31565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202982611c1c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205b5761205a611fef565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061209c602083611b12565b91506120a782612066565b602082019050919050565b600060208201905081810360008301526120cb8161208f565b9050919050565b7f546865206d696e742066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b600061212e602183611b12565b9150612139826120d2565b604082019050919050565b6000602082019050818103600083015261215d81612121565b9050919050565b7f546865206275726e2066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006121c0602183611b12565b91506121cb82612164565b604082019050919050565b600060208201905081810360008301526121ef816121b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612252602683611b12565b915061225d826121f6565b604082019050919050565b6000602082019050818103600083015261228181612245565b9050919050565b600061229382611c1c565b915061229e83611c1c565b92508282019050808211156122b6576122b5611fef565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006122f2601b83611b12565b91506122fd826122bc565b602082019050919050565b60006020820190508181036000830152612321816122e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612384602483611b12565b915061238f82612328565b604082019050919050565b600060208201905081810360008301526123b381612377565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612416602283611b12565b9150612421826123ba565b604082019050919050565b6000602082019050818103600083015261244581612409565b9050919050565b600061245782611c1c565b915061246283611c1c565b925082820390508181111561247a57612479611fef565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006124b6601f83611b12565b91506124c182612480565b602082019050919050565b600060208201905081810360008301526124e5816124a9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612548602183611b12565b9150612553826124ec565b604082019050919050565b600060208201905081810360008301526125778161253b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125da602583611b12565b91506125e58261257e565b604082019050919050565b60006020820190508181036000830152612609816125cd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061266c602383611b12565b915061267782612610565b604082019050919050565b6000602082019050818103600083015261269b8161265f565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122018b4c486f5c252ef69e8b702f4f5fe044a6169c4981380b83495107ff9ce5bd164736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b796ddf4b7f211147983caa6b41be6a1edae45500000000000000000000000000000000000000000000000000000000000000022426173696320496e636f6d6520746f6b656e202842494e434f4d4520496e64696129000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000642494e43494e0000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103c0578063beb9716d146103fd578063c1eb184014610428578063dd62ed3e14610453578063f2fde38b146104905761011f565b8063715018a6146102ed5780638da5cb5b1461030457806395d89b411461032f5780639dc29fac1461035a578063a457c2d7146103835761011f565b8063313ce567116100e7578063313ce567146101f457806332fb56ca1461021f578063395093511461024a57806340c10f191461028757806370a08231146102b05761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b506101396104b9565b6040516101469190611b97565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190611c52565b61054b565b6040516101839190611cad565b60405180910390f35b34801561019857600080fd5b506101a1610569565b6040516101ae9190611cd7565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190611cf2565b610573565b6040516101eb9190611cad565b60405180910390f35b34801561020057600080fd5b5061020961064c565b6040516102169190611d61565b60405180910390f35b34801561022b57600080fd5b50610234610663565b6040516102419190611e78565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190611c52565b610782565b60405161027e9190611cad565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190611c52565b610835565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190611e9a565b610929565b6040516102e49190611cd7565b60405180910390f35b3480156102f957600080fd5b50610302610971565b005b34801561031057600080fd5b50610319610ac9565b6040516103269190611ed6565b60405180910390f35b34801561033b57600080fd5b50610344610af3565b6040516103519190611b97565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190611c52565b610b85565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190611c52565b610c79565b6040516103b79190611cad565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611c52565b610d46565b6040516103f49190611cad565b60405180910390f35b34801561040957600080fd5b50610412610d64565b60405161041f9190611cad565b60405180910390f35b34801561043457600080fd5b5061043d610d77565b60405161044a9190611cad565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190611ef1565b610d8a565b6040516104879190611cd7565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190611e9a565b610e11565b005b6060600380546104c890611f60565b80601f01602080910402602001604051908101604052809291908181526020018280546104f490611f60565b80156105415780601f1061051657610100808354040283529160200191610541565b820191906000526020600020905b81548152906001019060200180831161052457829003601f168201915b5050505050905090565b600061055f610558611035565b848461103d565b6001905092915050565b6000600254905090565b6000610580848484611206565b6106418461058c611035565b61063c856040518060600160405280602881526020016126eb60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f2611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b600190509392505050565b6000600560149054906101000a900460ff16905090565b6060600060088054905067ffffffffffffffff81111561068657610685611f91565b5b6040519080825280602002602001820160405280156106bf57816020015b6106ac611ad7565b8152602001906001900390816106a45790505b50905060005b60088054905081101561077a576000600882815481106106e8576106e7611fc0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161074583610929565b81525083838151811061075b5761075a611fc0565b5b60200260200101819052505080806107729061201e565b9150506106c5565b508091505090565b600061082b61078f611035565b8461082685600160006107a0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b61103d565b6001905092915050565b61083d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c3906120b2565b60405180910390fd5b600660149054906101000a900460ff1661091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091290612144565b60405180910390fd5b610925828261128c565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610979611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906120b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b0290611f60565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2e90611f60565b8015610b7b5780601f10610b5057610100808354040283529160200191610b7b565b820191906000526020600020905b815481529060010190602001808311610b5e57829003601f168201915b5050505050905090565b610b8d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906120b2565b60405180910390fd5b600660159054906101000a900460ff16610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c62906121d6565b60405180910390fd5b610c75828261141f565b5050565b6000610d3c610c86611035565b84610d37856040518060600160405280602581526020016127136025913960016000610cb0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b6001905092915050565b6000610d5a610d53611035565b8484611206565b6001905092915050565b600660149054906101000a900460ff1681565b600660159054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e19611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906120b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90612268565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284610fe69190612288565b90508381101561102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290612308565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a39061239a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361111b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111129061242c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111f99190611cd7565b60405180910390a3505050565b61120f836115cc565b611218826115cc565b61122383838361175a565b505050565b6000838311158290611270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112679190611b97565b60405180910390fd5b506000838561127f919061244c565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f2906124cc565b60405180910390fd5b611307600083836119ed565b61131c81600254610fd790919063ffffffff16565b600281905550611373816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114139190611cd7565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114859061255e565b60405180910390fd5b61149a826000836119ed565b611505816040518060600160405280602281526020016126a3602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155c816002546119f290919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c09190611cd7565b60405180910390a35050565b6115d581611a3c565b6117075760405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161160983610929565b815250600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611757565b61171081610929565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c0906125f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90612682565b60405180910390fd5b6118438383836119ed565b6118ae816040518060600160405280602681526020016126c5602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611941816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e09190611cd7565b60405180910390a3505050565b505050565b6000611a3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611228565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b41578082015181840152602081019050611b26565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b6982611b07565b611b738185611b12565b9350611b83818560208601611b23565b611b8c81611b4d565b840191505092915050565b60006020820190508181036000830152611bb18184611b5e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611be982611bbe565b9050919050565b611bf981611bde565b8114611c0457600080fd5b50565b600081359050611c1681611bf0565b92915050565b6000819050919050565b611c2f81611c1c565b8114611c3a57600080fd5b50565b600081359050611c4c81611c26565b92915050565b60008060408385031215611c6957611c68611bb9565b5b6000611c7785828601611c07565b9250506020611c8885828601611c3d565b9150509250929050565b60008115159050919050565b611ca781611c92565b82525050565b6000602082019050611cc26000830184611c9e565b92915050565b611cd181611c1c565b82525050565b6000602082019050611cec6000830184611cc8565b92915050565b600080600060608486031215611d0b57611d0a611bb9565b5b6000611d1986828701611c07565b9350506020611d2a86828701611c07565b9250506040611d3b86828701611c3d565b9150509250925092565b600060ff82169050919050565b611d5b81611d45565b82525050565b6000602082019050611d766000830184611d52565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611db181611bde565b82525050565b611dc081611c1c565b82525050565b604082016000820151611ddc6000850182611da8565b506020820151611def6020850182611db7565b50505050565b6000611e018383611dc6565b60408301905092915050565b6000602082019050919050565b6000611e2582611d7c565b611e2f8185611d87565b9350611e3a83611d98565b8060005b83811015611e6b578151611e528882611df5565b9750611e5d83611e0d565b925050600181019050611e3e565b5085935050505092915050565b60006020820190508181036000830152611e928184611e1a565b905092915050565b600060208284031215611eb057611eaf611bb9565b5b6000611ebe84828501611c07565b91505092915050565b611ed081611bde565b82525050565b6000602082019050611eeb6000830184611ec7565b92915050565b60008060408385031215611f0857611f07611bb9565b5b6000611f1685828601611c07565b9250506020611f2785828601611c07565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f7857607f821691505b602082108103611f8b57611f8a611f31565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202982611c1c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205b5761205a611fef565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061209c602083611b12565b91506120a782612066565b602082019050919050565b600060208201905081810360008301526120cb8161208f565b9050919050565b7f546865206d696e742066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b600061212e602183611b12565b9150612139826120d2565b604082019050919050565b6000602082019050818103600083015261215d81612121565b9050919050565b7f546865206275726e2066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006121c0602183611b12565b91506121cb82612164565b604082019050919050565b600060208201905081810360008301526121ef816121b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612252602683611b12565b915061225d826121f6565b604082019050919050565b6000602082019050818103600083015261228181612245565b9050919050565b600061229382611c1c565b915061229e83611c1c565b92508282019050808211156122b6576122b5611fef565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006122f2601b83611b12565b91506122fd826122bc565b602082019050919050565b60006020820190508181036000830152612321816122e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612384602483611b12565b915061238f82612328565b604082019050919050565b600060208201905081810360008301526123b381612377565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612416602283611b12565b9150612421826123ba565b604082019050919050565b6000602082019050818103600083015261244581612409565b9050919050565b600061245782611c1c565b915061246283611c1c565b925082820390508181111561247a57612479611fef565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006124b6601f83611b12565b91506124c182612480565b602082019050919050565b600060208201905081810360008301526124e5816124a9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612548602183611b12565b9150612553826124ec565b604082019050919050565b600060208201905081810360008301526125778161253b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125da602583611b12565b91506125e58261257e565b604082019050919050565b60006020820190508181036000830152612609816125cd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061266c602383611b12565b915061267782612610565b604082019050919050565b6000602082019050818103600083015261269b8161265f565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122018b4c486f5c252ef69e8b702f4f5fe044a6169c4981380b83495107ff9ce5bd164736f6c63430008120033

Deployed Bytecode Sourcemap

10626:2174:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6989:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6255:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7207:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6147:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11726:360;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7669:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11368:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6371:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4851:148;;;;;;;;;;;;;:::i;:::-;;4637:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6035:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11547:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7977:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6556:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10674:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10700;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6780:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5007:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5927:100;5981:13;6014:5;6007:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:100;:::o;6989:210::-;7108:4;7130:39;7139:12;:10;:12::i;:::-;7153:7;7162:6;7130:8;:39::i;:::-;7187:4;7180:11;;6989:210;;;;:::o;6255:108::-;6316:7;6343:12;;6336:19;;6255:108;:::o;7207:454::-;7347:4;7364:36;7374:6;7382:9;7393:6;7364:9;:36::i;:::-;7411:220;7434:6;7455:12;:10;:12::i;:::-;7482:138;7538:6;7482:138;;;;;;;;;;;;;;;;;:11;:19;7494:6;7482:19;;;;;;;;;;;;;;;:33;7502:12;:10;:12::i;:::-;7482:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7411:8;:220::i;:::-;7649:4;7642:11;;7207:454;;;;;:::o;6147:100::-;6205:5;6230:9;;;;;;;;;;;6223:16;;6147:100;:::o;11726:360::-;11777:15;11805:28;11849:10;:17;;;;11836:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11805:62;;11883:9;11878:171;11902:10;:17;;;;11898:1;:21;11878:171;;;11941:14;11958:10;11969:1;11958:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11941:30;;12004:33;;;;;;;;12011:6;12004:33;;;;;;12019:17;12029:6;12019:9;:17::i;:::-;12004:33;;;11986:12;11999:1;11986:15;;;;;;;;:::i;:::-;;;;;;;:51;;;;11926:123;11921:3;;;;;:::i;:::-;;;;11878:171;;;;12066:12;12059:19;;;11726:360;:::o;7669:300::-;7784:4;7806:133;7829:12;:10;:12::i;:::-;7856:7;7878:50;7917:10;7878:11;:25;7890:12;:10;:12::i;:::-;7878:25;;;;;;;;;;;;;;;:34;7904:7;7878:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;7806:8;:133::i;:::-;7957:4;7950:11;;7669:300;;;;:::o;11368:171::-;4774:12;:10;:12::i;:::-;4764:22;;:6;;;;;;;;;;;:22;;;4756:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11453:7:::1;;;;;;;;;;;11445:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11509:22;11515:7;11524:6;11509:5;:22::i;:::-;11368:171:::0;;:::o;6371:177::-;6490:7;6522:9;:18;6532:7;6522:18;;;;;;;;;;;;;;;;6515:25;;6371:177;;;:::o;4851:148::-;4774:12;:10;:12::i;:::-;4764:22;;:6;;;;;;;;;;;:22;;;4756:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4958:1:::1;4921:40;;4942:6;;;;;;;;;;;4921:40;;;;;;;;;;;;4989:1;4972:6;;:19;;;;;;;;;;;;;;;;;;4851:148::o:0;4637:79::-;4675:7;4702:6;;;;;;;;;;;4695:13;;4637:79;:::o;6035:104::-;6091:13;6124:7;6117:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6035:104;:::o;11547:171::-;4774:12;:10;:12::i;:::-;4764:22;;:6;;;;;;;;;;;:22;;;4756:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11632:7:::1;;;;;;;;;;;11624:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11688:22;11694:7;11703:6;11688:5;:22::i;:::-;11547:171:::0;;:::o;7977:400::-;8097:4;8119:228;8142:12;:10;:12::i;:::-;8169:7;8191:145;8248:15;8191:145;;;;;;;;;;;;;;;;;:11;:25;8203:12;:10;:12::i;:::-;8191:25;;;;;;;;;;;;;;;:34;8217:7;8191:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;8119:8;:228::i;:::-;8365:4;8358:11;;7977:400;;;;:::o;6556:216::-;6678:4;6700:42;6710:12;:10;:12::i;:::-;6724:9;6735:6;6700:9;:42::i;:::-;6760:4;6753:11;;6556:216;;;;:::o;10674:19::-;;;;;;;;;;;;;:::o;10700:::-;;;;;;;;;;;;;:::o;6780:201::-;6914:7;6946:11;:18;6958:5;6946:18;;;;;;;;;;;;;;;:27;6965:7;6946:27;;;;;;;;;;;;;;;;6939:34;;6780:201;;;;:::o;5007:281::-;4774:12;:10;:12::i;:::-;4764:22;;:6;;;;;;;;;;;:22;;;4756:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5130:1:::1;5110:22;;:8;:22;;::::0;5088:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5243:8;5214:38;;5235:6;;;;;;;;;;;5214:38;;;;;;;;;;;;5272:8;5263:6;;:17;;;;;;;;;;;;;;;;;;5007:281:::0;:::o;1378:181::-;1436:7;1456:9;1472:1;1468;:5;;;;:::i;:::-;1456:17;;1497:1;1492;:6;;1484:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1550:1;1543:8;;;1378:181;;;;:::o;1125:98::-;1178:7;1205:10;1198:17;;1125:98;:::o;9852:380::-;10005:1;9988:19;;:5;:19;;;9980:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10086:1;10067:21;;:7;:21;;;10059:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10170:6;10140:11;:18;10152:5;10140:18;;;;;;;;;;;;;;;:27;10159:7;10140:27;;;;;;;;;;;;;;;:36;;;;10208:7;10192:32;;10201:5;10192:32;;;10217:6;10192:32;;;;;;:::i;:::-;;;;;;;;9852:380;;;:::o;12094:252::-;12227:22;12242:6;12227:14;:22::i;:::-;12260:25;12275:9;12260:14;:25::i;:::-;12296:42;12312:6;12320:9;12331:6;12296:15;:42::i;:::-;12094:252;;;:::o;1711:226::-;1831:7;1864:1;1859;:6;;1867:12;1851:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1891:9;1907:1;1903;:5;;;;:::i;:::-;1891:17;;1928:1;1921:8;;;1711:226;;;;;:::o;9003:378::-;9106:1;9087:21;;:7;:21;;;9079:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9157:49;9186:1;9190:7;9199:6;9157:20;:49::i;:::-;9234:24;9251:6;9234:12;;:16;;:24;;;;:::i;:::-;9219:12;:39;;;;9290:30;9313:6;9290:9;:18;9300:7;9290:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;9269:9;:18;9279:7;9269:18;;;;;;;;;;;;;;;:51;;;;9357:7;9336:37;;9353:1;9336:37;;;9366:6;9336:37;;;;;;:::i;:::-;;;;;;;;9003:378;;:::o;9389:455::-;9492:1;9473:21;;:7;:21;;;9465:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9545:49;9566:7;9583:1;9587:6;9545:20;:49::i;:::-;9628:105;9665:6;9628:105;;;;;;;;;;;;;;;;;:9;:18;9638:7;9628:18;;;;;;;;;;;;;;;;:22;;:105;;;;;:::i;:::-;9607:9;:18;9617:7;9607:18;;;;;;;;;;;;;;;:126;;;;9759:24;9776:6;9759:12;;:16;;:24;;;;:::i;:::-;9744:12;:39;;;;9825:1;9799:37;;9808:7;9799:37;;;9829:6;9799:37;;;;;;:::i;:::-;;;;;;;;9389:455;;:::o;12354:287::-;12418:17;12428:6;12418:9;:17::i;:::-;12413:221;;12470:33;;;;;;;;12477:6;12470:33;;;;;;12485:17;12495:6;12485:9;:17::i;:::-;12470:33;;;12452:7;:15;12460:6;12452:15;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12518:10;12534:6;12518:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12413:221;;;12605:17;12615:6;12605:9;:17::i;:::-;12574:7;:15;12582:6;12574:15;;;;;;;;;;;;;;;:28;;:48;;;;12413:221;12354:287;:::o;8385:610::-;8543:1;8525:20;;:6;:20;;;8517:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8627:1;8606:23;;:9;:23;;;8598:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8682:47;8703:6;8711:9;8722:6;8682:20;:47::i;:::-;8762:108;8798:6;8762:108;;;;;;;;;;;;;;;;;:9;:17;8772:6;8762:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;8742:9;:17;8752:6;8742:17;;;;;;;;;;;;;;;:128;;;;8904:32;8929:6;8904:9;:20;8914:9;8904:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8881:9;:20;8891:9;8881:20;;;;;;;;;;;;;;;:55;;;;8969:9;8952:35;;8961:6;8952:35;;;8980:6;8952:35;;;;;;:::i;:::-;;;;;;;;8385:610;;;:::o;10492:125::-;;;;:::o;1567:136::-;1625:7;1652:43;1656:1;1659;1652:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1645:50;;1567:136;;;;:::o;12649:146::-;12713:4;12785:1;12737:50;;:7;:22;12745:13;12737:22;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:50;;;;12730:57;;12649:146;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::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:138::-;4944:6;4978:5;4972:12;4962:22;;4853:138;;;:::o;4997:208::-;5120:11;5154:6;5149:3;5142:19;5194:4;5189:3;5185:14;5170:29;;4997:208;;;;:::o;5211:156::-;5302:4;5325:3;5317:11;;5355:4;5350:3;5346:14;5338:22;;5211:156;;;:::o;5373:108::-;5450:24;5468:5;5450:24;:::i;:::-;5445:3;5438:37;5373:108;;:::o;5487:::-;5564:24;5582:5;5564:24;:::i;:::-;5559:3;5552:37;5487:108;;:::o;5667:512::-;5802:4;5797:3;5793:14;5898:4;5891:5;5887:16;5881:23;5917:63;5974:4;5969:3;5965:14;5951:12;5917:63;:::i;:::-;5817:173;6080:4;6073:5;6069:16;6063:23;6099:63;6156:4;6151:3;6147:14;6133:12;6099:63;:::i;:::-;6000:172;5771:408;5667:512;;:::o;6185:275::-;6302:10;6323:94;6413:3;6405:6;6323:94;:::i;:::-;6449:4;6444:3;6440:14;6426:28;;6185:275;;;;:::o;6466:137::-;6560:4;6592;6587:3;6583:14;6575:22;;6466:137;;;:::o;6679:924::-;6846:3;6875:78;6947:5;6875:78;:::i;:::-;6969:110;7072:6;7067:3;6969:110;:::i;:::-;6962:117;;7103:80;7177:5;7103:80;:::i;:::-;7206:7;7237:1;7222:356;7247:6;7244:1;7241:13;7222:356;;;7323:6;7317:13;7350:111;7457:3;7442:13;7350:111;:::i;:::-;7343:118;;7484:84;7561:6;7484:84;:::i;:::-;7474:94;;7282:296;7269:1;7266;7262:9;7257:14;;7222:356;;;7226:14;7594:3;7587:10;;6851:752;;;6679:924;;;;:::o;7609:469::-;7800:4;7838:2;7827:9;7823:18;7815:26;;7887:9;7881:4;7877:20;7873:1;7862:9;7858:17;7851:47;7915:156;8066:4;8057:6;7915:156;:::i;:::-;7907:164;;7609:469;;;;:::o;8084:329::-;8143:6;8192:2;8180:9;8171:7;8167:23;8163:32;8160:119;;;8198:79;;:::i;:::-;8160:119;8318:1;8343:53;8388:7;8379:6;8368:9;8364:22;8343:53;:::i;:::-;8333:63;;8289:117;8084:329;;;;:::o;8419:118::-;8506:24;8524:5;8506:24;:::i;:::-;8501:3;8494:37;8419:118;;:::o;8543:222::-;8636:4;8674:2;8663:9;8659:18;8651:26;;8687:71;8755:1;8744:9;8740:17;8731:6;8687:71;:::i;:::-;8543:222;;;;:::o;8771:474::-;8839:6;8847;8896:2;8884:9;8875:7;8871:23;8867:32;8864:119;;;8902:79;;:::i;:::-;8864:119;9022:1;9047:53;9092:7;9083:6;9072:9;9068:22;9047:53;:::i;:::-;9037:63;;8993:117;9149:2;9175:53;9220:7;9211:6;9200:9;9196:22;9175:53;:::i;:::-;9165:63;;9120:118;8771:474;;;;;:::o;9251:180::-;9299:77;9296:1;9289:88;9396:4;9393:1;9386:15;9420:4;9417:1;9410:15;9437:320;9481:6;9518:1;9512:4;9508:12;9498:22;;9565:1;9559:4;9555:12;9586:18;9576:81;;9642:4;9634:6;9630:17;9620:27;;9576:81;9704:2;9696:6;9693:14;9673:18;9670:38;9667:84;;9723:18;;:::i;:::-;9667:84;9488:269;9437:320;;;:::o;9763:180::-;9811:77;9808:1;9801:88;9908:4;9905:1;9898:15;9932:4;9929:1;9922:15;9949:180;9997:77;9994:1;9987:88;10094:4;10091:1;10084:15;10118:4;10115:1;10108:15;10135:180;10183:77;10180:1;10173:88;10280:4;10277:1;10270:15;10304:4;10301:1;10294:15;10321:233;10360:3;10383:24;10401:5;10383:24;:::i;:::-;10374:33;;10429:66;10422:5;10419:77;10416:103;;10499:18;;:::i;:::-;10416:103;10546:1;10539:5;10535:13;10528:20;;10321:233;;;:::o;10560:182::-;10700:34;10696:1;10688:6;10684:14;10677:58;10560:182;:::o;10748:366::-;10890:3;10911:67;10975:2;10970:3;10911:67;:::i;:::-;10904:74;;10987:93;11076:3;10987:93;:::i;:::-;11105:2;11100:3;11096:12;11089:19;;10748:366;;;:::o;11120:419::-;11286:4;11324:2;11313:9;11309:18;11301:26;;11373:9;11367:4;11363:20;11359:1;11348:9;11344:17;11337:47;11401:131;11527:4;11401:131;:::i;:::-;11393:139;;11120:419;;;:::o;11545:220::-;11685:34;11681:1;11673:6;11669:14;11662:58;11754:3;11749:2;11741:6;11737:15;11730:28;11545:220;:::o;11771:366::-;11913:3;11934:67;11998:2;11993:3;11934:67;:::i;:::-;11927:74;;12010:93;12099:3;12010:93;:::i;:::-;12128:2;12123:3;12119:12;12112:19;;11771:366;;;:::o;12143:419::-;12309:4;12347:2;12336:9;12332:18;12324:26;;12396:9;12390:4;12386:20;12382:1;12371:9;12367:17;12360:47;12424:131;12550:4;12424:131;:::i;:::-;12416:139;;12143:419;;;:::o;12568:220::-;12708:34;12704:1;12696:6;12692:14;12685:58;12777:3;12772:2;12764:6;12760:15;12753:28;12568:220;:::o;12794:366::-;12936:3;12957:67;13021:2;13016:3;12957:67;:::i;:::-;12950:74;;13033:93;13122:3;13033:93;:::i;:::-;13151:2;13146:3;13142:12;13135:19;;12794:366;;;:::o;13166:419::-;13332:4;13370:2;13359:9;13355:18;13347:26;;13419:9;13413:4;13409:20;13405:1;13394:9;13390:17;13383:47;13447:131;13573:4;13447:131;:::i;:::-;13439:139;;13166:419;;;:::o;13591:225::-;13731:34;13727:1;13719:6;13715:14;13708:58;13800:8;13795:2;13787:6;13783:15;13776:33;13591:225;:::o;13822:366::-;13964:3;13985:67;14049:2;14044:3;13985:67;:::i;:::-;13978:74;;14061:93;14150:3;14061:93;:::i;:::-;14179:2;14174:3;14170:12;14163:19;;13822:366;;;:::o;14194:419::-;14360:4;14398:2;14387:9;14383:18;14375:26;;14447:9;14441:4;14437:20;14433:1;14422:9;14418:17;14411:47;14475:131;14601:4;14475:131;:::i;:::-;14467:139;;14194:419;;;:::o;14619:191::-;14659:3;14678:20;14696:1;14678:20;:::i;:::-;14673:25;;14712:20;14730:1;14712:20;:::i;:::-;14707:25;;14755:1;14752;14748:9;14741:16;;14776:3;14773:1;14770:10;14767:36;;;14783:18;;:::i;:::-;14767:36;14619:191;;;;:::o;14816:177::-;14956:29;14952:1;14944:6;14940:14;14933:53;14816:177;:::o;14999:366::-;15141:3;15162:67;15226:2;15221:3;15162:67;:::i;:::-;15155:74;;15238:93;15327:3;15238:93;:::i;:::-;15356:2;15351:3;15347:12;15340:19;;14999:366;;;:::o;15371:419::-;15537:4;15575:2;15564:9;15560:18;15552:26;;15624:9;15618:4;15614:20;15610:1;15599:9;15595:17;15588:47;15652:131;15778:4;15652:131;:::i;:::-;15644:139;;15371:419;;;:::o;15796:223::-;15936:34;15932:1;15924:6;15920:14;15913:58;16005:6;16000:2;15992:6;15988:15;15981:31;15796:223;:::o;16025:366::-;16167:3;16188:67;16252:2;16247:3;16188:67;:::i;:::-;16181:74;;16264:93;16353:3;16264:93;:::i;:::-;16382:2;16377:3;16373:12;16366:19;;16025:366;;;:::o;16397:419::-;16563:4;16601:2;16590:9;16586:18;16578:26;;16650:9;16644:4;16640:20;16636:1;16625:9;16621:17;16614:47;16678:131;16804:4;16678:131;:::i;:::-;16670:139;;16397:419;;;:::o;16822:221::-;16962:34;16958:1;16950:6;16946:14;16939:58;17031:4;17026:2;17018:6;17014:15;17007:29;16822:221;:::o;17049:366::-;17191:3;17212:67;17276:2;17271:3;17212:67;:::i;:::-;17205:74;;17288:93;17377:3;17288:93;:::i;:::-;17406:2;17401:3;17397:12;17390:19;;17049:366;;;:::o;17421:419::-;17587:4;17625:2;17614:9;17610:18;17602:26;;17674:9;17668:4;17664:20;17660:1;17649:9;17645:17;17638:47;17702:131;17828:4;17702:131;:::i;:::-;17694:139;;17421:419;;;:::o;17846:194::-;17886:4;17906:20;17924:1;17906:20;:::i;:::-;17901:25;;17940:20;17958:1;17940:20;:::i;:::-;17935:25;;17984:1;17981;17977:9;17969:17;;18008:1;18002:4;17999:11;17996:37;;;18013:18;;:::i;:::-;17996:37;17846:194;;;;:::o;18046:181::-;18186:33;18182:1;18174:6;18170:14;18163:57;18046:181;:::o;18233:366::-;18375:3;18396:67;18460:2;18455:3;18396:67;:::i;:::-;18389:74;;18472:93;18561:3;18472:93;:::i;:::-;18590:2;18585:3;18581:12;18574:19;;18233:366;;;:::o;18605:419::-;18771:4;18809:2;18798:9;18794:18;18786:26;;18858:9;18852:4;18848:20;18844:1;18833:9;18829:17;18822:47;18886:131;19012:4;18886:131;:::i;:::-;18878:139;;18605:419;;;:::o;19030:220::-;19170:34;19166:1;19158:6;19154:14;19147:58;19239:3;19234:2;19226:6;19222:15;19215:28;19030:220;:::o;19256:366::-;19398:3;19419:67;19483:2;19478:3;19419:67;:::i;:::-;19412:74;;19495:93;19584:3;19495:93;:::i;:::-;19613:2;19608:3;19604:12;19597:19;;19256:366;;;:::o;19628:419::-;19794:4;19832:2;19821:9;19817:18;19809:26;;19881:9;19875:4;19871:20;19867:1;19856:9;19852:17;19845:47;19909:131;20035:4;19909:131;:::i;:::-;19901:139;;19628:419;;;:::o;20053:224::-;20193:34;20189:1;20181:6;20177:14;20170:58;20262:7;20257:2;20249:6;20245:15;20238:32;20053:224;:::o;20283:366::-;20425:3;20446:67;20510:2;20505:3;20446:67;:::i;:::-;20439:74;;20522:93;20611:3;20522:93;:::i;:::-;20640:2;20635:3;20631:12;20624:19;;20283:366;;;:::o;20655:419::-;20821:4;20859:2;20848:9;20844:18;20836:26;;20908:9;20902:4;20898:20;20894:1;20883:9;20879:17;20872:47;20936:131;21062:4;20936:131;:::i;:::-;20928:139;;20655:419;;;:::o;21080:222::-;21220:34;21216:1;21208:6;21204:14;21197:58;21289:5;21284:2;21276:6;21272:15;21265:30;21080:222;:::o;21308:366::-;21450:3;21471:67;21535:2;21530:3;21471:67;:::i;:::-;21464:74;;21547:93;21636:3;21547:93;:::i;:::-;21665:2;21660:3;21656:12;21649:19;;21308:366;;;:::o;21680:419::-;21846:4;21884:2;21873:9;21869:18;21861:26;;21933:9;21927:4;21923:20;21919:1;21908:9;21904:17;21897:47;21961:131;22087:4;21961:131;:::i;:::-;21953:139;;21680:419;;;:::o

Swarm Source

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