ETH Price: $3,407.26 (+2.47%)

Contract

0x5ba19d656B65f1684cFea4Af428C23B9f3628F97
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

AAG (AAG) ($0.0004)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
0x94e0de37713fd760ce88c34bcf4242d04e48407df46101daf8adb0920009098c Approve(pending)2025-11-02 2:17:154 days ago1762049835IN
AAG: AAG Token
0 ETH(Pending)(Pending)
Approve235902982025-10-16 12:43:1120 days ago1760618591IN
AAG: AAG Token
0 ETH0.000030570.74840147
Increase Allowan...234387382025-09-25 8:04:2341 days ago1758787463IN
AAG: AAG Token
0 ETH0.000093651.48062217
Transfer234170172025-09-22 7:15:5944 days ago1758525359IN
AAG: AAG Token
0 ETH0.000047240.88567776
Approve233621282025-09-14 15:10:5952 days ago1757862659IN
AAG: AAG Token
0 ETH0.000117551.85356385
Increase Allowan...233477062025-09-12 14:53:1154 days ago1757688791IN
AAG: AAG Token
0 ETH0.000116911.84807652
Claim Tokens233166422025-09-08 6:39:5958 days ago1757313599IN
AAG: AAG Token
0 ETH0.000003290.13831921
Approve231707182025-08-18 21:45:2379 days ago1755553523IN
AAG: AAG Token
0 ETH0.000154462.4378906
Approve231270742025-08-12 19:32:3585 days ago1755027155IN
AAG: AAG Token
0 ETH0.000105971.68061644
Approve230930842025-08-08 1:33:1190 days ago1754616791IN
AAG: AAG Token
0 ETH0.000022930.3616431
Approve230726552025-08-05 5:04:3592 days ago1754370275IN
AAG: AAG Token
0 ETH0.000043821.07292296
Transfer230713872025-08-05 0:49:2393 days ago1754354963IN
AAG: AAG Token
0 ETH0.000086871.15479658
Approve230677732025-08-04 12:42:4793 days ago1754311367IN
AAG: AAG Token
0 ETH0.000014780.36142562
Approve230218702025-07-29 2:40:11100 days ago1753756811IN
AAG: AAG Token
0 ETH0.000019780.31337582
Approve229608812025-07-20 14:04:23108 days ago1753020263IN
AAG: AAG Token
0 ETH0.000155832.45719527
Transfer229599322025-07-20 10:53:11108 days ago1753008791IN
AAG: AAG Token
0 ETH0.000150281.99736282
Approve229363592025-07-17 3:53:59111 days ago1752724439IN
AAG: AAG Token
0 ETH0.000188652.97759429
Approve228608682025-07-06 14:50:47122 days ago1751813447IN
AAG: AAG Token
0 ETH0.000051550.81728177
Approve228003112025-06-28 3:41:11130 days ago1751082071IN
AAG: AAG Token
0 ETH0.000033670.82323518
Transfer227750502025-06-24 15:01:11134 days ago1750777271IN
AAG: AAG Token
0 ETH0.000494496.57309091
Transfer227741892025-06-24 12:08:23134 days ago1750766903IN
AAG: AAG Token
0 ETH0.000200332.66247589
Approve227127062025-06-15 21:45:59143 days ago1750023959IN
AAG: AAG Token
0 ETH0.000036240.57213293
Transfer227126392025-06-15 21:32:35143 days ago1750023155IN
AAG: AAG Token
0 ETH0.000070120.93196986
Approve226837372025-06-11 20:34:59147 days ago1749674099IN
AAG: AAG Token
0 ETH0.000171352.70198075
Approve226443712025-06-06 8:29:11152 days ago1749198551IN
AAG: AAG Token
0 ETH0.000063671.55650619
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AAGToken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license, Audited
/**
 *Submitted for verification at Etherscan.io on 2021-12-04
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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


interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

interface ILosslessController {
  function beforeTransfer(
    address sender,
    address recipient,
    uint256 amount
  ) external;

  function beforeTransferFrom(
    address msgSender,
    address sender,
    address recipient,
    uint256 amount
  ) external;

  function beforeApprove(
    address sender,
    address spender,
    uint256 amount
  ) external;

  function beforeIncreaseAllowance(
    address msgSender,
    address spender,
    uint256 addedValue
  ) external;

  function beforeDecreaseAllowance(
    address msgSender,
    address spender,
    uint256 subtractedValue
  ) external;

  function afterApprove(
    address sender,
    address spender,
    uint256 amount
  ) external;

  function afterTransfer(
    address sender,
    address recipient,
    uint256 amount
  ) external;

  function afterTransferFrom(
    address msgSender,
    address sender,
    address recipient,
    uint256 amount
  ) external;

  function afterIncreaseAllowance(
    address sender,
    address spender,
    uint256 addedValue
  ) external;

  function afterDecreaseAllowance(
    address sender,
    address spender,
    uint256 subtractedValue
  ) external;
}

contract AAGToken is Context, IERC20 {
  mapping(address => uint256) private _balances;
  mapping(address => mapping(address => uint256)) private _allowances;

  uint256 private _totalSupply;
  string private constant NAME = "AAG";
  string private constant SYMBOL = "AAG";

  address public recoveryAdmin;
  address private recoveryAdminCanditate;
  bytes32 private recoveryAdminKeyHash;
  address public admin;
  uint256 public timelockPeriod;
  uint256 public losslessTurnOffTimestamp;
  bool public isLosslessTurnOffProposed;
  bool public isLosslessOn = true;
  ILosslessController private lossless;

  event AdminChanged(address indexed previousAdmin, address indexed newAdmin);
  event RecoveryAdminChangeProposed(address indexed candidate);
  event RecoveryAdminChanged(address indexed previousAdmin, address indexed newAdmin);
  event LosslessTurnOffProposed(uint256 turnOffDate);
  event LosslessTurnedOff();
  event LosslessTurnedOn();

  uint256 private constant _TOTAL_SUPPLY = 1000000000e18; // Initial supply 1 000 000 000
  bool private initialPoolClaimed = false;

  constructor(
    address admin_,
    address recoveryAdmin_,
    uint256 timelockPeriod_,
    address lossless_,
    bool losslessOn
  ) {
    _mint(address(this), _TOTAL_SUPPLY);
    admin = admin_;
    recoveryAdmin = recoveryAdmin_;
    timelockPeriod = timelockPeriod_;
    isLosslessOn = losslessOn;
    lossless = ILosslessController(lossless_);
  }

  // AAG unlocked tokens claiming

  function claimTokens() public onlyRecoveryAdmin {
    require(initialPoolClaimed == false, "Already claimed");
    initialPoolClaimed = true;
    _transfer(address(this), admin, _TOTAL_SUPPLY);
  }

  // --- LOSSLESS modifiers ---

  modifier lssAprove(address spender, uint256 amount) {
    if (isLosslessOn) {
      lossless.beforeApprove(_msgSender(), spender, amount);
      _;
      lossless.afterApprove(_msgSender(), spender, amount);
    } else {
      _;
    }
  }

  modifier lssTransfer(address recipient, uint256 amount) {
    if (isLosslessOn) {
      lossless.beforeTransfer(_msgSender(), recipient, amount);
      _;
      lossless.afterTransfer(_msgSender(), recipient, amount);
    } else {
      _;
    }
  }

  modifier lssTransferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) {
    if (isLosslessOn) {
      lossless.beforeTransferFrom(_msgSender(), sender, recipient, amount);
      _;
      lossless.afterTransferFrom(_msgSender(), sender, recipient, amount);
    } else {
      _;
    }
  }

  modifier lssIncreaseAllowance(address spender, uint256 addedValue) {
    if (isLosslessOn) {
      lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue);
      _;
      lossless.afterIncreaseAllowance(_msgSender(), spender, addedValue);
    } else {
      _;
    }
  }

  modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) {
    if (isLosslessOn) {
      lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue);
      _;
      lossless.afterDecreaseAllowance(_msgSender(), spender, subtractedValue);
    } else {
      _;
    }
  }

  modifier onlyRecoveryAdmin() {
    require(_msgSender() == recoveryAdmin, "ERC20: Must be recovery admin");
    _;
  }

  // --- LOSSLESS management ---

  function getAdmin() external view returns (address) {
    return admin;
  }

  function transferOutBlacklistedFunds(address[] calldata from) external {
    require(_msgSender() == address(lossless), "ERC20: Only lossless contract");
    for (uint256 i = 0; i < from.length; i++) {
      _transfer(from[i], address(lossless), balanceOf(from[i]));
    }
  }

  function setLosslessAdmin(address newAdmin) public onlyRecoveryAdmin {
    emit AdminChanged(admin, newAdmin);
    admin = newAdmin;
  }

  function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash) public onlyRecoveryAdmin {
    recoveryAdminCanditate = candidate;
    recoveryAdminKeyHash = keyHash;
    emit RecoveryAdminChangeProposed(candidate);
  }

  function acceptRecoveryAdminOwnership(bytes memory key) external {
    require(_msgSender() == recoveryAdminCanditate, "ERC20: Must be canditate");
    require(keccak256(key) == recoveryAdminKeyHash, "ERC20: Invalid key");
    emit RecoveryAdminChanged(recoveryAdmin, recoveryAdminCanditate);
    recoveryAdmin = recoveryAdminCanditate;
  }

  function proposeLosslessTurnOff() public onlyRecoveryAdmin {
    losslessTurnOffTimestamp = block.timestamp + timelockPeriod;
    isLosslessTurnOffProposed = true;
    emit LosslessTurnOffProposed(losslessTurnOffTimestamp);
  }

  function executeLosslessTurnOff() public onlyRecoveryAdmin {
    require(isLosslessTurnOffProposed, "ERC20: TurnOff not proposed");
    require(losslessTurnOffTimestamp <= block.timestamp, "ERC20: Time lock in progress");
    isLosslessOn = false;
    isLosslessTurnOffProposed = false;
    emit LosslessTurnedOff();
  }

  function executeLosslessTurnOn() public onlyRecoveryAdmin {
    isLosslessTurnOffProposed = false;
    isLosslessOn = true;
    emit LosslessTurnedOn();
  }

  // --- ERC20 methods ---

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

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

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

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

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

  function transfer(address recipient, uint256 amount) public virtual override lssTransfer(recipient, amount) 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 lssAprove(spender, amount) returns (bool) {
    require((amount == 0) || (_allowances[_msgSender()][spender] == 0), "ERC20: Cannot change non zero allowance");
    _approve(_msgSender(), spender, amount);
    return true;
  }

  function transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) public virtual override lssTransferFrom(sender, recipient, amount) returns (bool) {
    _transfer(sender, recipient, amount);

    uint256 currentAllowance = _allowances[sender][_msgSender()];
    require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
    _approve(sender, _msgSender(), currentAllowance - amount);

    return true;
  }

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

  function decreaseAllowance(address spender, uint256 subtractedValue) public virtual lssDecreaseAllowance(spender, subtractedValue) returns (bool) {
    uint256 currentAllowance = _allowances[_msgSender()][spender];
    require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
    _approve(_msgSender(), spender, currentAllowance - subtractedValue);

    return true;
  }

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

    uint256 senderBalance = _balances[sender];
    require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    _balances[sender] = senderBalance - amount;
    _balances[recipient] += amount;

    emit Transfer(sender, recipient, amount);
  }

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

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

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

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"},{"internalType":"bool","name":"losslessOn","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"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":"turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposed","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"candidate","type":"address"}],"name":"RecoveryAdminChangeProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"RecoveryAdminChanged","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":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"claimTokens","outputs":[],"stateMutability":"nonpayable","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":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLosslessTurnOffProposed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526001600960016101000a81548160ff0219169083151502179055506000600960166101000a81548160ff0219169083151502179055503480156200004757600080fd5b50604051620037f5380380620037f583398181016040528101906200006d919062000310565b6200008b306b033b2e3c9fd0803ce80000006200017a60201b60201c565b84600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260078190555080600960016101000a81548160ff02191690831515021790555081600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000572565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e490620003d0565b60405180910390fd5b806002600082825462000201919062000420565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000258919062000420565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002bf9190620003f2565b60405180910390a35050565b600081519050620002dc8162000524565b92915050565b600081519050620002f3816200053e565b92915050565b6000815190506200030a8162000558565b92915050565b600080600080600060a086880312156200032f576200032e620004f6565b5b60006200033f88828901620002cb565b95505060206200035288828901620002cb565b94505060406200036588828901620002f9565b93505060606200037888828901620002cb565b92505060806200038b88828901620002e2565b9150509295509295909350565b6000620003a7601f836200040f565b9150620003b482620004fb565b602082019050919050565b620003ca81620004bd565b82525050565b60006020820190508181036000830152620003eb8162000398565b9050919050565b6000602082019050620004096000830184620003bf565b92915050565b600082825260208201905092915050565b60006200042d82620004bd565b91506200043a83620004bd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004725762000471620004c7565b5b828201905092915050565b60006200048a826200049d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6200052f816200047d565b81146200053b57600080fd5b50565b620005498162000491565b81146200055557600080fd5b50565b6200056381620004bd565b81146200056f57600080fd5b50565b61327380620005826000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063b38fe95711610097578063d6e242b811610071578063d6e242b81461044f578063dd62ed3e14610459578063efab831c14610489578063f851a440146104a75761018e565b8063b38fe9571461040b578063b5c2287714610415578063ccfa214f146104315761018e565b806370a082311461032557806393310ffe14610355578063936af9111461037157806395d89b411461038d578063a457c2d7146103ab578063a9059cbb146103db5761018e565b8063313ce5671161014b5780635b8a194a116101255780635b8a194a146102c15780635f6529a3146102cb57806361086b00146102e95780636e9960c3146103075761018e565b8063313ce56714610269578063395093511461028757806348c54b9d146102b75761018e565b806306fdde0314610193578063095ea7b3146101b157806318160ddd146101e157806323b872dd146101ff5780632baa3c9e1461022f5780632ecaf6751461024b575b600080fd5b61019b6104c5565b6040516101a89190612956565b60405180910390f35b6101cb60048036038101906101c6919061254c565b610502565b6040516101d8919061293b565b60405180910390f35b6101e9610827565b6040516101f69190612b58565b60405180910390f35b610219600480360381019061021491906124b9565b610831565b604051610226919061293b565b60405180910390f35b6102496004803603810190610244919061244c565b610b7f565b005b610253610cd6565b6040516102609190612b58565b60405180910390f35b610271610cdc565b60405161027e9190612b73565b60405180910390f35b6102a1600480360381019061029c919061254c565b610ce5565b6040516102ae919061293b565b60405180910390f35b6102bf610f84565b005b6102c96110c7565b005b6102d36111c2565b6040516102e091906128a4565b60405180910390f35b6102f16111e8565b6040516102fe9190612b58565b60405180910390f35b61030f6111ee565b60405161031c91906128a4565b60405180910390f35b61033f600480360381019061033a919061244c565b611218565b60405161034c9190612b58565b60405180910390f35b61036f600480360381019061036a919061250c565b611260565b005b61038b6004803603810190610386919061258c565b611386565b005b6103956114c6565b6040516103a29190612956565b60405180910390f35b6103c560048036038101906103c0919061254c565b611503565b6040516103d2919061293b565b60405180910390f35b6103f560048036038101906103f0919061254c565b611834565b604051610402919061293b565b60405180910390f35b6104136119b7565b005b61042f600480360381019061042a91906125d9565b611b46565b005b610439611d2c565b604051610446919061293b565b60405180910390f35b610457611d3f565b005b610473600480360381019061046e9190612479565b611e40565b6040516104809190612b58565b60405180910390f35b610491611ec7565b60405161049e919061293b565b60405180910390f35b6104af611eda565b6040516104bc91906128a4565b60405180910390f35b60606040518060400160405280600381526020017f4141470000000000000000000000000000000000000000000000000000000000815250905090565b60008282600960019054906101000a900460ff161561073757600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be610561611f00565b84846040518463ffffffff1660e01b815260040161058193929190612904565b600060405180830381600087803b15801561059b57600080fd5b505af11580156105af573d6000803e3d6000fd5b50505050600084148061064557506000600160006105cb611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b90612a18565b60405180910390fd5b61069661068f611f00565b8686611f08565b60019250600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663900f66ef6106e0611f00565b84846040518463ffffffff1660e01b815260040161070093929190612904565b600060405180830381600087803b15801561071a57600080fd5b505af115801561072e573d6000803e3d6000fd5b5050505061081f565b60008414806107c9575060006001600061074f611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff90612a18565b60405180910390fd5b61081a610813611f00565b8686611f08565b600192505b505092915050565b6000600254905090565b6000838383600960019054906101000a900460ff1615610a7c57600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c69610891611f00565b8585856040518563ffffffff1660e01b81526004016108b394939291906128bf565b600060405180830381600087803b1580156108cd57600080fd5b505af11580156108e1573d6000803e3d6000fd5b505050506108f08787876120d3565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093b611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050858110156109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b290612a58565b60405180910390fd5b6109d8886109c7611f00565b88846109d39190612c56565b611f08565b6001945050600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a56e8adf610a23611f00565b8585856040518563ffffffff1660e01b8152600401610a4594939291906128bf565b600060405180830381600087803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b50505050610b75565b610a878787876120d3565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ad2611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015610b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4990612a58565b60405180910390fd5b610b6f88610b5e611f00565b8884610b6a9190612c56565b611f08565b60019450505b5050509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc0611f00565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612ad8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60006012905090565b60008282600960019054906101000a900460ff1615610ed757600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610d44611f00565b84846040518463ffffffff1660e01b8152600401610d6493929190612904565b600060405180830381600087803b158015610d7e57600080fd5b505af1158015610d92573d6000803e3d6000fd5b50505050610e36610da1611f00565b868660016000610daf611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e319190612c00565b611f08565b60019250600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d01aa8610e80611f00565b84846040518463ffffffff1660e01b8152600401610ea093929190612904565b600060405180830381600087803b158015610eba57600080fd5b505af1158015610ece573d6000803e3d6000fd5b50505050610f7c565b610f77610ee2611f00565b868660016000610ef0611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f729190612c00565b611f08565b600192505b505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fc5611f00565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101290612ad8565b60405180910390fd5b60001515600960169054906101000a900460ff16151514611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890612a38565b60405180910390fd5b6001600960166101000a81548160ff0219169083151502179055506110c530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006120d3565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611108611f00565b73ffffffffffffffffffffffffffffffffffffffff161461115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612ad8565b60405180910390fd5b6000600960006101000a81548160ff0219169083151502179055506001600960016101000a81548160ff0219169083151502179055507fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7060405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112a1611f00565b73ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90612ad8565b60405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806005819055508173ffffffffffffffffffffffffffffffffffffffff167fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3660405160405180910390a25050565b600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c7611f00565b73ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490612978565b60405180910390fd5b60005b828290508110156114c1576114ae83838381811061144157611440612dd4565b5b9050602002016020810190611456919061244c565b600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114a986868681811061148f5761148e612dd4565b5b90506020020160208101906114a4919061244c565b611218565b6120d3565b80806114b990612d5c565b915050611420565b505050565b60606040518060400160405280600381526020017f4141470000000000000000000000000000000000000000000000000000000000815250905090565b60008282600960019054906101000a900460ff161561173e57600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a9611562611f00565b84846040518463ffffffff1660e01b815260040161158293929190612904565b600060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506000600160006115c2611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481101561167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690612b38565b60405180910390fd5b61169c61168a611f00565b8787846116979190612c56565b611f08565b6001935050600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ded1f4d06116e7611f00565b84846040518463ffffffff1660e01b815260040161170793929190612904565b600060405180830381600087803b15801561172157600080fd5b505af1158015611735573d6000803e3d6000fd5b5050505061182c565b60006001600061174c611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180090612b38565b60405180910390fd5b611826611814611f00565b8787846118219190612c56565b611f08565b60019350505b505092915050565b60008282600960019054906101000a900460ff161561199857600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f611893611f00565b84846040518463ffffffff1660e01b81526004016118b393929190612904565b600060405180830381600087803b1580156118cd57600080fd5b505af11580156118e1573d6000803e3d6000fd5b505050506118f76118f0611f00565b86866120d3565b60019250600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f49062ca611941611f00565b84846040518463ffffffff1660e01b815260040161196193929190612904565b600060405180830381600087803b15801561197b57600080fd5b505af115801561198f573d6000803e3d6000fd5b505050506119af565b6119aa6119a3611f00565b86866120d3565b600192505b505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119f8611f00565b73ffffffffffffffffffffffffffffffffffffffff1614611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4590612ad8565b60405180910390fd5b600960009054906101000a900460ff16611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612b18565b60405180910390fd5b426008541115611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906129d8565b60405180910390fd5b6000600960016101000a81548160ff0219169083151502179055506000600960006101000a81548160ff0219169083151502179055507f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a60405160405180910390a1565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b87611f00565b73ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490612af8565b60405180910390fd5b600554818051906020012014611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f90612a78565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb60405160405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960019054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d80611f00565b73ffffffffffffffffffffffffffffffffffffffff1614611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd90612ad8565b60405180910390fd5b60075442611de49190612c00565b6008819055506001600960006101000a81548160ff0219169083151502179055507f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709600854604051611e369190612b58565b60405180910390a1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f90612ab8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906129b8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120c69190612b58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a90612a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90612998565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612239576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612230906129f8565b60405180910390fd5b81816122459190612c56565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122d59190612c00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123399190612b58565b60405180910390a350505050565b600061235a61235584612bb3565b612b8e565b90508281526020810184848401111561237657612375612e41565b5b612381848285612ce9565b509392505050565b600081359050612398816131f8565b92915050565b60008083601f8401126123b4576123b3612e37565b5b8235905067ffffffffffffffff8111156123d1576123d0612e32565b5b6020830191508360208202830111156123ed576123ec612e3c565b5b9250929050565b6000813590506124038161320f565b92915050565b600082601f83011261241e5761241d612e37565b5b813561242e848260208601612347565b91505092915050565b60008135905061244681613226565b92915050565b60006020828403121561246257612461612e4b565b5b600061247084828501612389565b91505092915050565b600080604083850312156124905761248f612e4b565b5b600061249e85828601612389565b92505060206124af85828601612389565b9150509250929050565b6000806000606084860312156124d2576124d1612e4b565b5b60006124e086828701612389565b93505060206124f186828701612389565b925050604061250286828701612437565b9150509250925092565b6000806040838503121561252357612522612e4b565b5b600061253185828601612389565b9250506020612542858286016123f4565b9150509250929050565b6000806040838503121561256357612562612e4b565b5b600061257185828601612389565b925050602061258285828601612437565b9150509250929050565b600080602083850312156125a3576125a2612e4b565b5b600083013567ffffffffffffffff8111156125c1576125c0612e46565b5b6125cd8582860161239e565b92509250509250929050565b6000602082840312156125ef576125ee612e4b565b5b600082013567ffffffffffffffff81111561260d5761260c612e46565b5b61261984828501612409565b91505092915050565b61262b81612c8a565b82525050565b61263a81612c9c565b82525050565b600061264b82612be4565b6126558185612bef565b9350612665818560208601612cf8565b61266e81612e50565b840191505092915050565b6000612686601d83612bef565b915061269182612e61565b602082019050919050565b60006126a9602383612bef565b91506126b482612e8a565b604082019050919050565b60006126cc602283612bef565b91506126d782612ed9565b604082019050919050565b60006126ef601c83612bef565b91506126fa82612f28565b602082019050919050565b6000612712602683612bef565b915061271d82612f51565b604082019050919050565b6000612735602783612bef565b915061274082612fa0565b604082019050919050565b6000612758600f83612bef565b915061276382612fef565b602082019050919050565b600061277b602883612bef565b915061278682613018565b604082019050919050565b600061279e601283612bef565b91506127a982613067565b602082019050919050565b60006127c1602583612bef565b91506127cc82613090565b604082019050919050565b60006127e4602483612bef565b91506127ef826130df565b604082019050919050565b6000612807601d83612bef565b91506128128261312e565b602082019050919050565b600061282a601883612bef565b915061283582613157565b602082019050919050565b600061284d601b83612bef565b915061285882613180565b602082019050919050565b6000612870602583612bef565b915061287b826131a9565b604082019050919050565b61288f81612cd2565b82525050565b61289e81612cdc565b82525050565b60006020820190506128b96000830184612622565b92915050565b60006080820190506128d46000830187612622565b6128e16020830186612622565b6128ee6040830185612622565b6128fb6060830184612886565b95945050505050565b60006060820190506129196000830186612622565b6129266020830185612622565b6129336040830184612886565b949350505050565b60006020820190506129506000830184612631565b92915050565b600060208201905081810360008301526129708184612640565b905092915050565b6000602082019050818103600083015261299181612679565b9050919050565b600060208201905081810360008301526129b18161269c565b9050919050565b600060208201905081810360008301526129d1816126bf565b9050919050565b600060208201905081810360008301526129f1816126e2565b9050919050565b60006020820190508181036000830152612a1181612705565b9050919050565b60006020820190508181036000830152612a3181612728565b9050919050565b60006020820190508181036000830152612a518161274b565b9050919050565b60006020820190508181036000830152612a718161276e565b9050919050565b60006020820190508181036000830152612a9181612791565b9050919050565b60006020820190508181036000830152612ab1816127b4565b9050919050565b60006020820190508181036000830152612ad1816127d7565b9050919050565b60006020820190508181036000830152612af1816127fa565b9050919050565b60006020820190508181036000830152612b118161281d565b9050919050565b60006020820190508181036000830152612b3181612840565b9050919050565b60006020820190508181036000830152612b5181612863565b9050919050565b6000602082019050612b6d6000830184612886565b92915050565b6000602082019050612b886000830184612895565b92915050565b6000612b98612ba9565b9050612ba48282612d2b565b919050565b6000604051905090565b600067ffffffffffffffff821115612bce57612bcd612e03565b5b612bd782612e50565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612c0b82612cd2565b9150612c1683612cd2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c4b57612c4a612da5565b5b828201905092915050565b6000612c6182612cd2565b9150612c6c83612cd2565b925082821015612c7f57612c7e612da5565b5b828203905092915050565b6000612c9582612cb2565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612d16578082015181840152602081019050612cfb565b83811115612d25576000848401525b50505050565b612d3482612e50565b810181811067ffffffffffffffff82111715612d5357612d52612e03565b5b80604052505050565b6000612d6782612cd2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d9a57612d99612da5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2054696d65206c6f636b20696e2070726f677265737300000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f20616c60008201527f6c6f77616e636500000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920636c61696d65640000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20496e76616c6964206b65790000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a204d757374206265207265636f766572792061646d696e000000600082015250565b7f45524332303a204d7573742062652063616e6469746174650000000000000000600082015250565b7f45524332303a205475726e4f6666206e6f742070726f706f7365640000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61320181612c8a565b811461320c57600080fd5b50565b61321881612ca8565b811461322357600080fd5b50565b61322f81612cd2565b811461323a57600080fd5b5056fea2646970667358221220a9aecefac499d12e94a2baa1a76b8434a502316da619fb32f2e481a0bc5cfb4164736f6c63430008070033000000000000000000000000f536ab9e042d414c8e54bff40147f34f0926e2440000000000000000000000009accdb69d8757dd9ceb7f69e985cbca879c0ddf60000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db40000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063b38fe95711610097578063d6e242b811610071578063d6e242b81461044f578063dd62ed3e14610459578063efab831c14610489578063f851a440146104a75761018e565b8063b38fe9571461040b578063b5c2287714610415578063ccfa214f146104315761018e565b806370a082311461032557806393310ffe14610355578063936af9111461037157806395d89b411461038d578063a457c2d7146103ab578063a9059cbb146103db5761018e565b8063313ce5671161014b5780635b8a194a116101255780635b8a194a146102c15780635f6529a3146102cb57806361086b00146102e95780636e9960c3146103075761018e565b8063313ce56714610269578063395093511461028757806348c54b9d146102b75761018e565b806306fdde0314610193578063095ea7b3146101b157806318160ddd146101e157806323b872dd146101ff5780632baa3c9e1461022f5780632ecaf6751461024b575b600080fd5b61019b6104c5565b6040516101a89190612956565b60405180910390f35b6101cb60048036038101906101c6919061254c565b610502565b6040516101d8919061293b565b60405180910390f35b6101e9610827565b6040516101f69190612b58565b60405180910390f35b610219600480360381019061021491906124b9565b610831565b604051610226919061293b565b60405180910390f35b6102496004803603810190610244919061244c565b610b7f565b005b610253610cd6565b6040516102609190612b58565b60405180910390f35b610271610cdc565b60405161027e9190612b73565b60405180910390f35b6102a1600480360381019061029c919061254c565b610ce5565b6040516102ae919061293b565b60405180910390f35b6102bf610f84565b005b6102c96110c7565b005b6102d36111c2565b6040516102e091906128a4565b60405180910390f35b6102f16111e8565b6040516102fe9190612b58565b60405180910390f35b61030f6111ee565b60405161031c91906128a4565b60405180910390f35b61033f600480360381019061033a919061244c565b611218565b60405161034c9190612b58565b60405180910390f35b61036f600480360381019061036a919061250c565b611260565b005b61038b6004803603810190610386919061258c565b611386565b005b6103956114c6565b6040516103a29190612956565b60405180910390f35b6103c560048036038101906103c0919061254c565b611503565b6040516103d2919061293b565b60405180910390f35b6103f560048036038101906103f0919061254c565b611834565b604051610402919061293b565b60405180910390f35b6104136119b7565b005b61042f600480360381019061042a91906125d9565b611b46565b005b610439611d2c565b604051610446919061293b565b60405180910390f35b610457611d3f565b005b610473600480360381019061046e9190612479565b611e40565b6040516104809190612b58565b60405180910390f35b610491611ec7565b60405161049e919061293b565b60405180910390f35b6104af611eda565b6040516104bc91906128a4565b60405180910390f35b60606040518060400160405280600381526020017f4141470000000000000000000000000000000000000000000000000000000000815250905090565b60008282600960019054906101000a900460ff161561073757600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be610561611f00565b84846040518463ffffffff1660e01b815260040161058193929190612904565b600060405180830381600087803b15801561059b57600080fd5b505af11580156105af573d6000803e3d6000fd5b50505050600084148061064557506000600160006105cb611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b90612a18565b60405180910390fd5b61069661068f611f00565b8686611f08565b60019250600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663900f66ef6106e0611f00565b84846040518463ffffffff1660e01b815260040161070093929190612904565b600060405180830381600087803b15801561071a57600080fd5b505af115801561072e573d6000803e3d6000fd5b5050505061081f565b60008414806107c9575060006001600061074f611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff90612a18565b60405180910390fd5b61081a610813611f00565b8686611f08565b600192505b505092915050565b6000600254905090565b6000838383600960019054906101000a900460ff1615610a7c57600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c69610891611f00565b8585856040518563ffffffff1660e01b81526004016108b394939291906128bf565b600060405180830381600087803b1580156108cd57600080fd5b505af11580156108e1573d6000803e3d6000fd5b505050506108f08787876120d3565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093b611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050858110156109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b290612a58565b60405180910390fd5b6109d8886109c7611f00565b88846109d39190612c56565b611f08565b6001945050600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a56e8adf610a23611f00565b8585856040518563ffffffff1660e01b8152600401610a4594939291906128bf565b600060405180830381600087803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b50505050610b75565b610a878787876120d3565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ad2611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015610b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4990612a58565b60405180910390fd5b610b6f88610b5e611f00565b8884610b6a9190612c56565b611f08565b60019450505b5050509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc0611f00565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612ad8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60006012905090565b60008282600960019054906101000a900460ff1615610ed757600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610d44611f00565b84846040518463ffffffff1660e01b8152600401610d6493929190612904565b600060405180830381600087803b158015610d7e57600080fd5b505af1158015610d92573d6000803e3d6000fd5b50505050610e36610da1611f00565b868660016000610daf611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e319190612c00565b611f08565b60019250600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d01aa8610e80611f00565b84846040518463ffffffff1660e01b8152600401610ea093929190612904565b600060405180830381600087803b158015610eba57600080fd5b505af1158015610ece573d6000803e3d6000fd5b50505050610f7c565b610f77610ee2611f00565b868660016000610ef0611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f729190612c00565b611f08565b600192505b505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fc5611f00565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101290612ad8565b60405180910390fd5b60001515600960169054906101000a900460ff16151514611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890612a38565b60405180910390fd5b6001600960166101000a81548160ff0219169083151502179055506110c530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006120d3565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611108611f00565b73ffffffffffffffffffffffffffffffffffffffff161461115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612ad8565b60405180910390fd5b6000600960006101000a81548160ff0219169083151502179055506001600960016101000a81548160ff0219169083151502179055507fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7060405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112a1611f00565b73ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90612ad8565b60405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806005819055508173ffffffffffffffffffffffffffffffffffffffff167fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3660405160405180910390a25050565b600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c7611f00565b73ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490612978565b60405180910390fd5b60005b828290508110156114c1576114ae83838381811061144157611440612dd4565b5b9050602002016020810190611456919061244c565b600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114a986868681811061148f5761148e612dd4565b5b90506020020160208101906114a4919061244c565b611218565b6120d3565b80806114b990612d5c565b915050611420565b505050565b60606040518060400160405280600381526020017f4141470000000000000000000000000000000000000000000000000000000000815250905090565b60008282600960019054906101000a900460ff161561173e57600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a9611562611f00565b84846040518463ffffffff1660e01b815260040161158293929190612904565b600060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506000600160006115c2611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481101561167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690612b38565b60405180910390fd5b61169c61168a611f00565b8787846116979190612c56565b611f08565b6001935050600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ded1f4d06116e7611f00565b84846040518463ffffffff1660e01b815260040161170793929190612904565b600060405180830381600087803b15801561172157600080fd5b505af1158015611735573d6000803e3d6000fd5b5050505061182c565b60006001600061174c611f00565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180090612b38565b60405180910390fd5b611826611814611f00565b8787846118219190612c56565b611f08565b60019350505b505092915050565b60008282600960019054906101000a900460ff161561199857600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f611893611f00565b84846040518463ffffffff1660e01b81526004016118b393929190612904565b600060405180830381600087803b1580156118cd57600080fd5b505af11580156118e1573d6000803e3d6000fd5b505050506118f76118f0611f00565b86866120d3565b60019250600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f49062ca611941611f00565b84846040518463ffffffff1660e01b815260040161196193929190612904565b600060405180830381600087803b15801561197b57600080fd5b505af115801561198f573d6000803e3d6000fd5b505050506119af565b6119aa6119a3611f00565b86866120d3565b600192505b505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119f8611f00565b73ffffffffffffffffffffffffffffffffffffffff1614611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4590612ad8565b60405180910390fd5b600960009054906101000a900460ff16611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612b18565b60405180910390fd5b426008541115611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906129d8565b60405180910390fd5b6000600960016101000a81548160ff0219169083151502179055506000600960006101000a81548160ff0219169083151502179055507f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a60405160405180910390a1565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b87611f00565b73ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490612af8565b60405180910390fd5b600554818051906020012014611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f90612a78565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb60405160405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960019054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d80611f00565b73ffffffffffffffffffffffffffffffffffffffff1614611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd90612ad8565b60405180910390fd5b60075442611de49190612c00565b6008819055506001600960006101000a81548160ff0219169083151502179055507f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709600854604051611e369190612b58565b60405180910390a1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f90612ab8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906129b8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120c69190612b58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a90612a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90612998565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612239576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612230906129f8565b60405180910390fd5b81816122459190612c56565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122d59190612c00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123399190612b58565b60405180910390a350505050565b600061235a61235584612bb3565b612b8e565b90508281526020810184848401111561237657612375612e41565b5b612381848285612ce9565b509392505050565b600081359050612398816131f8565b92915050565b60008083601f8401126123b4576123b3612e37565b5b8235905067ffffffffffffffff8111156123d1576123d0612e32565b5b6020830191508360208202830111156123ed576123ec612e3c565b5b9250929050565b6000813590506124038161320f565b92915050565b600082601f83011261241e5761241d612e37565b5b813561242e848260208601612347565b91505092915050565b60008135905061244681613226565b92915050565b60006020828403121561246257612461612e4b565b5b600061247084828501612389565b91505092915050565b600080604083850312156124905761248f612e4b565b5b600061249e85828601612389565b92505060206124af85828601612389565b9150509250929050565b6000806000606084860312156124d2576124d1612e4b565b5b60006124e086828701612389565b93505060206124f186828701612389565b925050604061250286828701612437565b9150509250925092565b6000806040838503121561252357612522612e4b565b5b600061253185828601612389565b9250506020612542858286016123f4565b9150509250929050565b6000806040838503121561256357612562612e4b565b5b600061257185828601612389565b925050602061258285828601612437565b9150509250929050565b600080602083850312156125a3576125a2612e4b565b5b600083013567ffffffffffffffff8111156125c1576125c0612e46565b5b6125cd8582860161239e565b92509250509250929050565b6000602082840312156125ef576125ee612e4b565b5b600082013567ffffffffffffffff81111561260d5761260c612e46565b5b61261984828501612409565b91505092915050565b61262b81612c8a565b82525050565b61263a81612c9c565b82525050565b600061264b82612be4565b6126558185612bef565b9350612665818560208601612cf8565b61266e81612e50565b840191505092915050565b6000612686601d83612bef565b915061269182612e61565b602082019050919050565b60006126a9602383612bef565b91506126b482612e8a565b604082019050919050565b60006126cc602283612bef565b91506126d782612ed9565b604082019050919050565b60006126ef601c83612bef565b91506126fa82612f28565b602082019050919050565b6000612712602683612bef565b915061271d82612f51565b604082019050919050565b6000612735602783612bef565b915061274082612fa0565b604082019050919050565b6000612758600f83612bef565b915061276382612fef565b602082019050919050565b600061277b602883612bef565b915061278682613018565b604082019050919050565b600061279e601283612bef565b91506127a982613067565b602082019050919050565b60006127c1602583612bef565b91506127cc82613090565b604082019050919050565b60006127e4602483612bef565b91506127ef826130df565b604082019050919050565b6000612807601d83612bef565b91506128128261312e565b602082019050919050565b600061282a601883612bef565b915061283582613157565b602082019050919050565b600061284d601b83612bef565b915061285882613180565b602082019050919050565b6000612870602583612bef565b915061287b826131a9565b604082019050919050565b61288f81612cd2565b82525050565b61289e81612cdc565b82525050565b60006020820190506128b96000830184612622565b92915050565b60006080820190506128d46000830187612622565b6128e16020830186612622565b6128ee6040830185612622565b6128fb6060830184612886565b95945050505050565b60006060820190506129196000830186612622565b6129266020830185612622565b6129336040830184612886565b949350505050565b60006020820190506129506000830184612631565b92915050565b600060208201905081810360008301526129708184612640565b905092915050565b6000602082019050818103600083015261299181612679565b9050919050565b600060208201905081810360008301526129b18161269c565b9050919050565b600060208201905081810360008301526129d1816126bf565b9050919050565b600060208201905081810360008301526129f1816126e2565b9050919050565b60006020820190508181036000830152612a1181612705565b9050919050565b60006020820190508181036000830152612a3181612728565b9050919050565b60006020820190508181036000830152612a518161274b565b9050919050565b60006020820190508181036000830152612a718161276e565b9050919050565b60006020820190508181036000830152612a9181612791565b9050919050565b60006020820190508181036000830152612ab1816127b4565b9050919050565b60006020820190508181036000830152612ad1816127d7565b9050919050565b60006020820190508181036000830152612af1816127fa565b9050919050565b60006020820190508181036000830152612b118161281d565b9050919050565b60006020820190508181036000830152612b3181612840565b9050919050565b60006020820190508181036000830152612b5181612863565b9050919050565b6000602082019050612b6d6000830184612886565b92915050565b6000602082019050612b886000830184612895565b92915050565b6000612b98612ba9565b9050612ba48282612d2b565b919050565b6000604051905090565b600067ffffffffffffffff821115612bce57612bcd612e03565b5b612bd782612e50565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612c0b82612cd2565b9150612c1683612cd2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c4b57612c4a612da5565b5b828201905092915050565b6000612c6182612cd2565b9150612c6c83612cd2565b925082821015612c7f57612c7e612da5565b5b828203905092915050565b6000612c9582612cb2565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612d16578082015181840152602081019050612cfb565b83811115612d25576000848401525b50505050565b612d3482612e50565b810181811067ffffffffffffffff82111715612d5357612d52612e03565b5b80604052505050565b6000612d6782612cd2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d9a57612d99612da5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2054696d65206c6f636b20696e2070726f677265737300000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f20616c60008201527f6c6f77616e636500000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920636c61696d65640000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20496e76616c6964206b65790000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a204d757374206265207265636f766572792061646d696e000000600082015250565b7f45524332303a204d7573742062652063616e6469746174650000000000000000600082015250565b7f45524332303a205475726e4f6666206e6f742070726f706f7365640000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61320181612c8a565b811461320c57600080fd5b50565b61321881612ca8565b811461322357600080fd5b50565b61322f81612cd2565b811461323a57600080fd5b5056fea2646970667358221220a9aecefac499d12e94a2baa1a76b8434a502316da619fb32f2e481a0bc5cfb4164736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000f536ab9e042d414c8e54bff40147f34f0926e2440000000000000000000000009accdb69d8757dd9ceb7f69e985cbca879c0ddf60000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db40000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : admin_ (address): 0xf536AB9e042d414C8E54Bff40147f34f0926E244
Arg [1] : recoveryAdmin_ (address): 0x9acCDB69D8757Dd9ceb7f69E985Cbca879c0dDF6
Arg [2] : timelockPeriod_ (uint256): 86400
Arg [3] : lossless_ (address): 0xe91D7cEBcE484070fc70777cB04F7e2EfAe31DB4
Arg [4] : losslessOn (bool): True

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000f536ab9e042d414c8e54bff40147f34f0926e244
Arg [1] : 0000000000000000000000009accdb69d8757dd9ceb7f69e985cbca879c0ddf6
Arg [2] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [3] : 000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000001


Deployed Bytecode Sourcemap

4647:8704:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9897:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10753:303;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10165:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11062:463;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8395:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5074:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10081:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11531:247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6170:201;;;:::i;:::-;;9701:160;;;:::i;:::-;;4932:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5108:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8025:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10273:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8540:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8108:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9987:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11784:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10400:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9369:326;;;:::i;:::-;;8781:345;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5194:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9132:231;;;:::i;:::-;;10602:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5152:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5049:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9897:84;9942:13;9971:4;;;;;;;;;;;;;;;;;9964:11;;9897:84;:::o;10753:303::-;10863:4;10837:7;10846:6;6475:12;;;;;;;;;;;6471:183;;;6498:8;;;;;;;;;;;:22;;;6521:12;:10;:12::i;:::-;6535:7;6544:6;6498:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10895:1:::1;10885:6;:11;10884:58;;;;10940:1;10902:11;:25;10914:12;:10;:12::i;:::-;10902:25;;;;;;;;;;;;;;;:34;10928:7;10902:34;;;;;;;;;;;;;;;;:39;10884:58;10876:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10993:39;11002:12;:10;:12::i;:::-;11016:7;11025:6;10993:8;:39::i;:::-;11046:4;11039:11;;6570:8:::0;;;;;;;;;;;:21;;;6592:12;:10;:12::i;:::-;6606:7;6615:6;6570:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6471:183;;;10895:1:::1;10885:6;:11;10884:58;;;;10940:1;10902:11;:25;10914:12;:10;:12::i;:::-;10902:25;;;;;;;;;;;;;;;:34;10928:7;10902:34;;;;;;;;;;;;;;;;:39;10884:58;10876:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10993:39;11002:12;:10;:12::i;:::-;11016:7;11025:6;10993:8;:39::i;:::-;11046:4;11039:11;;6471:183:::0;10753:303;;;;;;:::o;10165:102::-;10226:7;10249:12;;10242:19;;10165:102;:::o;11062:463::-;11231:4;11195:6;11203:9;11214:6;7035:12;;;;;;;;;;;7031:213;;;7058:8;;;;;;;;;;;:27;;;7086:12;:10;:12::i;:::-;7100:6;7108:9;7119:6;7058:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11244:36:::1;11254:6;11262:9;11273:6;11244:9;:36::i;:::-;11289:24;11316:11;:19;11328:6;11316:19;;;;;;;;;;;;;;;:33;11336:12;:10;:12::i;:::-;11316:33;;;;;;;;;;;;;;;;11289:60;;11384:6;11364:16;:26;;11356:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11442:57;11451:6;11459:12;:10;:12::i;:::-;11492:6;11473:16;:25;;;;:::i;:::-;11442:8;:57::i;:::-;11515:4;11508:11;;;7145:8:::0;;;;;;;;;;;:26;;;7172:12;:10;:12::i;:::-;7186:6;7194:9;7205:6;7145:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7031:213;;;11244:36:::1;11254:6;11262:9;11273:6;11244:9;:36::i;:::-;11289:24;11316:11;:19;11328:6;11316:19;;;;;;;;;;;;;;;:33;11336:12;:10;:12::i;:::-;11316:33;;;;;;;;;;;;;;;;11289:60;;11384:6;11364:16;:26;;11356:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11442:57;11451:6;11459:12;:10;:12::i;:::-;11492:6;11473:16;:25;;;;:::i;:::-;11442:8;:57::i;:::-;11515:4;11508:11;;;7031:213:::0;11062:463;;;;;;;;:::o;8395:139::-;7922:13;;;;;;;;;;;7906:29;;:12;:10;:12::i;:::-;:29;;;7898:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8496:8:::1;8476:29;;8489:5;;;;;;;;;;;8476:29;;;;;;;;;;;;8520:8;8512:5;;:16;;;;;;;;;;;;;;;;;;8395:139:::0;:::o;5074:29::-;;;;:::o;10081:78::-;10130:5;10151:2;10144:9;;10081:78;:::o;11531:247::-;11661:4;11631:7;11640:10;7333:12;;;;;;;;;;;7329:211;;;7356:8;;;;;;;;;;;:32;;;7389:12;:10;:12::i;:::-;7403:7;7412:10;7356:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11674:80:::1;11683:12;:10;:12::i;:::-;11697:7;11743:10;11706:11;:25;11718:12;:10;:12::i;:::-;11706:25;;;;;;;;;;;;;;;:34;11732:7;11706:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11674:8;:80::i;:::-;11768:4;11761:11;;7442:8:::0;;;;;;;;;;;:31;;;7474:12;:10;:12::i;:::-;7488:7;7497:10;7442:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7329:211;;;11674:80:::1;11683:12;:10;:12::i;:::-;11697:7;11743:10;11706:11;:25;11718:12;:10;:12::i;:::-;11706:25;;;;;;;;;;;;;;;:34;11732:7;11706:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11674:8;:80::i;:::-;11768:4;11761:11;;7329:211:::0;11531:247;;;;;;:::o;6170:201::-;7922:13;;;;;;;;;;;7906:29;;:12;:10;:12::i;:::-;:29;;;7898:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6255:5:::1;6233:27;;:18;;;;;;;;;;;:27;;;6225:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;6308:4;6287:18;;:25;;;;;;;;;;;;;;;;;;6319:46;6337:4;6344:5;;;;;;;;;;;5663:13;6319:9;:46::i;:::-;6170:201::o:0;9701:160::-;7922:13;;;;;;;;;;;7906:29;;:12;:10;:12::i;:::-;:29;;;7898:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9794:5:::1;9766:25;;:33;;;;;;;;;;;;;;;;;;9821:4;9806:12;;:19;;;;;;;;;;;;;;;;;;9837:18;;;;;;;;;;9701:160::o:0;4932:28::-;;;;;;;;;;;;;:::o;5108:39::-;;;;:::o;8025:77::-;8068:7;8091:5;;;;;;;;;;;8084:12;;8025:77;:::o;10273:121::-;10347:7;10370:9;:18;10380:7;10370:18;;;;;;;;;;;;;;;;10363:25;;10273:121;;;:::o;8540:235::-;7922:13;;;;;;;;;;;7906:29;;:12;:10;:12::i;:::-;:29;;;7898:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8673:9:::1;8648:22;;:34;;;;;;;;;;;;;;;;;;8712:7;8689:20;:30;;;;8759:9;8731:38;;;;;;;;;;;;8540:235:::0;;:::o;8108:281::-;8218:8;;;;;;;;;;;8194:33;;:12;:10;:12::i;:::-;:33;;;8186:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8273:9;8268:116;8292:4;;:11;;8288:1;:15;8268:116;;;8319:57;8329:4;;8334:1;8329:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8346:8;;;;;;;;;;;8357:18;8367:4;;8372:1;8367:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8357:9;:18::i;:::-;8319:9;:57::i;:::-;8305:3;;;;;:::i;:::-;;;;8268:116;;;;8108:281;;:::o;9987:88::-;10034:13;10063:6;;;;;;;;;;;;;;;;;10056:13;;9987:88;:::o;11784:406::-;11924:4;11889:7;11898:15;7634:12;;;;;;;;;;;7630:221;;;7657:8;;;;;;;;;;;:32;;;7690:12;:10;:12::i;:::-;7704:7;7713:15;7657:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11937:24:::1;11964:11;:25;11976:12;:10;:12::i;:::-;11964:25;;;;;;;;;;;;;;;:34;11990:7;11964:34;;;;;;;;;;;;;;;;11937:61;;12033:15;12013:16;:35;;12005:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12097:67;12106:12;:10;:12::i;:::-;12120:7;12148:15;12129:16;:34;;;;:::i;:::-;12097:8;:67::i;:::-;12180:4;12173:11;;;7748:8:::0;;;;;;;;;;;:31;;;7780:12;:10;:12::i;:::-;7794:7;7803:15;7748:71;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7630:221;;;11937:24:::1;11964:11;:25;11976:12;:10;:12::i;:::-;11964:25;;;;;;;;;;;;;;;:34;11990:7;11964:34;;;;;;;;;;;;;;;;11937:61;;12033:15;12013:16;:35;;12005:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12097:67;12106:12;:10;:12::i;:::-;12120:7;12148:15;12129:16;:34;;;;:::i;:::-;12097:8;:67::i;:::-;12180:4;12173:11;;;7630:221:::0;11784:406;;;;;;:::o;10400:196::-;10517:4;10489:9;10500:6;6732:12;;;;;;;;;;;6728:189;;;6755:8;;;;;;;;;;;:23;;;6779:12;:10;:12::i;:::-;6793:9;6804:6;6755:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10530:42:::1;10540:12;:10;:12::i;:::-;10554:9;10565:6;10530:9;:42::i;:::-;10586:4;10579:11;;6830:8:::0;;;;;;;;;;;:22;;;6853:12;:10;:12::i;:::-;6867:9;6878:6;6830:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6728:189;;;10530:42:::1;10540:12;:10;:12::i;:::-;10554:9;10565:6;10530:9;:42::i;:::-;10586:4;10579:11;;6728:189:::0;10400:196;;;;;;:::o;9369:326::-;7922:13;;;;;;;;;;;7906:29;;:12;:10;:12::i;:::-;:29;;;7898:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9443:25:::1;;;;;;;;;;;9435:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9543:15;9515:24;;:43;;9507:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;9613:5;9598:12;;:20;;;;;;;;;;;;;;;;;;9653:5;9625:25;;:33;;;;;;;;;;;;;;;;;;9670:19;;;;;;;;;;9369:326::o:0;8781:345::-;8877:22;;;;;;;;;;;8861:38;;:12;:10;:12::i;:::-;:38;;;8853:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8961:20;;8953:3;8943:14;;;;;;:38;8935:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9052:22;;;;;;;;;;;9016:59;;9037:13;;;;;;;;;;;9016:59;;;;;;;;;;;;9098:22;;;;;;;;;;;9082:13;;:38;;;;;;;;;;;;;;;;;;8781:345;:::o;5194:31::-;;;;;;;;;;;;;:::o;9132:231::-;7922:13;;;;;;;;;;;7906:29;;:12;:10;:12::i;:::-;:29;;;7898:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9243:14:::1;;9225:15;:32;;;;:::i;:::-;9198:24;:59;;;;9292:4;9264:25;;:32;;;;;;;;;;;;;;;;;;9308:49;9332:24;;9308:49;;;;;;:::i;:::-;;;;;;;;9132:231::o:0;10602:145::-;10691:7;10714:11;:18;10726:5;10714:18;;;;;;;;;;;;;;;:27;10733:7;10714:27;;;;;;;;;;;;;;;;10707:34;;10602:145;;;;:::o;5152:37::-;;;;;;;;;;;;;:::o;5049:20::-;;;;;;;;;;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;13000:348::-;13135:1;13118:19;;:5;:19;;;;13110:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13212:1;13193:21;;:7;:21;;;;13185:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13292:6;13262:11;:18;13274:5;13262:18;;;;;;;;;;;;;;;:27;13281:7;13262:27;;;;;;;;;;;;;;;:36;;;;13326:7;13310:32;;13319:5;13310:32;;;13335:6;13310:32;;;;;;:::i;:::-;;;;;;;;13000:348;;;:::o;12196:534::-;12336:1;12318:20;;:6;:20;;;;12310:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12416:1;12395:23;;:9;:23;;;;12387:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12467:21;12491:9;:17;12501:6;12491:17;;;;;;;;;;;;;;;;12467:41;;12540:6;12523:13;:23;;12515:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12632:6;12616:13;:22;;;;:::i;:::-;12596:9;:17;12606:6;12596:17;;;;;;;;;;;;;;;:42;;;;12669:6;12645:9;:20;12655:9;12645:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12706:9;12689:35;;12698:6;12689:35;;;12717:6;12689:35;;;;;;:::i;:::-;;;;;;;;12303:427;12196:534;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:139::-;469:5;507:6;494:20;485:29;;523:33;550:5;523:33;:::i;:::-;423:139;;;;:::o;585:568::-;658:8;668:6;718:3;711:4;703:6;699:17;695:27;685:122;;726:79;;:::i;:::-;685:122;839:6;826:20;816:30;;869:18;861:6;858:30;855:117;;;891:79;;:::i;:::-;855:117;1005:4;997:6;993:17;981:29;;1059:3;1051:4;1043:6;1039:17;1029:8;1025:32;1022:41;1019:128;;;1066:79;;:::i;:::-;1019:128;585:568;;;;;:::o;1159:139::-;1205:5;1243:6;1230:20;1221:29;;1259:33;1286:5;1259:33;:::i;:::-;1159:139;;;;:::o;1317:338::-;1372:5;1421:3;1414:4;1406:6;1402:17;1398:27;1388:122;;1429:79;;:::i;:::-;1388:122;1546:6;1533:20;1571:78;1645:3;1637:6;1630:4;1622:6;1618:17;1571:78;:::i;:::-;1562:87;;1378:277;1317:338;;;;:::o;1661:139::-;1707:5;1745:6;1732:20;1723:29;;1761:33;1788:5;1761:33;:::i;:::-;1661:139;;;;:::o;1806:329::-;1865:6;1914:2;1902:9;1893:7;1889:23;1885:32;1882:119;;;1920:79;;:::i;:::-;1882:119;2040:1;2065:53;2110:7;2101:6;2090:9;2086:22;2065:53;:::i;:::-;2055:63;;2011:117;1806:329;;;;:::o;2141:474::-;2209:6;2217;2266:2;2254:9;2245:7;2241:23;2237:32;2234:119;;;2272:79;;:::i;:::-;2234:119;2392:1;2417:53;2462:7;2453:6;2442:9;2438:22;2417:53;:::i;:::-;2407:63;;2363:117;2519:2;2545:53;2590:7;2581:6;2570:9;2566:22;2545:53;:::i;:::-;2535:63;;2490:118;2141:474;;;;;:::o;2621:619::-;2698:6;2706;2714;2763:2;2751:9;2742:7;2738:23;2734:32;2731:119;;;2769:79;;:::i;:::-;2731:119;2889:1;2914:53;2959:7;2950:6;2939:9;2935:22;2914:53;:::i;:::-;2904:63;;2860:117;3016:2;3042:53;3087:7;3078:6;3067:9;3063:22;3042:53;:::i;:::-;3032:63;;2987:118;3144:2;3170:53;3215:7;3206:6;3195:9;3191:22;3170:53;:::i;:::-;3160:63;;3115:118;2621:619;;;;;:::o;3246:474::-;3314:6;3322;3371:2;3359:9;3350:7;3346:23;3342:32;3339:119;;;3377:79;;:::i;:::-;3339:119;3497:1;3522:53;3567:7;3558:6;3547:9;3543:22;3522:53;:::i;:::-;3512:63;;3468:117;3624:2;3650:53;3695:7;3686:6;3675:9;3671:22;3650:53;:::i;:::-;3640:63;;3595:118;3246:474;;;;;:::o;3726:::-;3794:6;3802;3851:2;3839:9;3830:7;3826:23;3822:32;3819:119;;;3857:79;;:::i;:::-;3819:119;3977:1;4002:53;4047:7;4038:6;4027:9;4023:22;4002:53;:::i;:::-;3992:63;;3948:117;4104:2;4130:53;4175:7;4166:6;4155:9;4151:22;4130:53;:::i;:::-;4120:63;;4075:118;3726:474;;;;;:::o;4206:559::-;4292:6;4300;4349:2;4337:9;4328:7;4324:23;4320:32;4317:119;;;4355:79;;:::i;:::-;4317:119;4503:1;4492:9;4488:17;4475:31;4533:18;4525:6;4522:30;4519:117;;;4555:79;;:::i;:::-;4519:117;4668:80;4740:7;4731:6;4720:9;4716:22;4668:80;:::i;:::-;4650:98;;;;4446:312;4206:559;;;;;:::o;4771:507::-;4839:6;4888:2;4876:9;4867:7;4863:23;4859:32;4856:119;;;4894:79;;:::i;:::-;4856:119;5042:1;5031:9;5027:17;5014:31;5072:18;5064:6;5061:30;5058:117;;;5094:79;;:::i;:::-;5058:117;5199:62;5253:7;5244:6;5233:9;5229:22;5199:62;:::i;:::-;5189:72;;4985:286;4771:507;;;;:::o;5284:118::-;5371:24;5389:5;5371:24;:::i;:::-;5366:3;5359:37;5284:118;;:::o;5408:109::-;5489:21;5504:5;5489:21;:::i;:::-;5484:3;5477:34;5408:109;;:::o;5523:364::-;5611:3;5639:39;5672:5;5639:39;:::i;:::-;5694:71;5758:6;5753:3;5694:71;:::i;:::-;5687:78;;5774:52;5819:6;5814:3;5807:4;5800:5;5796:16;5774:52;:::i;:::-;5851:29;5873:6;5851:29;:::i;:::-;5846:3;5842:39;5835:46;;5615:272;5523:364;;;;:::o;5893:366::-;6035:3;6056:67;6120:2;6115:3;6056:67;:::i;:::-;6049:74;;6132:93;6221:3;6132:93;:::i;:::-;6250:2;6245:3;6241:12;6234:19;;5893:366;;;:::o;6265:::-;6407:3;6428:67;6492:2;6487:3;6428:67;:::i;:::-;6421:74;;6504:93;6593:3;6504:93;:::i;:::-;6622:2;6617:3;6613:12;6606:19;;6265:366;;;:::o;6637:::-;6779:3;6800:67;6864:2;6859:3;6800:67;:::i;:::-;6793:74;;6876:93;6965:3;6876:93;:::i;:::-;6994:2;6989:3;6985:12;6978:19;;6637:366;;;:::o;7009:::-;7151:3;7172:67;7236:2;7231:3;7172:67;:::i;:::-;7165:74;;7248:93;7337:3;7248:93;:::i;:::-;7366:2;7361:3;7357:12;7350:19;;7009:366;;;:::o;7381:::-;7523:3;7544:67;7608:2;7603:3;7544:67;:::i;:::-;7537:74;;7620:93;7709:3;7620:93;:::i;:::-;7738:2;7733:3;7729:12;7722:19;;7381:366;;;:::o;7753:::-;7895:3;7916:67;7980:2;7975:3;7916:67;:::i;:::-;7909:74;;7992:93;8081:3;7992:93;:::i;:::-;8110:2;8105:3;8101:12;8094:19;;7753:366;;;:::o;8125:::-;8267:3;8288:67;8352:2;8347:3;8288:67;:::i;:::-;8281:74;;8364:93;8453:3;8364:93;:::i;:::-;8482:2;8477:3;8473:12;8466:19;;8125:366;;;:::o;8497:::-;8639:3;8660:67;8724:2;8719:3;8660:67;:::i;:::-;8653:74;;8736:93;8825:3;8736:93;:::i;:::-;8854:2;8849:3;8845:12;8838:19;;8497:366;;;:::o;8869:::-;9011:3;9032:67;9096:2;9091:3;9032:67;:::i;:::-;9025:74;;9108:93;9197:3;9108:93;:::i;:::-;9226:2;9221:3;9217:12;9210:19;;8869:366;;;:::o;9241:::-;9383:3;9404:67;9468:2;9463:3;9404:67;:::i;:::-;9397:74;;9480:93;9569:3;9480:93;:::i;:::-;9598:2;9593:3;9589:12;9582:19;;9241:366;;;:::o;9613:::-;9755:3;9776:67;9840:2;9835:3;9776:67;:::i;:::-;9769:74;;9852:93;9941:3;9852:93;:::i;:::-;9970:2;9965:3;9961:12;9954:19;;9613:366;;;:::o;9985:::-;10127:3;10148:67;10212:2;10207:3;10148:67;:::i;:::-;10141:74;;10224:93;10313:3;10224:93;:::i;:::-;10342:2;10337:3;10333:12;10326:19;;9985:366;;;:::o;10357:::-;10499:3;10520:67;10584:2;10579:3;10520:67;:::i;:::-;10513:74;;10596:93;10685:3;10596:93;:::i;:::-;10714:2;10709:3;10705:12;10698:19;;10357:366;;;:::o;10729:::-;10871:3;10892:67;10956:2;10951:3;10892:67;:::i;:::-;10885:74;;10968:93;11057:3;10968:93;:::i;:::-;11086:2;11081:3;11077:12;11070:19;;10729:366;;;:::o;11101:::-;11243:3;11264:67;11328:2;11323:3;11264:67;:::i;:::-;11257:74;;11340:93;11429:3;11340:93;:::i;:::-;11458:2;11453:3;11449:12;11442:19;;11101:366;;;:::o;11473:118::-;11560:24;11578:5;11560:24;:::i;:::-;11555:3;11548:37;11473:118;;:::o;11597:112::-;11680:22;11696:5;11680:22;:::i;:::-;11675:3;11668:35;11597:112;;:::o;11715:222::-;11808:4;11846:2;11835:9;11831:18;11823:26;;11859:71;11927:1;11916:9;11912:17;11903:6;11859:71;:::i;:::-;11715:222;;;;:::o;11943:553::-;12120:4;12158:3;12147:9;12143:19;12135:27;;12172:71;12240:1;12229:9;12225:17;12216:6;12172:71;:::i;:::-;12253:72;12321:2;12310:9;12306:18;12297:6;12253:72;:::i;:::-;12335;12403:2;12392:9;12388:18;12379:6;12335:72;:::i;:::-;12417;12485:2;12474:9;12470:18;12461:6;12417:72;:::i;:::-;11943:553;;;;;;;:::o;12502:442::-;12651:4;12689:2;12678:9;12674:18;12666:26;;12702:71;12770:1;12759:9;12755:17;12746:6;12702:71;:::i;:::-;12783:72;12851:2;12840:9;12836:18;12827:6;12783:72;:::i;:::-;12865;12933:2;12922:9;12918:18;12909:6;12865:72;:::i;:::-;12502:442;;;;;;:::o;12950:210::-;13037:4;13075:2;13064:9;13060:18;13052:26;;13088:65;13150:1;13139:9;13135:17;13126:6;13088:65;:::i;:::-;12950:210;;;;:::o;13166:313::-;13279:4;13317:2;13306:9;13302:18;13294:26;;13366:9;13360:4;13356:20;13352:1;13341:9;13337:17;13330:47;13394:78;13467:4;13458:6;13394:78;:::i;:::-;13386:86;;13166:313;;;;:::o;13485:419::-;13651:4;13689:2;13678:9;13674:18;13666:26;;13738:9;13732:4;13728:20;13724:1;13713:9;13709:17;13702:47;13766:131;13892:4;13766:131;:::i;:::-;13758:139;;13485:419;;;:::o;13910:::-;14076:4;14114:2;14103:9;14099:18;14091:26;;14163:9;14157:4;14153:20;14149:1;14138:9;14134:17;14127:47;14191:131;14317:4;14191:131;:::i;:::-;14183:139;;13910:419;;;:::o;14335:::-;14501:4;14539:2;14528:9;14524:18;14516:26;;14588:9;14582:4;14578:20;14574:1;14563:9;14559:17;14552:47;14616:131;14742:4;14616:131;:::i;:::-;14608:139;;14335:419;;;:::o;14760:::-;14926:4;14964:2;14953:9;14949:18;14941:26;;15013:9;15007:4;15003:20;14999:1;14988:9;14984:17;14977:47;15041:131;15167:4;15041:131;:::i;:::-;15033:139;;14760:419;;;:::o;15185:::-;15351:4;15389:2;15378:9;15374:18;15366:26;;15438:9;15432:4;15428:20;15424:1;15413:9;15409:17;15402:47;15466:131;15592:4;15466:131;:::i;:::-;15458:139;;15185:419;;;:::o;15610:::-;15776:4;15814:2;15803:9;15799:18;15791:26;;15863:9;15857:4;15853:20;15849:1;15838:9;15834:17;15827:47;15891:131;16017:4;15891:131;:::i;:::-;15883:139;;15610:419;;;:::o;16035:::-;16201:4;16239:2;16228:9;16224:18;16216:26;;16288:9;16282:4;16278:20;16274:1;16263:9;16259:17;16252:47;16316:131;16442:4;16316:131;:::i;:::-;16308:139;;16035:419;;;:::o;16460:::-;16626:4;16664:2;16653:9;16649:18;16641:26;;16713:9;16707:4;16703:20;16699:1;16688:9;16684:17;16677:47;16741:131;16867:4;16741:131;:::i;:::-;16733:139;;16460:419;;;:::o;16885:::-;17051:4;17089:2;17078:9;17074:18;17066:26;;17138:9;17132:4;17128:20;17124:1;17113:9;17109:17;17102:47;17166:131;17292:4;17166:131;:::i;:::-;17158:139;;16885:419;;;:::o;17310:::-;17476:4;17514:2;17503:9;17499:18;17491:26;;17563:9;17557:4;17553:20;17549:1;17538:9;17534:17;17527:47;17591:131;17717:4;17591:131;:::i;:::-;17583:139;;17310:419;;;:::o;17735:::-;17901:4;17939:2;17928:9;17924:18;17916:26;;17988:9;17982:4;17978:20;17974:1;17963:9;17959:17;17952:47;18016:131;18142:4;18016:131;:::i;:::-;18008:139;;17735:419;;;:::o;18160:::-;18326:4;18364:2;18353:9;18349:18;18341:26;;18413:9;18407:4;18403:20;18399:1;18388:9;18384:17;18377:47;18441:131;18567:4;18441:131;:::i;:::-;18433:139;;18160:419;;;:::o;18585:::-;18751:4;18789:2;18778:9;18774:18;18766:26;;18838:9;18832:4;18828:20;18824:1;18813:9;18809:17;18802:47;18866:131;18992:4;18866:131;:::i;:::-;18858:139;;18585:419;;;:::o;19010:::-;19176:4;19214:2;19203:9;19199:18;19191:26;;19263:9;19257:4;19253:20;19249:1;19238:9;19234:17;19227:47;19291:131;19417:4;19291:131;:::i;:::-;19283:139;;19010:419;;;:::o;19435:::-;19601:4;19639:2;19628:9;19624:18;19616:26;;19688:9;19682:4;19678:20;19674:1;19663:9;19659:17;19652:47;19716:131;19842:4;19716:131;:::i;:::-;19708:139;;19435:419;;;:::o;19860:222::-;19953:4;19991:2;19980:9;19976:18;19968:26;;20004:71;20072:1;20061:9;20057:17;20048:6;20004:71;:::i;:::-;19860:222;;;;:::o;20088:214::-;20177:4;20215:2;20204:9;20200:18;20192:26;;20228:67;20292:1;20281:9;20277:17;20268:6;20228:67;:::i;:::-;20088:214;;;;:::o;20308:129::-;20342:6;20369:20;;:::i;:::-;20359:30;;20398:33;20426:4;20418:6;20398:33;:::i;:::-;20308:129;;;:::o;20443:75::-;20476:6;20509:2;20503:9;20493:19;;20443:75;:::o;20524:307::-;20585:4;20675:18;20667:6;20664:30;20661:56;;;20697:18;;:::i;:::-;20661:56;20735:29;20757:6;20735:29;:::i;:::-;20727:37;;20819:4;20813;20809:15;20801:23;;20524:307;;;:::o;20837:99::-;20889:6;20923:5;20917:12;20907:22;;20837:99;;;:::o;20942:169::-;21026:11;21060:6;21055:3;21048:19;21100:4;21095:3;21091:14;21076:29;;20942:169;;;;:::o;21117:305::-;21157:3;21176:20;21194:1;21176:20;:::i;:::-;21171:25;;21210:20;21228:1;21210:20;:::i;:::-;21205:25;;21364:1;21296:66;21292:74;21289:1;21286:81;21283:107;;;21370:18;;:::i;:::-;21283:107;21414:1;21411;21407:9;21400:16;;21117:305;;;;:::o;21428:191::-;21468:4;21488:20;21506:1;21488:20;:::i;:::-;21483:25;;21522:20;21540:1;21522:20;:::i;:::-;21517:25;;21561:1;21558;21555:8;21552:34;;;21566:18;;:::i;:::-;21552:34;21611:1;21608;21604:9;21596:17;;21428:191;;;;:::o;21625:96::-;21662:7;21691:24;21709:5;21691:24;:::i;:::-;21680:35;;21625:96;;;:::o;21727:90::-;21761:7;21804:5;21797:13;21790:21;21779:32;;21727:90;;;:::o;21823:77::-;21860:7;21889:5;21878:16;;21823:77;;;:::o;21906:126::-;21943:7;21983:42;21976:5;21972:54;21961:65;;21906:126;;;:::o;22038:77::-;22075:7;22104:5;22093:16;;22038:77;;;:::o;22121:86::-;22156:7;22196:4;22189:5;22185:16;22174:27;;22121:86;;;:::o;22213:154::-;22297:6;22292:3;22287;22274:30;22359:1;22350:6;22345:3;22341:16;22334:27;22213:154;;;:::o;22373:307::-;22441:1;22451:113;22465:6;22462:1;22459:13;22451:113;;;22550:1;22545:3;22541:11;22535:18;22531:1;22526:3;22522:11;22515:39;22487:2;22484:1;22480:10;22475:15;;22451:113;;;22582:6;22579:1;22576:13;22573:101;;;22662:1;22653:6;22648:3;22644:16;22637:27;22573:101;22422:258;22373:307;;;:::o;22686:281::-;22769:27;22791:4;22769:27;:::i;:::-;22761:6;22757:40;22899:6;22887:10;22884:22;22863:18;22851:10;22848:34;22845:62;22842:88;;;22910:18;;:::i;:::-;22842:88;22950:10;22946:2;22939:22;22729:238;22686:281;;:::o;22973:233::-;23012:3;23035:24;23053:5;23035:24;:::i;:::-;23026:33;;23081:66;23074:5;23071:77;23068:103;;;23151:18;;:::i;:::-;23068:103;23198:1;23191:5;23187:13;23180:20;;22973:233;;;:::o;23212:180::-;23260:77;23257:1;23250:88;23357:4;23354:1;23347:15;23381:4;23378:1;23371:15;23398:180;23446:77;23443:1;23436:88;23543:4;23540:1;23533:15;23567:4;23564:1;23557:15;23584:180;23632:77;23629:1;23622:88;23729:4;23726:1;23719:15;23753:4;23750:1;23743:15;23770:117;23879:1;23876;23869:12;23893:117;24002:1;23999;23992:12;24016:117;24125:1;24122;24115:12;24139:117;24248:1;24245;24238:12;24262:117;24371:1;24368;24361:12;24385:117;24494:1;24491;24484:12;24508:102;24549:6;24600:2;24596:7;24591:2;24584:5;24580:14;24576:28;24566:38;;24508:102;;;:::o;24616:179::-;24756:31;24752:1;24744:6;24740:14;24733:55;24616:179;:::o;24801:222::-;24941:34;24937:1;24929:6;24925:14;24918:58;25010:5;25005:2;24997:6;24993:15;24986:30;24801:222;:::o;25029:221::-;25169:34;25165:1;25157:6;25153:14;25146:58;25238:4;25233:2;25225:6;25221:15;25214:29;25029:221;:::o;25256:178::-;25396:30;25392:1;25384:6;25380:14;25373:54;25256:178;:::o;25440:225::-;25580:34;25576:1;25568:6;25564:14;25557:58;25649:8;25644:2;25636:6;25632:15;25625:33;25440:225;:::o;25671:226::-;25811:34;25807:1;25799:6;25795:14;25788:58;25880:9;25875:2;25867:6;25863:15;25856:34;25671:226;:::o;25903:165::-;26043:17;26039:1;26031:6;26027:14;26020:41;25903:165;:::o;26074:227::-;26214:34;26210:1;26202:6;26198:14;26191:58;26283:10;26278:2;26270:6;26266:15;26259:35;26074:227;:::o;26307:168::-;26447:20;26443:1;26435:6;26431:14;26424:44;26307:168;:::o;26481:224::-;26621:34;26617:1;26609:6;26605:14;26598:58;26690:7;26685:2;26677:6;26673:15;26666:32;26481:224;:::o;26711:223::-;26851:34;26847:1;26839:6;26835:14;26828:58;26920:6;26915:2;26907:6;26903:15;26896:31;26711:223;:::o;26940:179::-;27080:31;27076:1;27068:6;27064:14;27057:55;26940:179;:::o;27125:174::-;27265:26;27261:1;27253:6;27249:14;27242:50;27125:174;:::o;27305:177::-;27445:29;27441:1;27433:6;27429:14;27422:53;27305:177;:::o;27488:224::-;27628:34;27624:1;27616:6;27612:14;27605:58;27697:7;27692:2;27684:6;27680:15;27673:32;27488:224;:::o;27718:122::-;27791:24;27809:5;27791:24;:::i;:::-;27784:5;27781:35;27771:63;;27830:1;27827;27820:12;27771:63;27718:122;:::o;27846:::-;27919:24;27937:5;27919:24;:::i;:::-;27912:5;27909:35;27899:63;;27958:1;27955;27948:12;27899:63;27846:122;:::o;27974:::-;28047:24;28065:5;28047:24;:::i;:::-;28040:5;28037:35;28027:63;;28086:1;28083;28076:12;28027:63;27974:122;:::o

Swarm Source

ipfs://a9aecefac499d12e94a2baa1a76b8434a502316da619fb32f2e481a0bc5cfb41

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

AAG Ventures is a Play-To-Earn (P2E) project with 3 pillars: a P2E guild, a P2E platform and a Learn-To-Earn (L2E) platform.

Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.