ERC-20
Overview
Max Total Supply
1,000,000,000,000 MEM
Holders
134
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
361,250,649.720073946089927486 MEMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MEM
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-12 */ /** Introducing pepe in a book of memes: an experimental project poised to redefine web3 culture by amalgamating memes, decentralized storage designed for degen shitcoin trading and gambling. https://t.me/darkfarms1 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IDexFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract ERC20 is Context, IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 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 returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _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" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _createInitialSupply( 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 Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall( address target, bytes memory data ) internal returns (bytes memory) { return functionCallWithValue( target, data, 0, "Address: low-level call failed" ); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data ) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data ) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert( bytes memory returndata, string memory errorMessage ) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } library SafeERC20 { using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transfer.selector, to, value) ); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall( data, "SafeERC20: low-level call failed" ); if (returndata.length > 0) { require( abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed" ); } } } interface IUniswapV3Router { function factory() external view returns (address); } interface IUniswapV3Factory { function createPool( address tokenA, address tokenB, uint24 fee ) external returns (address pool); } contract MEM is Ownable, ERC20 { IUniswapV3Router public immutable v3Router; address public pool; IERC20 public immutable WETH; mapping(address => bool) public isPool; mapping(address => bool) public whitelisted; mapping(address => bool) public isMaxTxExempt; address public fundWallet; uint256 public maxTransactionAmt; uint256 public maxWallet; bool public limitsInEffect = false; bool public tradingActive = true; receive() external payable {} constructor() ERC20("pepe in a book of memes", "MEM") { uint256 totalSupply = 1_000_000_000_000 * 1e18; address wethContract; address _v3Router; // @dev assumes WETH pair if (block.chainid == 1) { wethContract = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; _v3Router = 0xE592427A0AEce92De3Edee1F18E0157C05861564; } else if (block.chainid == 5) { wethContract = 0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6; _v3Router = 0xE592427A0AEce92De3Edee1F18E0157C05861564; } else { revert("Chain not configured"); } WETH = IERC20(wethContract); v3Router = IUniswapV3Router(_v3Router); pool = IUniswapV3Factory(v3Router.factory()).createPool( address(this), address(WETH), 10000 ); isPool[pool] = true; fundWallet = msg.sender; whitelisted[msg.sender] = true; whitelisted[address(v3Router)] = true; whitelisted[address(0xdead)] = true; isMaxTxExempt[msg.sender] = true; isMaxTxExempt[address(v3Router)] = true; isMaxTxExempt[address(0xdead)] = true; maxTransactionAmt = (totalSupply * 1) / 100; // @dev update maxWallet = (totalSupply * 1) / 100; // @dev update _createInitialSupply(msg.sender, totalSupply); } function _transfer( address from, address to, uint256 amount ) internal override { if (limitsInEffect && !whitelisted[to] && !whitelisted[from]) { require(tradingActive, "Trading not active"); //when buy if (isPool[from] && !isMaxTxExempt[to]) { require( amount <= maxTransactionAmt, "Buy transfer amt exceeds the max buy." ); require( amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet" ); } //when sell else if (isPool[to] && !isMaxTxExempt[from]) { require( amount <= maxTransactionAmt, "Sell transfer amt exceeds the max sell." ); } //when transfer else if (!isMaxTxExempt[to]) { require( amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet" ); } } super._transfer(from, to, amount); } function enableTrading() external onlyOwner { tradingActive = true; } function removeLimits() external onlyOwner { limitsInEffect = false; } function withdrawStuckETH() external { bool success; (success, ) = address(fundWallet).call{value: address(this).balance}( "" ); } function withdrawStuckTokens(address tokenAddress) external { address tokenAdd = address(tokenAddress); uint256 tokenBalance = IERC20(tokenAdd).balanceOf(address(this)); require(tokenBalance > 0, "Amount should be greater than zero"); IERC20(tokenAdd).transfer(fundWallet, tokenBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IERC20","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":"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundWallet","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":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxTxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"v3Router","outputs":[{"internalType":"contract IUniswapV3Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600d60006101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280601781526020017f7065706520696e206120626f6f6b206f66206d656d65730000000000000000008152506040518060400160405280600381526020017f4d454d00000000000000000000000000000000000000000000000000000000008152506000620000c66200072f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350816004908162000175919062000b02565b50806005908162000187919062000b02565b50505060006c0c9f2c9cd04674edea40000000905060008060014603620001dc5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2915073e592427a0aece92de3edee1f18e0157c05861564905062000257565b60054603620002195773b4fbf271143f4fbf7b91a5ded31805e42b2208d6915073e592427a0aece92de3edee1f18e0157c05861564905062000256565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024d9062000c4a565b60405180910390fd5b5b8173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000333919062000cd6565b73ffffffffffffffffffffffffffffffffffffffff1663a16712953060a0516127106040518463ffffffff1660e01b8152600401620003759392919062000d6b565b6020604051808303816000875af115801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb919062000cd6565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506064600184620006df919062000dd7565b620006eb919062000e51565b600b81905550606460018462000702919062000dd7565b6200070e919062000e51565b600c819055506200072633846200073760201b60201c565b50505062000f64565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007a09062000ed9565b60405180910390fd5b8060036000828254620007bd919062000efb565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000815919062000efb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200087c919062000f47565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200090a57607f821691505b60208210810362000920576200091f620008c2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200098a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200094b565b6200099686836200094b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009e3620009dd620009d784620009ae565b620009b8565b620009ae565b9050919050565b6000819050919050565b620009ff83620009c2565b62000a1762000a0e82620009ea565b84845462000958565b825550505050565b600090565b62000a2e62000a1f565b62000a3b818484620009f4565b505050565b5b8181101562000a635762000a5760008262000a24565b60018101905062000a41565b5050565b601f82111562000ab25762000a7c8162000926565b62000a87846200093b565b8101602085101562000a97578190505b62000aaf62000aa6856200093b565b83018262000a40565b50505b505050565b600082821c905092915050565b600062000ad76000198460080262000ab7565b1980831691505092915050565b600062000af2838362000ac4565b9150826002028217905092915050565b62000b0d8262000888565b67ffffffffffffffff81111562000b295762000b2862000893565b5b62000b358254620008f1565b62000b4282828562000a67565b600060209050601f83116001811462000b7a576000841562000b65578287015190505b62000b71858262000ae4565b86555062000be1565b601f19841662000b8a8662000926565b60005b8281101562000bb45784890151825560018201915060208501945060208101905062000b8d565b8683101562000bd4578489015162000bd0601f89168262000ac4565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f436861696e206e6f7420636f6e66696775726564000000000000000000000000600082015250565b600062000c3260148362000be9565b915062000c3f8262000bfa565b602082019050919050565b6000602082019050818103600083015262000c658162000c23565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c9e8262000c71565b9050919050565b62000cb08162000c91565b811462000cbc57600080fd5b50565b60008151905062000cd08162000ca5565b92915050565b60006020828403121562000cef5762000cee62000c6c565b5b600062000cff8482850162000cbf565b91505092915050565b62000d138162000c91565b82525050565b6000819050919050565b600062ffffff82169050919050565b600062000d5362000d4d62000d478462000d19565b620009b8565b62000d23565b9050919050565b62000d658162000d32565b82525050565b600060608201905062000d82600083018662000d08565b62000d91602083018562000d08565b62000da0604083018462000d5a565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000de482620009ae565b915062000df183620009ae565b925082820262000e0181620009ae565b9150828204841483151762000e1b5762000e1a62000da8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e5e82620009ae565b915062000e6b83620009ae565b92508262000e7e5762000e7d62000e22565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ec1601f8362000be9565b915062000ece8262000e89565b602082019050919050565b6000602082019050818103600083015262000ef48162000eb2565b9050919050565b600062000f0882620009ae565b915062000f1583620009ae565b925082820190508082111562000f305762000f2f62000da8565b5b92915050565b62000f4181620009ae565b82525050565b600060208201905062000f5e600083018462000f36565b92915050565b60805160a05161293e62000f8a6000396000610ee7015260006107c3015261293e6000f3fe6080604052600436106101c65760003560e01c8063751039fc116100f7578063bbc0c74211610095578063dd62ed3e11610064578063dd62ed3e14610669578063f2fde38b146106a6578063f5648a4f146106cf578063f8b45b05146106e6576101cd565b8063bbc0c7421461059b578063c1ec8d4b146105c6578063cb96372814610603578063d936547e1461062c576101cd565b806395d89b41116100d157806395d89b41146104cb578063a457c2d7146104f6578063a9059cbb14610533578063ad5c464814610570576101cd565b8063751039fc146104725780638a8c523c146104895780638da5cb5b146104a0576101cd565b8063313ce567116101645780635b16ebb71161013e5780635b16ebb7146103b6578063664a1ad6146103f357806370a082311461041e578063715018a61461045b576101cd565b8063313ce56714610323578063395093511461034e5780634a62bb651461038b576101cd565b806316f0115b116101a057806316f0115b1461026557806318160ddd1461029057806320d83055146102bb57806323b872dd146102e6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630dc913061461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610711565b6040516101f49190611c7f565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190611d3a565b6107a3565b6040516102319190611d95565b60405180910390f35b34801561024657600080fd5b5061024f6107c1565b60405161025c9190611e0f565b60405180910390f35b34801561027157600080fd5b5061027a6107e5565b6040516102879190611e39565b60405180910390f35b34801561029c57600080fd5b506102a561080b565b6040516102b29190611e63565b60405180910390f35b3480156102c757600080fd5b506102d0610815565b6040516102dd9190611e63565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190611e7e565b61081b565b60405161031a9190611d95565b60405180910390f35b34801561032f57600080fd5b50610338610913565b6040516103459190611eed565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190611d3a565b61091c565b6040516103829190611d95565b60405180910390f35b34801561039757600080fd5b506103a06109c8565b6040516103ad9190611d95565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190611f08565b6109db565b6040516103ea9190611d95565b60405180910390f35b3480156103ff57600080fd5b506104086109fb565b6040516104159190611e39565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190611f08565b610a21565b6040516104529190611e63565b60405180910390f35b34801561046757600080fd5b50610470610a6a565b005b34801561047e57600080fd5b50610487610bbd565b005b34801561049557600080fd5b5061049e610c6f565b005b3480156104ac57600080fd5b506104b5610d21565b6040516104c29190611e39565b60405180910390f35b3480156104d757600080fd5b506104e0610d4a565b6040516104ed9190611c7f565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611d3a565b610ddc565b60405161052a9190611d95565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611d3a565b610ec7565b6040516105679190611d95565b60405180910390f35b34801561057c57600080fd5b50610585610ee5565b6040516105929190611f56565b60405180910390f35b3480156105a757600080fd5b506105b0610f09565b6040516105bd9190611d95565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190611f08565b610f1c565b6040516105fa9190611d95565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190611f08565b610f3c565b005b34801561063857600080fd5b50610653600480360381019061064e9190611f08565b6110a8565b6040516106609190611d95565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b9190611f71565b6110c8565b60405161069d9190611e63565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190611f08565b61114f565b005b3480156106db57600080fd5b506106e4611310565b005b3480156106f257600080fd5b506106fb6113a3565b6040516107089190611e63565b60405180910390f35b60606004805461072090611fe0565b80601f016020809104026020016040519081016040528092919081815260200182805461074c90611fe0565b80156107995780601f1061076e57610100808354040283529160200191610799565b820191906000526020600020905b81548152906001019060200180831161077c57829003601f168201915b5050505050905090565b60006107b76107b06113a9565b84846113b1565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600354905090565b600b5481565b600061082884848461157a565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108736113a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90612083565b60405180910390fd5b610907856108ff6113a9565b8584036113b1565b60019150509392505050565b60006012905090565b60006109be6109296113a9565b8484600260006109376113a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109b991906120d2565b6113b1565b6001905092915050565b600d60009054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a726113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690612152565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bc56113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990612152565b60405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b610c776113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90612152565b60405180910390fd5b6001600d60016101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610d5990611fe0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8590611fe0565b8015610dd25780601f10610da757610100808354040283529160200191610dd2565b820191906000526020600020905b815481529060010190602001808311610db557829003601f168201915b5050505050905090565b60008060026000610deb6113a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906121e4565b60405180910390fd5b610ebc610eb36113a9565b858584036113b1565b600191505092915050565b6000610edb610ed46113a9565b848461157a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60019054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f7c9190611e39565b602060405180830381865afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd9190612219565b905060008111611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906122b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161105f9291906122d8565b6020604051808303816000875af115801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a2919061232d565b50505050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111576113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612152565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a906123cc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516113589061241d565b60006040518083038185875af1925050503d8060008114611395576040519150601f19603f3d011682016040523d82523d6000602084013e61139a565b606091505b50508091505050565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611420576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611417906124a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612536565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156d9190611e63565b60405180910390a3505050565b600d60009054906101000a900460ff1680156115e05750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116365750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561197357600d60019054906101000a900460ff1661168a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611681906125a2565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561172d5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d457600b54811115611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90612634565b60405180910390fd5b600c5461178383610a21565b8261178e91906120d2565b11156117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c6906126a0565b60405180910390fd5b611972565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118775750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118c657600b548111156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b890612732565b60405180910390fd5b611971565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661197057600c5461192383610a21565b8261192e91906120d2565b111561196f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611966906126a0565b60405180910390fd5b5b5b5b5b61197e838383611983565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e9906127c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890612856565b60405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf906128e8565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b7d91906120d2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611be19190611e63565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c29578082015181840152602081019050611c0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c5182611bef565b611c5b8185611bfa565b9350611c6b818560208601611c0b565b611c7481611c35565b840191505092915050565b60006020820190508181036000830152611c998184611c46565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cd182611ca6565b9050919050565b611ce181611cc6565b8114611cec57600080fd5b50565b600081359050611cfe81611cd8565b92915050565b6000819050919050565b611d1781611d04565b8114611d2257600080fd5b50565b600081359050611d3481611d0e565b92915050565b60008060408385031215611d5157611d50611ca1565b5b6000611d5f85828601611cef565b9250506020611d7085828601611d25565b9150509250929050565b60008115159050919050565b611d8f81611d7a565b82525050565b6000602082019050611daa6000830184611d86565b92915050565b6000819050919050565b6000611dd5611dd0611dcb84611ca6565b611db0565b611ca6565b9050919050565b6000611de782611dba565b9050919050565b6000611df982611ddc565b9050919050565b611e0981611dee565b82525050565b6000602082019050611e246000830184611e00565b92915050565b611e3381611cc6565b82525050565b6000602082019050611e4e6000830184611e2a565b92915050565b611e5d81611d04565b82525050565b6000602082019050611e786000830184611e54565b92915050565b600080600060608486031215611e9757611e96611ca1565b5b6000611ea586828701611cef565b9350506020611eb686828701611cef565b9250506040611ec786828701611d25565b9150509250925092565b600060ff82169050919050565b611ee781611ed1565b82525050565b6000602082019050611f026000830184611ede565b92915050565b600060208284031215611f1e57611f1d611ca1565b5b6000611f2c84828501611cef565b91505092915050565b6000611f4082611ddc565b9050919050565b611f5081611f35565b82525050565b6000602082019050611f6b6000830184611f47565b92915050565b60008060408385031215611f8857611f87611ca1565b5b6000611f9685828601611cef565b9250506020611fa785828601611cef565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ff857607f821691505b60208210810361200b5761200a611fb1565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061206d602883611bfa565b915061207882612011565b604082019050919050565b6000602082019050818103600083015261209c81612060565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120dd82611d04565b91506120e883611d04565b9250828201905080821115612100576120ff6120a3565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061213c602083611bfa565b915061214782612106565b602082019050919050565b6000602082019050818103600083015261216b8161212f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006121ce602583611bfa565b91506121d982612172565b604082019050919050565b600060208201905081810360008301526121fd816121c1565b9050919050565b60008151905061221381611d0e565b92915050565b60006020828403121561222f5761222e611ca1565b5b600061223d84828501612204565b91505092915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b60006122a2602283611bfa565b91506122ad82612246565b604082019050919050565b600060208201905081810360008301526122d181612295565b9050919050565b60006040820190506122ed6000830185611e2a565b6122fa6020830184611e54565b9392505050565b61230a81611d7a565b811461231557600080fd5b50565b60008151905061232781612301565b92915050565b60006020828403121561234357612342611ca1565b5b600061235184828501612318565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123b6602683611bfa565b91506123c18261235a565b604082019050919050565b600060208201905081810360008301526123e5816123a9565b9050919050565b600081905092915050565b50565b60006124076000836123ec565b9150612412826123f7565b600082019050919050565b6000612428826123fa565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061248e602483611bfa565b915061249982612432565b604082019050919050565b600060208201905081810360008301526124bd81612481565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612520602283611bfa565b915061252b826124c4565b604082019050919050565b6000602082019050818103600083015261254f81612513565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b600061258c601283611bfa565b915061259782612556565b602082019050919050565b600060208201905081810360008301526125bb8161257f565b9050919050565b7f427579207472616e7366657220616d74206578636565647320746865206d617860008201527f206275792e000000000000000000000000000000000000000000000000000000602082015250565b600061261e602583611bfa565b9150612629826125c2565b604082019050919050565b6000602082019050818103600083015261264d81612611565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b600061268a601883611bfa565b915061269582612654565b602082019050919050565b600060208201905081810360008301526126b98161267d565b9050919050565b7f53656c6c207472616e7366657220616d74206578636565647320746865206d6160008201527f782073656c6c2e00000000000000000000000000000000000000000000000000602082015250565b600061271c602783611bfa565b9150612727826126c0565b604082019050919050565b6000602082019050818103600083015261274b8161270f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127ae602583611bfa565b91506127b982612752565b604082019050919050565b600060208201905081810360008301526127dd816127a1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612840602383611bfa565b915061284b826127e4565b604082019050919050565b6000602082019050818103600083015261286f81612833565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006128d2602683611bfa565b91506128dd82612876565b604082019050919050565b60006020820190508181036000830152612901816128c5565b905091905056fea26469706673582212200d4cf1d0a5f41e684559f81bb790bdfa8bac6183b395a8125dace002a1398fc464736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c8063751039fc116100f7578063bbc0c74211610095578063dd62ed3e11610064578063dd62ed3e14610669578063f2fde38b146106a6578063f5648a4f146106cf578063f8b45b05146106e6576101cd565b8063bbc0c7421461059b578063c1ec8d4b146105c6578063cb96372814610603578063d936547e1461062c576101cd565b806395d89b41116100d157806395d89b41146104cb578063a457c2d7146104f6578063a9059cbb14610533578063ad5c464814610570576101cd565b8063751039fc146104725780638a8c523c146104895780638da5cb5b146104a0576101cd565b8063313ce567116101645780635b16ebb71161013e5780635b16ebb7146103b6578063664a1ad6146103f357806370a082311461041e578063715018a61461045b576101cd565b8063313ce56714610323578063395093511461034e5780634a62bb651461038b576101cd565b806316f0115b116101a057806316f0115b1461026557806318160ddd1461029057806320d83055146102bb57806323b872dd146102e6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630dc913061461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610711565b6040516101f49190611c7f565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190611d3a565b6107a3565b6040516102319190611d95565b60405180910390f35b34801561024657600080fd5b5061024f6107c1565b60405161025c9190611e0f565b60405180910390f35b34801561027157600080fd5b5061027a6107e5565b6040516102879190611e39565b60405180910390f35b34801561029c57600080fd5b506102a561080b565b6040516102b29190611e63565b60405180910390f35b3480156102c757600080fd5b506102d0610815565b6040516102dd9190611e63565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190611e7e565b61081b565b60405161031a9190611d95565b60405180910390f35b34801561032f57600080fd5b50610338610913565b6040516103459190611eed565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190611d3a565b61091c565b6040516103829190611d95565b60405180910390f35b34801561039757600080fd5b506103a06109c8565b6040516103ad9190611d95565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190611f08565b6109db565b6040516103ea9190611d95565b60405180910390f35b3480156103ff57600080fd5b506104086109fb565b6040516104159190611e39565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190611f08565b610a21565b6040516104529190611e63565b60405180910390f35b34801561046757600080fd5b50610470610a6a565b005b34801561047e57600080fd5b50610487610bbd565b005b34801561049557600080fd5b5061049e610c6f565b005b3480156104ac57600080fd5b506104b5610d21565b6040516104c29190611e39565b60405180910390f35b3480156104d757600080fd5b506104e0610d4a565b6040516104ed9190611c7f565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611d3a565b610ddc565b60405161052a9190611d95565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611d3a565b610ec7565b6040516105679190611d95565b60405180910390f35b34801561057c57600080fd5b50610585610ee5565b6040516105929190611f56565b60405180910390f35b3480156105a757600080fd5b506105b0610f09565b6040516105bd9190611d95565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190611f08565b610f1c565b6040516105fa9190611d95565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190611f08565b610f3c565b005b34801561063857600080fd5b50610653600480360381019061064e9190611f08565b6110a8565b6040516106609190611d95565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b9190611f71565b6110c8565b60405161069d9190611e63565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190611f08565b61114f565b005b3480156106db57600080fd5b506106e4611310565b005b3480156106f257600080fd5b506106fb6113a3565b6040516107089190611e63565b60405180910390f35b60606004805461072090611fe0565b80601f016020809104026020016040519081016040528092919081815260200182805461074c90611fe0565b80156107995780601f1061076e57610100808354040283529160200191610799565b820191906000526020600020905b81548152906001019060200180831161077c57829003601f168201915b5050505050905090565b60006107b76107b06113a9565b84846113b1565b6001905092915050565b7f000000000000000000000000e592427a0aece92de3edee1f18e0157c0586156481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600354905090565b600b5481565b600061082884848461157a565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108736113a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90612083565b60405180910390fd5b610907856108ff6113a9565b8584036113b1565b60019150509392505050565b60006012905090565b60006109be6109296113a9565b8484600260006109376113a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109b991906120d2565b6113b1565b6001905092915050565b600d60009054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a726113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690612152565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bc56113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990612152565b60405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b610c776113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90612152565b60405180910390fd5b6001600d60016101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610d5990611fe0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8590611fe0565b8015610dd25780601f10610da757610100808354040283529160200191610dd2565b820191906000526020600020905b815481529060010190602001808311610db557829003601f168201915b5050505050905090565b60008060026000610deb6113a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906121e4565b60405180910390fd5b610ebc610eb36113a9565b858584036113b1565b600191505092915050565b6000610edb610ed46113a9565b848461157a565b6001905092915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600d60019054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f7c9190611e39565b602060405180830381865afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd9190612219565b905060008111611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906122b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161105f9291906122d8565b6020604051808303816000875af115801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a2919061232d565b50505050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111576113a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612152565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a906123cc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516113589061241d565b60006040518083038185875af1925050503d8060008114611395576040519150601f19603f3d011682016040523d82523d6000602084013e61139a565b606091505b50508091505050565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611420576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611417906124a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612536565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156d9190611e63565b60405180910390a3505050565b600d60009054906101000a900460ff1680156115e05750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116365750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561197357600d60019054906101000a900460ff1661168a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611681906125a2565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561172d5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d457600b54811115611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90612634565b60405180910390fd5b600c5461178383610a21565b8261178e91906120d2565b11156117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c6906126a0565b60405180910390fd5b611972565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118775750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118c657600b548111156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b890612732565b60405180910390fd5b611971565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661197057600c5461192383610a21565b8261192e91906120d2565b111561196f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611966906126a0565b60405180910390fd5b5b5b5b5b61197e838383611983565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e9906127c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890612856565b60405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf906128e8565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b7d91906120d2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611be19190611e63565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c29578082015181840152602081019050611c0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c5182611bef565b611c5b8185611bfa565b9350611c6b818560208601611c0b565b611c7481611c35565b840191505092915050565b60006020820190508181036000830152611c998184611c46565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cd182611ca6565b9050919050565b611ce181611cc6565b8114611cec57600080fd5b50565b600081359050611cfe81611cd8565b92915050565b6000819050919050565b611d1781611d04565b8114611d2257600080fd5b50565b600081359050611d3481611d0e565b92915050565b60008060408385031215611d5157611d50611ca1565b5b6000611d5f85828601611cef565b9250506020611d7085828601611d25565b9150509250929050565b60008115159050919050565b611d8f81611d7a565b82525050565b6000602082019050611daa6000830184611d86565b92915050565b6000819050919050565b6000611dd5611dd0611dcb84611ca6565b611db0565b611ca6565b9050919050565b6000611de782611dba565b9050919050565b6000611df982611ddc565b9050919050565b611e0981611dee565b82525050565b6000602082019050611e246000830184611e00565b92915050565b611e3381611cc6565b82525050565b6000602082019050611e4e6000830184611e2a565b92915050565b611e5d81611d04565b82525050565b6000602082019050611e786000830184611e54565b92915050565b600080600060608486031215611e9757611e96611ca1565b5b6000611ea586828701611cef565b9350506020611eb686828701611cef565b9250506040611ec786828701611d25565b9150509250925092565b600060ff82169050919050565b611ee781611ed1565b82525050565b6000602082019050611f026000830184611ede565b92915050565b600060208284031215611f1e57611f1d611ca1565b5b6000611f2c84828501611cef565b91505092915050565b6000611f4082611ddc565b9050919050565b611f5081611f35565b82525050565b6000602082019050611f6b6000830184611f47565b92915050565b60008060408385031215611f8857611f87611ca1565b5b6000611f9685828601611cef565b9250506020611fa785828601611cef565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ff857607f821691505b60208210810361200b5761200a611fb1565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061206d602883611bfa565b915061207882612011565b604082019050919050565b6000602082019050818103600083015261209c81612060565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120dd82611d04565b91506120e883611d04565b9250828201905080821115612100576120ff6120a3565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061213c602083611bfa565b915061214782612106565b602082019050919050565b6000602082019050818103600083015261216b8161212f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006121ce602583611bfa565b91506121d982612172565b604082019050919050565b600060208201905081810360008301526121fd816121c1565b9050919050565b60008151905061221381611d0e565b92915050565b60006020828403121561222f5761222e611ca1565b5b600061223d84828501612204565b91505092915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b60006122a2602283611bfa565b91506122ad82612246565b604082019050919050565b600060208201905081810360008301526122d181612295565b9050919050565b60006040820190506122ed6000830185611e2a565b6122fa6020830184611e54565b9392505050565b61230a81611d7a565b811461231557600080fd5b50565b60008151905061232781612301565b92915050565b60006020828403121561234357612342611ca1565b5b600061235184828501612318565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123b6602683611bfa565b91506123c18261235a565b604082019050919050565b600060208201905081810360008301526123e5816123a9565b9050919050565b600081905092915050565b50565b60006124076000836123ec565b9150612412826123f7565b600082019050919050565b6000612428826123fa565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061248e602483611bfa565b915061249982612432565b604082019050919050565b600060208201905081810360008301526124bd81612481565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612520602283611bfa565b915061252b826124c4565b604082019050919050565b6000602082019050818103600083015261254f81612513565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b600061258c601283611bfa565b915061259782612556565b602082019050919050565b600060208201905081810360008301526125bb8161257f565b9050919050565b7f427579207472616e7366657220616d74206578636565647320746865206d617860008201527f206275792e000000000000000000000000000000000000000000000000000000602082015250565b600061261e602583611bfa565b9150612629826125c2565b604082019050919050565b6000602082019050818103600083015261264d81612611565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b600061268a601883611bfa565b915061269582612654565b602082019050919050565b600060208201905081810360008301526126b98161267d565b9050919050565b7f53656c6c207472616e7366657220616d74206578636565647320746865206d6160008201527f782073656c6c2e00000000000000000000000000000000000000000000000000602082015250565b600061271c602783611bfa565b9150612727826126c0565b604082019050919050565b6000602082019050818103600083015261274b8161270f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127ae602583611bfa565b91506127b982612752565b604082019050919050565b600060208201905081810360008301526127dd816127a1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612840602383611bfa565b915061284b826127e4565b604082019050919050565b6000602082019050818103600083015261286f81612833565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006128d2602683611bfa565b91506128dd82612876565b604082019050919050565b60006020820190508181036000830152612901816128c5565b905091905056fea26469706673582212200d4cf1d0a5f41e684559f81bb790bdfa8bac6183b395a8125dace002a1398fc464736f6c63430008130033
Deployed Bytecode Sourcemap
15166:3865:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2344:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3324:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15204:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15253:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2665:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15495:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3526:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2564:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4063:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15567:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15316:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15463:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2781:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6772:150;;;;;;;;;;;;;:::i;:::-;;18423:84;;;;;;;;;;;;;:::i;:::-;;18332:83;;;;;;;;;;;;;:::i;:::-;;6558:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2452:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4361:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2932:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15279:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15608:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15411:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18698:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15361:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3140:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6930:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18515:175;;;;;;;;;;;;;:::i;:::-;;15534:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2344:100;2398:13;2431:5;2424:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2344:100;:::o;3324:194::-;3432:4;3449:39;3458:12;:10;:12::i;:::-;3472:7;3481:6;3449:8;:39::i;:::-;3506:4;3499:11;;3324:194;;;;:::o;15204:42::-;;;:::o;15253:19::-;;;;;;;;;;;;;:::o;2665:108::-;2726:7;2753:12;;2746:19;;2665:108;:::o;15495:32::-;;;;:::o;3526:529::-;3666:4;3683:36;3693:6;3701:9;3712:6;3683:9;:36::i;:::-;3732:24;3759:11;:19;3771:6;3759:19;;;;;;;;;;;;;;;:33;3779:12;:10;:12::i;:::-;3759:33;;;;;;;;;;;;;;;;3732:60;;3845:6;3825:16;:26;;3803:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;3955:57;3964:6;3972:12;:10;:12::i;:::-;4005:6;3986:16;:25;3955:8;:57::i;:::-;4043:4;4036:11;;;3526:529;;;;;:::o;2564:93::-;2622:5;2647:2;2640:9;;2564:93;:::o;4063:290::-;4176:4;4193:130;4216:12;:10;:12::i;:::-;4243:7;4302:10;4265:11;:25;4277:12;:10;:12::i;:::-;4265:25;;;;;;;;;;;;;;;:34;4291:7;4265:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4193:8;:130::i;:::-;4341:4;4334:11;;4063:290;;;;:::o;15567:34::-;;;;;;;;;;;;;:::o;15316:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;15463:25::-;;;;;;;;;;;;;:::o;2781:143::-;2871:7;2898:9;:18;2908:7;2898:18;;;;;;;;;;;;;;;;2891:25;;2781:143;;;:::o;6772:150::-;6695:12;:10;:12::i;:::-;6685:22;;:6;;;;;;;;;;:22;;;6677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6881:1:::1;6844:40;;6865:6;::::0;::::1;;;;;;;;6844:40;;;;;;;;;;;;6912:1;6895:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6772:150::o:0;18423:84::-;6695:12;:10;:12::i;:::-;6685:22;;:6;;;;;;;;;;:22;;;6677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18494:5:::1;18477:14;;:22;;;;;;;;;;;;;;;;;;18423:84::o:0;18332:83::-;6695:12;:10;:12::i;:::-;6685:22;;:6;;;;;;;;;;:22;;;6677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18403:4:::1;18387:13;;:20;;;;;;;;;;;;;;;;;;18332:83::o:0;6558:79::-;6596:7;6623:6;;;;;;;;;;;6616:13;;6558:79;:::o;2452:104::-;2508:13;2541:7;2534:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2452:104;:::o;4361:475::-;4479:4;4496:24;4523:11;:25;4535:12;:10;:12::i;:::-;4523:25;;;;;;;;;;;;;;;:34;4549:7;4523:34;;;;;;;;;;;;;;;;4496:61;;4610:15;4590:16;:35;;4568:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;4726:67;4735:12;:10;:12::i;:::-;4749:7;4777:15;4758:16;:34;4726:8;:67::i;:::-;4824:4;4817:11;;;4361:475;;;;:::o;2932:200::-;3043:4;3060:42;3070:12;:10;:12::i;:::-;3084:9;3095:6;3060:9;:42::i;:::-;3120:4;3113:11;;2932:200;;;;:::o;15279:28::-;;;:::o;15608:32::-;;;;;;;;;;;;;:::o;15411:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;18698:330::-;18769:16;18796:12;18769:40;;18820:20;18850:8;18843:26;;;18878:4;18843:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18820:64;;18918:1;18903:12;:16;18895:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;18976:8;18969:25;;;18995:10;;;;;;;;;;;19007:12;18969:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18758:270;;18698:330;:::o;15361:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;3140:176::-;3254:7;3281:11;:18;3293:5;3281:18;;;;;;;;;;;;;;;:27;3300:7;3281:27;;;;;;;;;;;;;;;;3274:34;;3140:176;;;;:::o;6930:281::-;6695:12;:10;:12::i;:::-;6685:22;;:6;;;;;;;;;;:22;;;6677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7053:1:::1;7033:22;;:8;:22;;::::0;7011:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7166:8;7137:38;;7158:6;::::0;::::1;;;;;;;;7137:38;;;;;;;;;;;;7195:8;7186:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6930:281:::0;:::o;18515:175::-;18563:12;18608:10;;;;;;;;;;;18600:24;;18632:21;18600:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18586:96;;;;;18552:138;18515:175::o;15534:24::-;;;;:::o;334:98::-;387:7;414:10;407:17;;334:98;:::o;5827:380::-;5980:1;5963:19;;:5;:19;;;5955:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6061:1;6042:21;;:7;:21;;;6034:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6145:6;6115:11;:18;6127:5;6115:18;;;;;;;;;;;;;;;:27;6134:7;6115:27;;;;;;;;;;;;;;;:36;;;;6183:7;6167:32;;6176:5;6167:32;;;6192:6;6167:32;;;;;;:::i;:::-;;;;;;;;5827:380;;;:::o;17114:1210::-;17242:14;;;;;;;;;;;:34;;;;;17261:11;:15;17273:2;17261:15;;;;;;;;;;;;;;;;;;;;;;;;;17260:16;17242:34;:56;;;;;17281:11;:17;17293:4;17281:17;;;;;;;;;;;;;;;;;;;;;;;;;17280:18;17242:56;17238:1035;;;17323:13;;;;;;;;;;;17315:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17402:6;:12;17409:4;17402:12;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;;17419:13;:17;17433:2;17419:17;;;;;;;;;;;;;;;;;;;;;;;;;17418:18;17402:34;17398:864;;;17497:17;;17487:6;:27;;17457:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;17670:9;;17653:13;17663:2;17653:9;:13::i;:::-;17644:6;:22;;;;:::i;:::-;:35;;17614:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;17398:864;;;17811:6;:10;17818:2;17811:10;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;;17826:13;:19;17840:4;17826:19;;;;;;;;;;;;;;;;;;;;;;;;;17825:20;17811:34;17807:455;;;17906:17;;17896:6;:27;;17866:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;17807:455;;;18075:13;:17;18089:2;18075:17;;;;;;;;;;;;;;;;;;;;;;;;;18070:192;;18169:9;;18152:13;18162:2;18152:9;:13::i;:::-;18143:6;:22;;;;:::i;:::-;:35;;18113:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;18070:192;17807:455;17398:864;17238:1035;18283:33;18299:4;18305:2;18309:6;18283:15;:33::i;:::-;17114:1210;;;:::o;4844:651::-;5002:1;4984:20;;:6;:20;;;4976:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5086:1;5065:23;;:9;:23;;;5057:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5141:21;5165:9;:17;5175:6;5165:17;;;;;;;;;;;;;;;;5141:41;;5232:6;5215:13;:23;;5193:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;5376:6;5360:13;:22;5340:9;:17;5350:6;5340:17;;;;;;;;;;;;;;;:42;;;;5428:6;5404:9;:20;5414:9;5404:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5469:9;5452:35;;5461:6;5452:35;;;5480:6;5452:35;;;;;;:::i;:::-;;;;;;;;4965:530;4844:651;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:151::-;3867:9;3900:37;3931:5;3900:37;:::i;:::-;3887:50;;3792:151;;;:::o;3949:181::-;4061:62;4117:5;4061:62;:::i;:::-;4056:3;4049:75;3949:181;;:::o;4136:272::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:96;4398:1;4387:9;4383:17;4374:6;4305:96;:::i;:::-;4136:272;;;;:::o;4414:118::-;4501:24;4519:5;4501:24;:::i;:::-;4496:3;4489:37;4414:118;;:::o;4538:222::-;4631:4;4669:2;4658:9;4654:18;4646:26;;4682:71;4750:1;4739:9;4735:17;4726:6;4682:71;:::i;:::-;4538:222;;;;:::o;4766:118::-;4853:24;4871:5;4853:24;:::i;:::-;4848:3;4841:37;4766:118;;:::o;4890:222::-;4983:4;5021:2;5010:9;5006:18;4998:26;;5034:71;5102:1;5091:9;5087:17;5078:6;5034:71;:::i;:::-;4890:222;;;;:::o;5118:619::-;5195:6;5203;5211;5260:2;5248:9;5239:7;5235:23;5231:32;5228:119;;;5266:79;;:::i;:::-;5228:119;5386:1;5411:53;5456:7;5447:6;5436:9;5432:22;5411:53;:::i;:::-;5401:63;;5357:117;5513:2;5539:53;5584:7;5575:6;5564:9;5560:22;5539:53;:::i;:::-;5529:63;;5484:118;5641:2;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5612:118;5118:619;;;;;:::o;5743:86::-;5778:7;5818:4;5811:5;5807:16;5796:27;;5743:86;;;:::o;5835:112::-;5918:22;5934:5;5918:22;:::i;:::-;5913:3;5906:35;5835:112;;:::o;5953:214::-;6042:4;6080:2;6069:9;6065:18;6057:26;;6093:67;6157:1;6146:9;6142:17;6133:6;6093:67;:::i;:::-;5953:214;;;;:::o;6173:329::-;6232:6;6281:2;6269:9;6260:7;6256:23;6252:32;6249:119;;;6287:79;;:::i;:::-;6249:119;6407:1;6432:53;6477:7;6468:6;6457:9;6453:22;6432:53;:::i;:::-;6422:63;;6378:117;6173:329;;;;:::o;6508:140::-;6572:9;6605:37;6636:5;6605:37;:::i;:::-;6592:50;;6508:140;;;:::o;6654:159::-;6755:51;6800:5;6755:51;:::i;:::-;6750:3;6743:64;6654:159;;:::o;6819:250::-;6926:4;6964:2;6953:9;6949:18;6941:26;;6977:85;7059:1;7048:9;7044:17;7035:6;6977:85;:::i;:::-;6819:250;;;;:::o;7075:474::-;7143:6;7151;7200:2;7188:9;7179:7;7175:23;7171:32;7168:119;;;7206:79;;:::i;:::-;7168:119;7326:1;7351:53;7396:7;7387:6;7376:9;7372:22;7351:53;:::i;:::-;7341:63;;7297:117;7453:2;7479:53;7524:7;7515:6;7504:9;7500:22;7479:53;:::i;:::-;7469:63;;7424:118;7075:474;;;;;:::o;7555:180::-;7603:77;7600:1;7593:88;7700:4;7697:1;7690:15;7724:4;7721:1;7714:15;7741:320;7785:6;7822:1;7816:4;7812:12;7802:22;;7869:1;7863:4;7859:12;7890:18;7880:81;;7946:4;7938:6;7934:17;7924:27;;7880:81;8008:2;8000:6;7997:14;7977:18;7974:38;7971:84;;8027:18;;:::i;:::-;7971:84;7792:269;7741:320;;;:::o;8067:227::-;8207:34;8203:1;8195:6;8191:14;8184:58;8276:10;8271:2;8263:6;8259:15;8252:35;8067:227;:::o;8300:366::-;8442:3;8463:67;8527:2;8522:3;8463:67;:::i;:::-;8456:74;;8539:93;8628:3;8539:93;:::i;:::-;8657:2;8652:3;8648:12;8641:19;;8300:366;;;:::o;8672:419::-;8838:4;8876:2;8865:9;8861:18;8853:26;;8925:9;8919:4;8915:20;8911:1;8900:9;8896:17;8889:47;8953:131;9079:4;8953:131;:::i;:::-;8945:139;;8672:419;;;:::o;9097:180::-;9145:77;9142:1;9135:88;9242:4;9239:1;9232:15;9266:4;9263:1;9256:15;9283:191;9323:3;9342:20;9360:1;9342:20;:::i;:::-;9337:25;;9376:20;9394:1;9376:20;:::i;:::-;9371:25;;9419:1;9416;9412:9;9405:16;;9440:3;9437:1;9434:10;9431:36;;;9447:18;;:::i;:::-;9431:36;9283:191;;;;:::o;9480:182::-;9620:34;9616:1;9608:6;9604:14;9597:58;9480:182;:::o;9668:366::-;9810:3;9831:67;9895:2;9890:3;9831:67;:::i;:::-;9824:74;;9907:93;9996:3;9907:93;:::i;:::-;10025:2;10020:3;10016:12;10009:19;;9668:366;;;:::o;10040:419::-;10206:4;10244:2;10233:9;10229:18;10221:26;;10293:9;10287:4;10283:20;10279:1;10268:9;10264:17;10257:47;10321:131;10447:4;10321:131;:::i;:::-;10313:139;;10040:419;;;:::o;10465:224::-;10605:34;10601:1;10593:6;10589:14;10582:58;10674:7;10669:2;10661:6;10657:15;10650:32;10465:224;:::o;10695:366::-;10837:3;10858:67;10922:2;10917:3;10858:67;:::i;:::-;10851:74;;10934:93;11023:3;10934:93;:::i;:::-;11052:2;11047:3;11043:12;11036:19;;10695:366;;;:::o;11067:419::-;11233:4;11271:2;11260:9;11256:18;11248:26;;11320:9;11314:4;11310:20;11306:1;11295:9;11291:17;11284:47;11348:131;11474:4;11348:131;:::i;:::-;11340:139;;11067:419;;;:::o;11492:143::-;11549:5;11580:6;11574:13;11565:22;;11596:33;11623:5;11596:33;:::i;:::-;11492:143;;;;:::o;11641:351::-;11711:6;11760:2;11748:9;11739:7;11735:23;11731:32;11728:119;;;11766:79;;:::i;:::-;11728:119;11886:1;11911:64;11967:7;11958:6;11947:9;11943:22;11911:64;:::i;:::-;11901:74;;11857:128;11641:351;;;;:::o;11998:221::-;12138:34;12134:1;12126:6;12122:14;12115:58;12207:4;12202:2;12194:6;12190:15;12183:29;11998:221;:::o;12225:366::-;12367:3;12388:67;12452:2;12447:3;12388:67;:::i;:::-;12381:74;;12464:93;12553:3;12464:93;:::i;:::-;12582:2;12577:3;12573:12;12566:19;;12225:366;;;:::o;12597:419::-;12763:4;12801:2;12790:9;12786:18;12778:26;;12850:9;12844:4;12840:20;12836:1;12825:9;12821:17;12814:47;12878:131;13004:4;12878:131;:::i;:::-;12870:139;;12597:419;;;:::o;13022:332::-;13143:4;13181:2;13170:9;13166:18;13158:26;;13194:71;13262:1;13251:9;13247:17;13238:6;13194:71;:::i;:::-;13275:72;13343:2;13332:9;13328:18;13319:6;13275:72;:::i;:::-;13022:332;;;;;:::o;13360:116::-;13430:21;13445:5;13430:21;:::i;:::-;13423:5;13420:32;13410:60;;13466:1;13463;13456:12;13410:60;13360:116;:::o;13482:137::-;13536:5;13567:6;13561:13;13552:22;;13583:30;13607:5;13583:30;:::i;:::-;13482:137;;;;:::o;13625:345::-;13692:6;13741:2;13729:9;13720:7;13716:23;13712:32;13709:119;;;13747:79;;:::i;:::-;13709:119;13867:1;13892:61;13945:7;13936:6;13925:9;13921:22;13892:61;:::i;:::-;13882:71;;13838:125;13625:345;;;;:::o;13976:225::-;14116:34;14112:1;14104:6;14100:14;14093:58;14185:8;14180:2;14172:6;14168:15;14161:33;13976:225;:::o;14207:366::-;14349:3;14370:67;14434:2;14429:3;14370:67;:::i;:::-;14363:74;;14446:93;14535:3;14446:93;:::i;:::-;14564:2;14559:3;14555:12;14548:19;;14207:366;;;:::o;14579:419::-;14745:4;14783:2;14772:9;14768:18;14760:26;;14832:9;14826:4;14822:20;14818:1;14807:9;14803:17;14796:47;14860:131;14986:4;14860:131;:::i;:::-;14852:139;;14579:419;;;:::o;15004:147::-;15105:11;15142:3;15127:18;;15004:147;;;;:::o;15157:114::-;;:::o;15277:398::-;15436:3;15457:83;15538:1;15533:3;15457:83;:::i;:::-;15450:90;;15549:93;15638:3;15549:93;:::i;:::-;15667:1;15662:3;15658:11;15651:18;;15277:398;;;:::o;15681:379::-;15865:3;15887:147;16030:3;15887:147;:::i;:::-;15880:154;;16051:3;16044:10;;15681:379;;;:::o;16066:223::-;16206:34;16202:1;16194:6;16190:14;16183:58;16275:6;16270:2;16262:6;16258:15;16251:31;16066:223;:::o;16295:366::-;16437:3;16458:67;16522:2;16517:3;16458:67;:::i;:::-;16451:74;;16534:93;16623:3;16534:93;:::i;:::-;16652:2;16647:3;16643:12;16636:19;;16295:366;;;:::o;16667:419::-;16833:4;16871:2;16860:9;16856:18;16848:26;;16920:9;16914:4;16910:20;16906:1;16895:9;16891:17;16884:47;16948:131;17074:4;16948:131;:::i;:::-;16940:139;;16667:419;;;:::o;17092:221::-;17232:34;17228:1;17220:6;17216:14;17209:58;17301:4;17296:2;17288:6;17284:15;17277:29;17092:221;:::o;17319:366::-;17461:3;17482:67;17546:2;17541:3;17482:67;:::i;:::-;17475:74;;17558:93;17647:3;17558:93;:::i;:::-;17676:2;17671:3;17667:12;17660:19;;17319:366;;;:::o;17691:419::-;17857:4;17895:2;17884:9;17880:18;17872:26;;17944:9;17938:4;17934:20;17930:1;17919:9;17915:17;17908:47;17972:131;18098:4;17972:131;:::i;:::-;17964:139;;17691:419;;;:::o;18116:168::-;18256:20;18252:1;18244:6;18240:14;18233:44;18116:168;:::o;18290:366::-;18432:3;18453:67;18517:2;18512:3;18453:67;:::i;:::-;18446:74;;18529:93;18618:3;18529:93;:::i;:::-;18647:2;18642:3;18638:12;18631:19;;18290:366;;;:::o;18662:419::-;18828:4;18866:2;18855:9;18851:18;18843:26;;18915:9;18909:4;18905:20;18901:1;18890:9;18886:17;18879:47;18943:131;19069:4;18943:131;:::i;:::-;18935:139;;18662:419;;;:::o;19087:224::-;19227:34;19223:1;19215:6;19211:14;19204:58;19296:7;19291:2;19283:6;19279:15;19272:32;19087:224;:::o;19317:366::-;19459:3;19480:67;19544:2;19539:3;19480:67;:::i;:::-;19473:74;;19556:93;19645:3;19556:93;:::i;:::-;19674:2;19669:3;19665:12;19658:19;;19317:366;;;:::o;19689:419::-;19855:4;19893:2;19882:9;19878:18;19870:26;;19942:9;19936:4;19932:20;19928:1;19917:9;19913:17;19906:47;19970:131;20096:4;19970:131;:::i;:::-;19962:139;;19689:419;;;:::o;20114:174::-;20254:26;20250:1;20242:6;20238:14;20231:50;20114:174;:::o;20294:366::-;20436:3;20457:67;20521:2;20516:3;20457:67;:::i;:::-;20450:74;;20533:93;20622:3;20533:93;:::i;:::-;20651:2;20646:3;20642:12;20635:19;;20294:366;;;:::o;20666:419::-;20832:4;20870:2;20859:9;20855:18;20847:26;;20919:9;20913:4;20909:20;20905:1;20894:9;20890:17;20883:47;20947:131;21073:4;20947:131;:::i;:::-;20939:139;;20666:419;;;:::o;21091:226::-;21231:34;21227:1;21219:6;21215:14;21208:58;21300:9;21295:2;21287:6;21283:15;21276:34;21091:226;:::o;21323:366::-;21465:3;21486:67;21550:2;21545:3;21486:67;:::i;:::-;21479:74;;21562:93;21651:3;21562:93;:::i;:::-;21680:2;21675:3;21671:12;21664:19;;21323:366;;;:::o;21695:419::-;21861:4;21899:2;21888:9;21884:18;21876:26;;21948:9;21942:4;21938:20;21934:1;21923:9;21919:17;21912:47;21976:131;22102:4;21976:131;:::i;:::-;21968:139;;21695:419;;;:::o;22120:224::-;22260:34;22256:1;22248:6;22244:14;22237:58;22329:7;22324:2;22316:6;22312:15;22305:32;22120:224;:::o;22350:366::-;22492:3;22513:67;22577:2;22572:3;22513:67;:::i;:::-;22506:74;;22589:93;22678:3;22589:93;:::i;:::-;22707:2;22702:3;22698:12;22691:19;;22350:366;;;:::o;22722:419::-;22888:4;22926:2;22915:9;22911:18;22903:26;;22975:9;22969:4;22965:20;22961:1;22950:9;22946:17;22939:47;23003:131;23129:4;23003:131;:::i;:::-;22995:139;;22722:419;;;:::o;23147:222::-;23287:34;23283:1;23275:6;23271:14;23264:58;23356:5;23351:2;23343:6;23339:15;23332:30;23147:222;:::o;23375:366::-;23517:3;23538:67;23602:2;23597:3;23538:67;:::i;:::-;23531:74;;23614:93;23703:3;23614:93;:::i;:::-;23732:2;23727:3;23723:12;23716:19;;23375:366;;;:::o;23747:419::-;23913:4;23951:2;23940:9;23936:18;23928:26;;24000:9;23994:4;23990:20;23986:1;23975:9;23971:17;23964:47;24028:131;24154:4;24028:131;:::i;:::-;24020:139;;23747:419;;;:::o;24172:225::-;24312:34;24308:1;24300:6;24296:14;24289:58;24381:8;24376:2;24368:6;24364:15;24357:33;24172:225;:::o;24403:366::-;24545:3;24566:67;24630:2;24625:3;24566:67;:::i;:::-;24559:74;;24642:93;24731:3;24642:93;:::i;:::-;24760:2;24755:3;24751:12;24744:19;;24403:366;;;:::o;24775:419::-;24941:4;24979:2;24968:9;24964:18;24956:26;;25028:9;25022:4;25018:20;25014:1;25003:9;24999:17;24992:47;25056:131;25182:4;25056:131;:::i;:::-;25048:139;;24775:419;;;:::o
Swarm Source
ipfs://0d4cf1d0a5f41e684559f81bb790bdfa8bac6183b395a8125dace002a1398fc4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.