Token ArbiRoul Casino Chip
Overview ERC20
Price
$0.00 @ 0.000000 ETH
Fully Diluted Market Cap
Total Supply:
256,172,911.612992 ROUL
Holders:
2,068 addresses
Transfers:
-
Contract:
Decimals:
18
Official Site:
[ Download CSV Export ]
[ Download CSV Export ]
OVERVIEW
ROUL is the token for the ArbiRoul Ecosystem. The goal of ArbiRoul is to create a fair, transparent, and fun betting platform on the Arbitrum blockchain.Market
Volume (24H) | : | $102.59 |
Market Capitalization | : | $0.00 |
Circulating Supply | : | 0.00 ROUL |
Market Data Source: Coinmarketcap |
Update? Click here to update the token ICO / general information
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CasinoChip
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Arbiscan.io on 2023-01-20 */ pragma solidity ^0.8.0; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * BEP20 standard interface. */ interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address owner; mapping(address => bool) private authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Any authorized address */ function authorize(address adr) public authorized { authorizations[adr] = true; emit Authorized(adr); } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; emit Unauthorized(adr); } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); event Authorized(address adr); event Unauthorized(address adr); } /** * Pause and unpause certain functions using modifiers */ abstract contract Pausable is Auth { bool public paused; constructor(bool _paused) { paused = _paused; } modifier whenPaused() { require(paused || isAuthorized(msg.sender), "!PAUSED"); _; } modifier notPaused() { require(!paused || isAuthorized(msg.sender), "PAUSED"); _; } function pause() external notPaused authorized { paused = true; emit Paused(); } function unpause() public whenPaused authorized { _unpause(); } function _unpause() internal { paused = false; emit Unpaused(); } event Paused(); event Unpaused(); } 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); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract CasinoChip is IBEP20, Auth, Pausable { using SafeMath for uint256; string constant _name = "ArbiRoul Casino Chip"; string constant _symbol = "ROUL"; uint8 constant _decimals = 18; uint256 private _totalSupply = 300000000 * (10**_decimals); uint256 public _maxTxAmount = 6000000 * (10**_decimals); mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public hasFee; mapping(address => bool) public isExempt; uint256 public autoLiquidityFee = 4; uint256 public devFee = 1; uint256 public feeDenominator = 100; address public autoLiquidityReceiver; address public devFeeReceiver; address public casino; IDEXRouter public router; address private WBNB; address public liquifyPair; uint256 launchedAt; bool public liquifyEnabled = true; uint256 public liquifyAmount = 300000 * (10**_decimals); bool private inLiquify; modifier liquifying() { inLiquify = true; _; inLiquify = false; } constructor(address _owner, address _router) Auth(_owner) Pausable(true) { router = IDEXRouter(_router); WBNB = router.WETH(); liquifyPair = IDEXFactory(router.factory()).createPair( WBNB, address(this) ); _allowances[address(this)][_router] = type(uint256).max; hasFee[liquifyPair] = true; isExempt[_owner] = true; isExempt[address(this)] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); payable(_owner).transfer(address(this).balance); } receive() external payable { assert(msg.sender == WBNB || msg.sender == address(router)); } modifier migrationProtection(address sender) { require( !paused || isAuthorized(sender) || isAuthorized(msg.sender), "PROTECTED" ); _; } modifier onlyCasino() { require( msg.sender == casino, "Only casino contract can call these functions" ); _; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { return _transferFrom(sender, recipient, amount); } function casinoPay(address account, uint256 amount) external onlyCasino { _mint(account, amount); } function casinoTake(address account, uint256 amount) external onlyCasino { _burn(account, amount); } // ONLY FOR INTERNAL CALLS FROM CASINO CONTRACT function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } // ONLY FOR INTERNAL CALLS FROM CASINO CONTRACT function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance.sub(amount); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal migrationProtection(sender) returns (bool) { checkTxLimit(sender, recipient, amount); if ( sender != msg.sender && _allowances[sender][msg.sender] != type(uint256).max ) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } if (launchedAt == 0 && recipient == liquifyPair) { launch(); } bool shouldLiquify = shouldAutoLiquify() && !(isExempt[sender] || isExempt[recipient]); if (shouldLiquify) { autoLiquify(); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function checkTxLimit( address sender, address recipient, uint256 amount ) internal view { require( amount <= _maxTxAmount || isExempt[sender] || isExempt[recipient], "TX Limit Exceeded" ); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 liquidityFeeAmount = amount.mul(getLiquidityFee()).div( feeDenominator ); uint256 devFeeAmount = amount.mul(devFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add( liquidityFeeAmount ); _balances[devFeeReceiver] = _balances[devFeeReceiver].add(devFeeAmount); emit Transfer(sender, address(this), liquidityFeeAmount); emit Transfer(sender, devFeeReceiver, devFeeAmount); return amount.sub(liquidityFeeAmount).sub(devFeeAmount); } function getLiquidityFee() internal view returns (uint256) { if (launchedAt + 1 >= block.number) { return feeDenominator.sub(devFee).sub(1); } return autoLiquidityFee; } function shouldAutoLiquify() internal view returns (bool) { return msg.sender != liquifyPair && !inLiquify && liquifyEnabled && _balances[address(this)] >= liquifyAmount; } function autoLiquify() internal liquifying { uint256 amountToSwap = liquifyAmount.div(2); address[] memory path = new address[](2); path[0] = address(this); path[1] = WBNB; uint256 balanceBefore = address(this).balance; try router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ) {} catch {} uint256 amountBNB = address(this).balance.sub(balanceBefore); try router.addLiquidityETH{value: amountBNB}( address(this), amountToSwap, 0, 0, autoLiquidityReceiver, block.timestamp ) { emit AutoLiquify(amountBNB, amountToSwap); } catch {} } function launch() internal { launchedAt = block.number; _unpause(); } function setTxLimit(uint256 amount) external authorized { require(amount >= _totalSupply / 1000, "Limit too low"); _maxTxAmount = amount; } function setLiquify(bool enabled, uint256 amount) external authorized { require(amount <= 1000 * (10**_decimals)); liquifyEnabled = enabled; liquifyAmount = amount; } function migrateAutoLiquidityDEX(address _router, address _liquifyPair) external authorized { _allowances[address(this)][address(router)] = 0; router = IDEXRouter(_router); liquifyPair = _liquifyPair; hasFee[liquifyPair] = true; _allowances[address(this)][_router] = type(uint256).max; } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { if (isExempt[sender] || isExempt[recipient] || inLiquify) { return false; } return hasFee[sender] || hasFee[recipient]; } function setHasFee(address adr, bool state) external authorized { require(!isExempt[adr], "Is Exempt"); hasFee[adr] = state; } function setIsExempt(address adr, bool state) external authorized { require(!hasFee[adr], "Has Fee"); isExempt[adr] = state; } function setFees( uint256 _liquidityFee, uint256 _devFee, uint256 _feeDenominator ) external authorized { autoLiquidityFee = _liquidityFee; devFee = _devFee; feeDenominator = _feeDenominator; require( autoLiquidityFee.add(devFee).mul(100).div(feeDenominator) <= 10, "Fee Limit Exceeded" ); } function setFeeReceivers( address _autoLiquidityReceiver, address _devFeeReceiver ) external authorized { autoLiquidityReceiver = _autoLiquidityReceiver; devFeeReceiver = _devFeeReceiver; } function setCasino(address casinoContract) external authorized { casino = casinoContract; } function rescue() external authorized { payable(msg.sender).transfer(address(this).balance); } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); }
Contract Security Audit
- TechRate - Feb, 2023 - Security Audit Report
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"adr","type":"address"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"adr","type":"address"}],"name":"Unauthorized","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"casino","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"casinoPay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"casinoTake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifyPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_liquifyPair","type":"address"}],"name":"migrateAutoLiquidityDEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"casinoContract","type":"address"}],"name":"setCasino","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setHasFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126012600a6200045b565b62000022906311e1a3006200051c565b600355620000336012600a6200045b565b6200004290625b8d806200051c565b60049081556009556001600a8181556064600b556013805460ff191690921790915562000072906012906200045b565b6200008190620493e06200051c565b6014553480156200009157600080fd5b50604051620026ab380380620026ab833981016040819052620000b491620003da565b600080546001600160a01b038085166001600160a01b031992831681178455835260016020818152604094859020805460ff19908116841790915560028054909116909217909155600f805492861692909316821790925582516315ab88c960e31b81529251909263ad5c4648926004808301939192829003018186803b1580156200013f57600080fd5b505afa15801562000154573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017a9190620003b5565b601080546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b158015620001d457600080fd5b505afa158015620001e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020f9190620003b5565b6010546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200025c57600080fd5b505af115801562000271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002979190620003b5565b601180546001600160a01b0319166001600160a01b0392831617815530600081815260066020908152604080832087871684528252808320600019905593548516825260078152838220805460ff199081166001908117909255958816808452600883528584208054881683179055938352848320805490961617909455600354828252600585528382208190559251928352909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36040516001600160a01b038316904780156108fc02916000818181858888f193505050501580156200038f573d6000803e3d6000fd5b50505062000554565b80516001600160a01b0381168114620003b057600080fd5b919050565b600060208284031215620003c857600080fd5b620003d38262000398565b9392505050565b60008060408385031215620003ee57600080fd5b620003f98362000398565b9150620004096020840162000398565b90509250929050565b600181815b80851115620004535781600019048211156200043757620004376200053e565b808516156200044557918102915b93841c939080029062000417565b509250929050565b6000620003d360ff841683600082620004775750600162000516565b81620004865750600062000516565b81600181146200049f5760028114620004aa57620004ca565b600191505062000516565b60ff841115620004be57620004be6200053e565b50506001821b62000516565b5060208310610133831016604e8410600b8410161715620004ef575081810a62000516565b620004fb838362000412565b80600019048211156200051257620005126200053e565b0290505b92915050565b60008160001904831182151516156200053957620005396200053e565b500290565b634e487b7160e01b600052601160045260246000fd5b61214780620005646000396000f3fe6080604052600436106102605760003560e01c806390b6b86c11610144578063ca33e64c116100b6578063ed5792d71161007a578063ed5792d7146107ae578063f0b37c04146107c8578063f2fde38b146107e8578063f887ea4014610808578063fe9fbb8014610828578063ff7d74471461084857600080fd5b8063ca33e64c146106e8578063cec10c1114610708578063d7b9cc2414610728578063dab84ee714610748578063dd62ed3e1461076857600080fd5b8063ad5dff7311610108578063ad5dff731461062c578063b5790bbd1461065c578063b60996cd1461067c578063b6a5d7de1461069c578063b9b03590146106bc578063bdc7bcb6146106d257600080fd5b806390b6b86c1461057f5780639403e8dd1461059f57806395d89b41146105bf578063a4b45c00146105ec578063a9059cbb1461060c57600080fd5b8063571ac8b0116101dd57806370a08231116101a157806370a08231146104b05780637497e296146104e65780637d1db4a514610516578063837fdbf21461052c5780638456cb591461054c578063893d20e81461056157600080fd5b8063571ac8b0146104085780635c85974f146104285780635c975abb146104485780636827e764146104625780636c0d72f11461047857600080fd5b80631fbe1979116102245780631fbe19791461037357806323b872dd146103885780632f54bf6e146103a8578063313ce567146103d75780633f4ba83a146103f357600080fd5b806306fdde031461029b57806308ebddeb146102ea578063095ea7b31461030a578063180b0d7e1461033a57806318160ddd1461035e57600080fd5b36610296576010546001600160a01b03163314806102885750600f546001600160a01b031633145b6102945761029461209a565b005b600080fd5b3480156102a757600080fd5b50604080518082019091526014815273041726269526f756c20436173696e6f20436869760641b60208201525b6040516102e19190611e04565b60405180910390f35b3480156102f657600080fd5b50610294610305366004611d75565b610868565b34801561031657600080fd5b5061032a610325366004611d49565b6108d1565b60405190151581526020016102e1565b34801561034657600080fd5b50610350600b5481565b6040519081526020016102e1565b34801561036a57600080fd5b50600354610350565b34801561037f57600080fd5b5061029461093e565b34801561039457600080fd5b5061032a6103a3366004611cd3565b610992565b3480156103b457600080fd5b5061032a6103c3366004611c7d565b6000546001600160a01b0391821691161490565b3480156103e357600080fd5b50604051601281526020016102e1565b3480156103ff57600080fd5b506102946109a7565b34801561041457600080fd5b5061032a610423366004611c7d565b610a21565b34801561043457600080fd5b50610294610443366004611d91565b610a2f565b34801561045457600080fd5b5060025461032a9060ff1681565b34801561046e57600080fd5b50610350600a5481565b34801561048457600080fd5b50601154610498906001600160a01b031681565b6040516001600160a01b0390911681526020016102e1565b3480156104bc57600080fd5b506103506104cb366004611c7d565b6001600160a01b031660009081526005602052604090205490565b3480156104f257600080fd5b5061032a610501366004611c7d565b60076020526000908152604090205460ff1681565b34801561052257600080fd5b5061035060045481565b34801561053857600080fd5b50610294610547366004611c9a565b610aa8565b34801561055857600080fd5b50610294610b42565b34801561056d57600080fd5b506000546001600160a01b0316610498565b34801561058b57600080fd5b5061029461059a366004611d49565b610bea565b3480156105ab57600080fd5b50600e54610498906001600160a01b031681565b3480156105cb57600080fd5b506040805180820190915260048152631493d55360e21b60208201526102d4565b3480156105f857600080fd5b50610294610607366004611c9a565b610c22565b34801561061857600080fd5b5061032a610627366004611d49565b610c75565b34801561063857600080fd5b5061032a610647366004611c7d565b60086020526000908152604090205460ff1681565b34801561066857600080fd5b50610294610677366004611d14565b610c89565b34801561068857600080fd5b50610294610697366004611d14565b610d2c565b3480156106a857600080fd5b506102946106b7366004611c7d565b610dd1565b3480156106c857600080fd5b5061035060145481565b3480156106de57600080fd5b5061035060095481565b3480156106f457600080fd5b50600c54610498906001600160a01b031681565b34801561071457600080fd5b50610294610723366004611daa565b610e52565b34801561073457600080fd5b50610294610743366004611c7d565b610eed565b34801561075457600080fd5b50600d54610498906001600160a01b031681565b34801561077457600080fd5b50610350610783366004611c9a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107ba57600080fd5b5060135461032a9060ff1681565b3480156107d457600080fd5b506102946107e3366004611c7d565b610f34565b3480156107f457600080fd5b50610294610803366004611c7d565b610fc8565b34801561081457600080fd5b50600f54610498906001600160a01b031681565b34801561083457600080fd5b5061032a610843366004611c7d565b611071565b34801561085457600080fd5b50610294610863366004611d49565b61108f565b61087133611071565b6108965760405162461bcd60e51b815260040161088d90611ea6565b60405180910390fd5b6108a26012600a611fb9565b6108ae906103e8612064565b8111156108ba57600080fd5b6013805460ff191692151592909217909155601455565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061092c9086815260200190565b60405180910390a35060015b92915050565b61094733611071565b6109635760405162461bcd60e51b815260040161088d90611ea6565b60405133904780156108fc02916000818181858888f1935050505015801561098f573d6000803e3d6000fd5b50565b600061099f8484846110c3565b949350505050565b60025460ff16806109bc57506109bc33611071565b6109f25760405162461bcd60e51b81526020600482015260076024820152660854105554d15160ca1b604482015260640161088d565b6109fb33611071565b610a175760405162461bcd60e51b815260040161088d90611ea6565b610a1f611389565b565b6000610938826000196108d1565b610a3833611071565b610a545760405162461bcd60e51b815260040161088d90611ea6565b6103e8600354610a649190611f54565b811015610aa35760405162461bcd60e51b815260206004820152600d60248201526c4c696d697420746f6f206c6f7760981b604482015260640161088d565b600455565b610ab133611071565b610acd5760405162461bcd60e51b815260040161088d90611ea6565b306000908152600660209081526040808320600f80546001600160a01b03908116865282855283862086905581546001600160a01b0319908116988216988917909255601180549092169616958617905593835260078252808320805460ff1916600117905593825291909152206000199055565b60025460ff161580610b585750610b5833611071565b610b8d5760405162461bcd60e51b815260206004820152600660248201526514105554d15160d21b604482015260640161088d565b610b9633611071565b610bb25760405162461bcd60e51b815260040161088d90611ea6565b6002805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b600e546001600160a01b03163314610c145760405162461bcd60e51b815260040161088d90611e59565b610c1e82826113be565b5050565b610c2b33611071565b610c475760405162461bcd60e51b815260040161088d90611ea6565b600c80546001600160a01b039384166001600160a01b031991821617909155600d8054929093169116179055565b6000610c823384846110c3565b9392505050565b610c9233611071565b610cae5760405162461bcd60e51b815260040161088d90611ea6565b6001600160a01b03821660009081526007602052604090205460ff1615610d015760405162461bcd60e51b81526020600482015260076024820152664861732046656560c81b604482015260640161088d565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b610d3533611071565b610d515760405162461bcd60e51b815260040161088d90611ea6565b6001600160a01b03821660009081526008602052604090205460ff1615610da65760405162461bcd60e51b8152602060048201526009602482015268125cc8115e195b5c1d60ba1b604482015260640161088d565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610dda33611071565b610df65760405162461bcd60e51b815260040161088d90611ea6565b6001600160a01b038116600081815260016020818152604092839020805460ff191690921790915590519182527fdc84e3a4c83602050e3865df792a4e6800211a79ac60db94e703a820ce89292491015b60405180910390a150565b610e5b33611071565b610e775760405162461bcd60e51b815260040161088d90611ea6565b6009839055600a828155600b829055610ea582610e9f6064610e998888611492565b906114f1565b90611570565b1115610ee85760405162461bcd60e51b815260206004820152601260248201527111995948131a5b5a5d08115e18d95959195960721b604482015260640161088d565b505050565b610ef633611071565b610f125760405162461bcd60e51b815260040161088d90611ea6565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f775760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015260640161088d565b6001600160a01b038116600081815260016020908152604091829020805460ff1916905590519182527f8e4a23d6a5d81f013eca4bc92aeb9214ccafcaebd1f097c350c922d6e19122d59101610e47565b6000546001600160a01b0316331461100b5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015260640161088d565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101610e47565b6001600160a01b031660009081526001602052604090205460ff1690565b600e546001600160a01b031633146110b95760405162461bcd60e51b815260040161088d90611e59565b610c1e82826115b2565b600254600090849060ff1615806110de57506110de81611071565b806110ed57506110ed33611071565b6111255760405162461bcd60e51b8152602060048201526009602482015268141493d51150d5115160ba1b604482015260640161088d565b6111308585856116ed565b6001600160a01b038516331480159061116e57506001600160a01b038516600090815260066020908152604080832033845290915290205460001914155b156111f4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03881660009081526006825283812033825290915291909120546111cf918590611779565b6001600160a01b03861660009081526006602090815260408083203384529091529020555b60125415801561121157506011546001600160a01b038581169116145b1561121e5761121e6117b3565b60006112286117bf565b801561127057506001600160a01b03861660009081526008602052604090205460ff168061126e57506001600160a01b03851660009081526008602052604090205460ff165b155b9050801561128057611280611810565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546112d2918690611779565b6001600160a01b0387166000908152600560205260408120919091556112f88787611a0f565b611302578461130c565b61130c8786611aab565b6001600160a01b0387166000908152600560205260409020549091506113329082611492565b6001600160a01b0380881660008181526005602052604090819020939093559151908916906000805160206120f2833981519152906113749085815260200190565b60405180910390a35060019695505050505050565b6002805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b6001600160a01b0382166114145760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161088d565b6003546114219082611492565b6003556001600160a01b0382166000908152600560205260409020546114479082611492565b6001600160a01b0383166000818152600560205260408082209390935591519091906000805160206120f2833981519152906114869085815260200190565b60405180910390a35050565b60008061149f8385611f3c565b905083811015610c825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161088d565b60008261150057506000610938565b600061150c8385612064565b9050826115198583611f54565b14610c825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161088d565b6000610c8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bbe565b6001600160a01b0382166116125760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161088d565b6001600160a01b038216600090815260056020526040902054818110156116865760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161088d565b6116908183611bec565b6001600160a01b0384166000908152600560205260409020556003546116b69083611bec565b6003556040518281526000906001600160a01b038516906000805160206120f28339815191529060200160405180910390a3505050565b6004548111158061171657506001600160a01b03831660009081526008602052604090205460ff165b8061173957506001600160a01b03821660009081526008602052604090205460ff165b610ee85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161088d565b6000818484111561179d5760405162461bcd60e51b815260040161088d9190611e04565b5060006117aa8486612083565b95945050505050565b43601255610a1f611389565b6011546000906001600160a01b031633148015906117e0575060155460ff16155b80156117ee575060135460ff165b801561180b57506014543060009081526005602052604090205410155b905090565b6015805460ff1916600117905560145460009061182e906002611570565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611868576118686120c6565b6001600160a01b039283166020918202929092010152601054825191169082906001908110611899576118996120c6565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b81524792919091169063791ac947906118e3908690600090879030904290600401611ecb565b600060405180830381600087803b1580156118fd57600080fd5b505af192505050801561190e575060015b50600061191b4783611bec565b600f54600c5460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350169063f305d71990839060c4016060604051808303818588803b15801561198857600080fd5b505af1935050505080156119b9575060408051601f3d908101601f191682019092526119b691810190611dd6565b60015b6119c2576119ff565b505060408051838152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506015805460ff191690555050565b6001600160a01b03821660009081526008602052604081205460ff1680611a4e57506001600160a01b03821660009081526008602052604090205460ff165b80611a5b575060155460ff165b15611a6857506000610938565b6001600160a01b03831660009081526007602052604090205460ff1680610c825750506001600160a01b031660009081526007602052604090205460ff16919050565b600080611ac6600b54610e9f611abf611c2e565b86906114f1565b90506000611ae5600b54610e9f600a54876114f190919063ffffffff16565b30600090815260056020526040902054909150611b029083611492565b3060009081526005602052604080822092909255600d546001600160a01b031681522054611b309082611492565b600d546001600160a01b0390811660009081526005602090815260409182902093909355518481523092918816916000805160206120f2833981519152910160405180910390a3600d546040518281526001600160a01b03918216918716906000805160206120f28339815191529060200160405180910390a36117aa81611bb88685611bec565b90611bec565b60008183611bdf5760405162461bcd60e51b815260040161088d9190611e04565b5060006117aa8486611f54565b6000610c8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611779565b6000436012546001611c409190611f3c565b10611c615761180b6001611bb8600a54600b54611bec90919063ffffffff16565b5060095490565b80358015158114611c7857600080fd5b919050565b600060208284031215611c8f57600080fd5b8135610c82816120dc565b60008060408385031215611cad57600080fd5b8235611cb8816120dc565b91506020830135611cc8816120dc565b809150509250929050565b600080600060608486031215611ce857600080fd5b8335611cf3816120dc565b92506020840135611d03816120dc565b929592945050506040919091013590565b60008060408385031215611d2757600080fd5b8235611d32816120dc565b9150611d4060208401611c68565b90509250929050565b60008060408385031215611d5c57600080fd5b8235611d67816120dc565b946020939093013593505050565b60008060408385031215611d8857600080fd5b611d6783611c68565b600060208284031215611da357600080fd5b5035919050565b600080600060608486031215611dbf57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611deb57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611e3157858101830151858201604001528201611e15565b81811115611e43576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252602d908201527f4f6e6c7920636173696e6f20636f6e74726163742063616e2063616c6c20746860408201526c6573652066756e6374696f6e7360981b606082015260800190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f1b5784516001600160a01b031683529383019391830191600101611ef6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f4f57611f4f6120b0565b500190565b600082611f7157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611fb1578160001904821115611f9757611f976120b0565b80851615611fa457918102915b93841c9390800290611f7b565b509250929050565b6000610c8260ff841683600082611fd257506001610938565b81611fdf57506000610938565b8160018114611ff55760028114611fff5761201b565b6001915050610938565b60ff841115612010576120106120b0565b50506001821b610938565b5060208310610133831016604e8410600b841016171561203e575081810a610938565b6120488383611f76565b806000190482111561205c5761205c6120b0565b029392505050565b600081600019048311821515161561207e5761207e6120b0565b500290565b600082821015612095576120956120b0565b500390565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461098f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122085a895f7cb73410a1bf23e17b68eb5366b7f2a596df677ff9a989fbf8f7a14c864736f6c6343000807003300000000000000000000000085b6d0a0623e3ec7dde67e2274baa74d553ec5e80000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506
Deployed Bytecode
0x6080604052600436106102605760003560e01c806390b6b86c11610144578063ca33e64c116100b6578063ed5792d71161007a578063ed5792d7146107ae578063f0b37c04146107c8578063f2fde38b146107e8578063f887ea4014610808578063fe9fbb8014610828578063ff7d74471461084857600080fd5b8063ca33e64c146106e8578063cec10c1114610708578063d7b9cc2414610728578063dab84ee714610748578063dd62ed3e1461076857600080fd5b8063ad5dff7311610108578063ad5dff731461062c578063b5790bbd1461065c578063b60996cd1461067c578063b6a5d7de1461069c578063b9b03590146106bc578063bdc7bcb6146106d257600080fd5b806390b6b86c1461057f5780639403e8dd1461059f57806395d89b41146105bf578063a4b45c00146105ec578063a9059cbb1461060c57600080fd5b8063571ac8b0116101dd57806370a08231116101a157806370a08231146104b05780637497e296146104e65780637d1db4a514610516578063837fdbf21461052c5780638456cb591461054c578063893d20e81461056157600080fd5b8063571ac8b0146104085780635c85974f146104285780635c975abb146104485780636827e764146104625780636c0d72f11461047857600080fd5b80631fbe1979116102245780631fbe19791461037357806323b872dd146103885780632f54bf6e146103a8578063313ce567146103d75780633f4ba83a146103f357600080fd5b806306fdde031461029b57806308ebddeb146102ea578063095ea7b31461030a578063180b0d7e1461033a57806318160ddd1461035e57600080fd5b36610296576010546001600160a01b03163314806102885750600f546001600160a01b031633145b6102945761029461209a565b005b600080fd5b3480156102a757600080fd5b50604080518082019091526014815273041726269526f756c20436173696e6f20436869760641b60208201525b6040516102e19190611e04565b60405180910390f35b3480156102f657600080fd5b50610294610305366004611d75565b610868565b34801561031657600080fd5b5061032a610325366004611d49565b6108d1565b60405190151581526020016102e1565b34801561034657600080fd5b50610350600b5481565b6040519081526020016102e1565b34801561036a57600080fd5b50600354610350565b34801561037f57600080fd5b5061029461093e565b34801561039457600080fd5b5061032a6103a3366004611cd3565b610992565b3480156103b457600080fd5b5061032a6103c3366004611c7d565b6000546001600160a01b0391821691161490565b3480156103e357600080fd5b50604051601281526020016102e1565b3480156103ff57600080fd5b506102946109a7565b34801561041457600080fd5b5061032a610423366004611c7d565b610a21565b34801561043457600080fd5b50610294610443366004611d91565b610a2f565b34801561045457600080fd5b5060025461032a9060ff1681565b34801561046e57600080fd5b50610350600a5481565b34801561048457600080fd5b50601154610498906001600160a01b031681565b6040516001600160a01b0390911681526020016102e1565b3480156104bc57600080fd5b506103506104cb366004611c7d565b6001600160a01b031660009081526005602052604090205490565b3480156104f257600080fd5b5061032a610501366004611c7d565b60076020526000908152604090205460ff1681565b34801561052257600080fd5b5061035060045481565b34801561053857600080fd5b50610294610547366004611c9a565b610aa8565b34801561055857600080fd5b50610294610b42565b34801561056d57600080fd5b506000546001600160a01b0316610498565b34801561058b57600080fd5b5061029461059a366004611d49565b610bea565b3480156105ab57600080fd5b50600e54610498906001600160a01b031681565b3480156105cb57600080fd5b506040805180820190915260048152631493d55360e21b60208201526102d4565b3480156105f857600080fd5b50610294610607366004611c9a565b610c22565b34801561061857600080fd5b5061032a610627366004611d49565b610c75565b34801561063857600080fd5b5061032a610647366004611c7d565b60086020526000908152604090205460ff1681565b34801561066857600080fd5b50610294610677366004611d14565b610c89565b34801561068857600080fd5b50610294610697366004611d14565b610d2c565b3480156106a857600080fd5b506102946106b7366004611c7d565b610dd1565b3480156106c857600080fd5b5061035060145481565b3480156106de57600080fd5b5061035060095481565b3480156106f457600080fd5b50600c54610498906001600160a01b031681565b34801561071457600080fd5b50610294610723366004611daa565b610e52565b34801561073457600080fd5b50610294610743366004611c7d565b610eed565b34801561075457600080fd5b50600d54610498906001600160a01b031681565b34801561077457600080fd5b50610350610783366004611c9a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107ba57600080fd5b5060135461032a9060ff1681565b3480156107d457600080fd5b506102946107e3366004611c7d565b610f34565b3480156107f457600080fd5b50610294610803366004611c7d565b610fc8565b34801561081457600080fd5b50600f54610498906001600160a01b031681565b34801561083457600080fd5b5061032a610843366004611c7d565b611071565b34801561085457600080fd5b50610294610863366004611d49565b61108f565b61087133611071565b6108965760405162461bcd60e51b815260040161088d90611ea6565b60405180910390fd5b6108a26012600a611fb9565b6108ae906103e8612064565b8111156108ba57600080fd5b6013805460ff191692151592909217909155601455565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061092c9086815260200190565b60405180910390a35060015b92915050565b61094733611071565b6109635760405162461bcd60e51b815260040161088d90611ea6565b60405133904780156108fc02916000818181858888f1935050505015801561098f573d6000803e3d6000fd5b50565b600061099f8484846110c3565b949350505050565b60025460ff16806109bc57506109bc33611071565b6109f25760405162461bcd60e51b81526020600482015260076024820152660854105554d15160ca1b604482015260640161088d565b6109fb33611071565b610a175760405162461bcd60e51b815260040161088d90611ea6565b610a1f611389565b565b6000610938826000196108d1565b610a3833611071565b610a545760405162461bcd60e51b815260040161088d90611ea6565b6103e8600354610a649190611f54565b811015610aa35760405162461bcd60e51b815260206004820152600d60248201526c4c696d697420746f6f206c6f7760981b604482015260640161088d565b600455565b610ab133611071565b610acd5760405162461bcd60e51b815260040161088d90611ea6565b306000908152600660209081526040808320600f80546001600160a01b03908116865282855283862086905581546001600160a01b0319908116988216988917909255601180549092169616958617905593835260078252808320805460ff1916600117905593825291909152206000199055565b60025460ff161580610b585750610b5833611071565b610b8d5760405162461bcd60e51b815260206004820152600660248201526514105554d15160d21b604482015260640161088d565b610b9633611071565b610bb25760405162461bcd60e51b815260040161088d90611ea6565b6002805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b600e546001600160a01b03163314610c145760405162461bcd60e51b815260040161088d90611e59565b610c1e82826113be565b5050565b610c2b33611071565b610c475760405162461bcd60e51b815260040161088d90611ea6565b600c80546001600160a01b039384166001600160a01b031991821617909155600d8054929093169116179055565b6000610c823384846110c3565b9392505050565b610c9233611071565b610cae5760405162461bcd60e51b815260040161088d90611ea6565b6001600160a01b03821660009081526007602052604090205460ff1615610d015760405162461bcd60e51b81526020600482015260076024820152664861732046656560c81b604482015260640161088d565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b610d3533611071565b610d515760405162461bcd60e51b815260040161088d90611ea6565b6001600160a01b03821660009081526008602052604090205460ff1615610da65760405162461bcd60e51b8152602060048201526009602482015268125cc8115e195b5c1d60ba1b604482015260640161088d565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610dda33611071565b610df65760405162461bcd60e51b815260040161088d90611ea6565b6001600160a01b038116600081815260016020818152604092839020805460ff191690921790915590519182527fdc84e3a4c83602050e3865df792a4e6800211a79ac60db94e703a820ce89292491015b60405180910390a150565b610e5b33611071565b610e775760405162461bcd60e51b815260040161088d90611ea6565b6009839055600a828155600b829055610ea582610e9f6064610e998888611492565b906114f1565b90611570565b1115610ee85760405162461bcd60e51b815260206004820152601260248201527111995948131a5b5a5d08115e18d95959195960721b604482015260640161088d565b505050565b610ef633611071565b610f125760405162461bcd60e51b815260040161088d90611ea6565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f775760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015260640161088d565b6001600160a01b038116600081815260016020908152604091829020805460ff1916905590519182527f8e4a23d6a5d81f013eca4bc92aeb9214ccafcaebd1f097c350c922d6e19122d59101610e47565b6000546001600160a01b0316331461100b5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015260640161088d565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101610e47565b6001600160a01b031660009081526001602052604090205460ff1690565b600e546001600160a01b031633146110b95760405162461bcd60e51b815260040161088d90611e59565b610c1e82826115b2565b600254600090849060ff1615806110de57506110de81611071565b806110ed57506110ed33611071565b6111255760405162461bcd60e51b8152602060048201526009602482015268141493d51150d5115160ba1b604482015260640161088d565b6111308585856116ed565b6001600160a01b038516331480159061116e57506001600160a01b038516600090815260066020908152604080832033845290915290205460001914155b156111f4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03881660009081526006825283812033825290915291909120546111cf918590611779565b6001600160a01b03861660009081526006602090815260408083203384529091529020555b60125415801561121157506011546001600160a01b038581169116145b1561121e5761121e6117b3565b60006112286117bf565b801561127057506001600160a01b03861660009081526008602052604090205460ff168061126e57506001600160a01b03851660009081526008602052604090205460ff165b155b9050801561128057611280611810565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546112d2918690611779565b6001600160a01b0387166000908152600560205260408120919091556112f88787611a0f565b611302578461130c565b61130c8786611aab565b6001600160a01b0387166000908152600560205260409020549091506113329082611492565b6001600160a01b0380881660008181526005602052604090819020939093559151908916906000805160206120f2833981519152906113749085815260200190565b60405180910390a35060019695505050505050565b6002805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b6001600160a01b0382166114145760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161088d565b6003546114219082611492565b6003556001600160a01b0382166000908152600560205260409020546114479082611492565b6001600160a01b0383166000818152600560205260408082209390935591519091906000805160206120f2833981519152906114869085815260200190565b60405180910390a35050565b60008061149f8385611f3c565b905083811015610c825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161088d565b60008261150057506000610938565b600061150c8385612064565b9050826115198583611f54565b14610c825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161088d565b6000610c8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bbe565b6001600160a01b0382166116125760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161088d565b6001600160a01b038216600090815260056020526040902054818110156116865760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161088d565b6116908183611bec565b6001600160a01b0384166000908152600560205260409020556003546116b69083611bec565b6003556040518281526000906001600160a01b038516906000805160206120f28339815191529060200160405180910390a3505050565b6004548111158061171657506001600160a01b03831660009081526008602052604090205460ff165b8061173957506001600160a01b03821660009081526008602052604090205460ff165b610ee85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161088d565b6000818484111561179d5760405162461bcd60e51b815260040161088d9190611e04565b5060006117aa8486612083565b95945050505050565b43601255610a1f611389565b6011546000906001600160a01b031633148015906117e0575060155460ff16155b80156117ee575060135460ff165b801561180b57506014543060009081526005602052604090205410155b905090565b6015805460ff1916600117905560145460009061182e906002611570565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611868576118686120c6565b6001600160a01b039283166020918202929092010152601054825191169082906001908110611899576118996120c6565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b81524792919091169063791ac947906118e3908690600090879030904290600401611ecb565b600060405180830381600087803b1580156118fd57600080fd5b505af192505050801561190e575060015b50600061191b4783611bec565b600f54600c5460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350169063f305d71990839060c4016060604051808303818588803b15801561198857600080fd5b505af1935050505080156119b9575060408051601f3d908101601f191682019092526119b691810190611dd6565b60015b6119c2576119ff565b505060408051838152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506015805460ff191690555050565b6001600160a01b03821660009081526008602052604081205460ff1680611a4e57506001600160a01b03821660009081526008602052604090205460ff165b80611a5b575060155460ff165b15611a6857506000610938565b6001600160a01b03831660009081526007602052604090205460ff1680610c825750506001600160a01b031660009081526007602052604090205460ff16919050565b600080611ac6600b54610e9f611abf611c2e565b86906114f1565b90506000611ae5600b54610e9f600a54876114f190919063ffffffff16565b30600090815260056020526040902054909150611b029083611492565b3060009081526005602052604080822092909255600d546001600160a01b031681522054611b309082611492565b600d546001600160a01b0390811660009081526005602090815260409182902093909355518481523092918816916000805160206120f2833981519152910160405180910390a3600d546040518281526001600160a01b03918216918716906000805160206120f28339815191529060200160405180910390a36117aa81611bb88685611bec565b90611bec565b60008183611bdf5760405162461bcd60e51b815260040161088d9190611e04565b5060006117aa8486611f54565b6000610c8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611779565b6000436012546001611c409190611f3c565b10611c615761180b6001611bb8600a54600b54611bec90919063ffffffff16565b5060095490565b80358015158114611c7857600080fd5b919050565b600060208284031215611c8f57600080fd5b8135610c82816120dc565b60008060408385031215611cad57600080fd5b8235611cb8816120dc565b91506020830135611cc8816120dc565b809150509250929050565b600080600060608486031215611ce857600080fd5b8335611cf3816120dc565b92506020840135611d03816120dc565b929592945050506040919091013590565b60008060408385031215611d2757600080fd5b8235611d32816120dc565b9150611d4060208401611c68565b90509250929050565b60008060408385031215611d5c57600080fd5b8235611d67816120dc565b946020939093013593505050565b60008060408385031215611d8857600080fd5b611d6783611c68565b600060208284031215611da357600080fd5b5035919050565b600080600060608486031215611dbf57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611deb57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611e3157858101830151858201604001528201611e15565b81811115611e43576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252602d908201527f4f6e6c7920636173696e6f20636f6e74726163742063616e2063616c6c20746860408201526c6573652066756e6374696f6e7360981b606082015260800190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f1b5784516001600160a01b031683529383019391830191600101611ef6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f4f57611f4f6120b0565b500190565b600082611f7157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611fb1578160001904821115611f9757611f976120b0565b80851615611fa457918102915b93841c9390800290611f7b565b509250929050565b6000610c8260ff841683600082611fd257506001610938565b81611fdf57506000610938565b8160018114611ff55760028114611fff5761201b565b6001915050610938565b60ff841115612010576120106120b0565b50506001821b610938565b5060208310610133831016604e8410600b841016171561203e575081810a610938565b6120488383611f76565b806000190482111561205c5761205c6120b0565b029392505050565b600081600019048311821515161561207e5761207e6120b0565b500290565b600082821015612095576120956120b0565b500390565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461098f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122085a895f7cb73410a1bf23e17b68eb5366b7f2a596df677ff9a989fbf8f7a14c864736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000085b6d0a0623e3ec7dde67e2274baa74d553ec5e80000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506
-----Decoded View---------------
Arg [0] : _owner (address): 0x85b6D0a0623E3ec7DdE67e2274BAA74D553EC5e8
Arg [1] : _router (address): 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000085b6d0a0623e3ec7dde67e2274baa74d553ec5e8
Arg [1] : 0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506
Deployed ByteCode Sourcemap
6217:11078:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8055:4;;-1:-1:-1;;;;;8055:4:0;8041:10;:18;;:51;;-1:-1:-1;8085:6:0;;-1:-1:-1;;;;;8085:6:0;8063:10;:29;8041:51;8034:59;;;;:::i;:::-;6217:11078;;;;;8805:94;;;;;;;;;;-1:-1:-1;8886:5:0;;;;;;;;;;;;-1:-1:-1;;;8886:5:0;;;;8805:94;;;;;;;:::i;:::-;;;;;;;;15170:198;;;;;;;;;;-1:-1:-1;15170:198:0;;;;;:::i;:::-;;:::i;9373:248::-;;;;;;;;;;-1:-1:-1;9373:248:0;;;;;:::i;:::-;;:::i;:::-;;;4456:14:1;;4449:22;4431:41;;4419:2;4404:18;9373:248:0;4291:187:1;6860:35:0;;;;;;;;;;;;;;;;;;;11181:25:1;;;11169:2;11154:18;6860:35:0;11035:177:1;8487:102:0;;;;;;;;;;-1:-1:-1;8569:12:0;;8487:102;;17120:108;;;;;;;;;;;;;:::i;9955:206::-;;;;;;;;;;-1:-1:-1;9955:206:0;;;;;:::i;:::-;;:::i;3687:103::-;;;;;;;;;;-1:-1:-1;3687:103:0;;;;;:::i;:::-;3742:4;3777:5;-1:-1:-1;;;;;3766:16:0;;;3777:5;;3766:16;;3687:103;8597:94;;;;;;;;;;-1:-1:-1;8597:94:0;;6424:2;12597:36:1;;12585:2;12570:18;8597:94:0;12455:184:1;4907:77:0;;;;;;;;;;;;;:::i;9629:122::-;;;;;;;;;;-1:-1:-1;9629:122:0;;;;;:::i;:::-;;:::i;15000:162::-;;;;;;;;;;-1:-1:-1;15000:162:0;;;;;:::i;:::-;;:::i;4471:18::-;;;;;;;;;;-1:-1:-1;4471:18:0;;;;;;;;6828:25;;;;;;;;;;;;;;;;7073:26;;;;;;;;;;-1:-1:-1;7073:26:0;;;;-1:-1:-1;;;;;7073:26:0;;;;;;-1:-1:-1;;;;;3419:32:1;;;3401:51;;3389:2;3374:18;7073:26:0;3255:203:1;9007:162:0;;;;;;;;;;-1:-1:-1;9007:162:0;;;;;:::i;:::-;-1:-1:-1;;;;;9143:18:0;9111:7;9143:18;;;:9;:18;;;;;;;9007:162;6692:38;;;;;;;;;;-1:-1:-1;6692:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6500:55;;;;;;;;;;;;;;;;15376:360;;;;;;;;;;-1:-1:-1;15376:360:0;;;;;:::i;:::-;;:::i;4796:103::-;;;;;;;;;;;;;:::i;8907:92::-;;;;;;;;;;-1:-1:-1;8959:7:0;8986:5;-1:-1:-1;;;;;8986:5:0;8907:92;;10169:113;;;;;;;;;;-1:-1:-1;10169:113:0;;;;;:::i;:::-;;:::i;6985:21::-;;;;;;;;;;-1:-1:-1;6985:21:0;;;;-1:-1:-1;;;;;6985:21:0;;;8699:98;;;;;;;;;;-1:-1:-1;8782:7:0;;;;;;;;;;;;-1:-1:-1;;;8782:7:0;;;;8699:98;;16764:235;;;;;;;;;;-1:-1:-1;16764:235:0;;;;;:::i;:::-;;:::i;9759:188::-;;;;;;;;;;-1:-1:-1;9759:188:0;;;;;:::i;:::-;;:::i;6737:40::-;;;;;;;;;;-1:-1:-1;6737:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16196:149;;;;;;;;;;-1:-1:-1;16196:149:0;;;;;:::i;:::-;;:::i;16039:::-;;;;;;;;;;-1:-1:-1;16039:149:0;;;;;:::i;:::-;;:::i;3295:126::-;;;;;;;;;;-1:-1:-1;3295:126:0;;;;;:::i;:::-;;:::i;7175:55::-;;;;;;;;;;;;;;;;6786:35;;;;;;;;;;;;;;;;6904:36;;;;;;;;;;-1:-1:-1;6904:36:0;;;;-1:-1:-1;;;;;6904:36:0;;;16353:403;;;;;;;;;;-1:-1:-1;16353:403:0;;;;;:::i;:::-;;:::i;17007:105::-;;;;;;;;;;-1:-1:-1;17007:105:0;;;;;:::i;:::-;;:::i;6947:29::-;;;;;;;;;;-1:-1:-1;6947:29:0;;;;-1:-1:-1;;;;;6947:29:0;;;9177:188;;;;;;;;;;-1:-1:-1;9177:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;9329:19:0;;;9297:7;9329:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9177:188;7135:33;;;;;;;;;;-1:-1:-1;7135:33:0;;;;;;;;3497:130;;;;;;;;;;-1:-1:-1;3497:130:0;;;;;:::i;:::-;;:::i;4059:173::-;;;;;;;;;;-1:-1:-1;4059:173:0;;;;;:::i;:::-;;:::i;7015:24::-;;;;;;;;;;-1:-1:-1;7015:24:0;;;;-1:-1:-1;;;;;7015:24:0;;;3861:107;;;;;;;;;;-1:-1:-1;3861:107:0;;;;;:::i;:::-;;:::i;10290:114::-;;;;;;;;;;-1:-1:-1;10290:114:0;;;;;:::i;:::-;;:::i;15170:198::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;;;;;;;;;15277:13:::1;6424:2;15277;:13;:::i;:::-;15269:22;::::0;:4:::1;:22;:::i;:::-;15259:6;:32;;15251:41;;;::::0;::::1;;15303:14;:24:::0;;-1:-1:-1;;15303:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;15338:13:::1;:22:::0;15170:198::o;9373:248::-;9509:10;9475:4;9497:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9497:32:0;;;;;;;;;;:41;;;9554:37;9475:4;;9497:32;;9554:37;;;;9532:6;11181:25:1;;11169:2;11154:18;;11035:177;9554:37:0;;;;;;;;-1:-1:-1;9609:4:0;9373:248;;;;;:::o;17120:108::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;17169:51:::1;::::0;17177:10:::1;::::0;17198:21:::1;17169:51:::0;::::1;;;::::0;::::1;::::0;;;17198:21;17177:10;17169:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17120:108::o:0;9955:206::-;10089:4;10113:40;10127:6;10135:9;10146:6;10113:13;:40::i;:::-;10106:47;9955:206;-1:-1:-1;;;;9955:206:0:o;4907:77::-;4608:6;;;;;:34;;;4618:24;4631:10;4618:12;:24::i;:::-;4600:54;;;;-1:-1:-1;;;4600:54:0;;9531:2:1;4600:54:0;;;9513:21:1;9570:1;9550:18;;;9543:29;-1:-1:-1;;;9588:18:1;;;9581:37;9635:18;;4600:54:0;9329:330:1;4600:54:0;3159:24:::1;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1::0;;;3151:48:0::1;;;;;;;:::i;:::-;4966:10:::2;:8;:10::i;:::-;4907:77::o:0;9629:122::-;9684:4;9708:35;9716:7;-1:-1:-1;;9708:7:0;:35::i;15000:162::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;15100:4:::1;15085:12;;:19;;;;:::i;:::-;15075:6;:29;;15067:55;;;::::0;-1:-1:-1;;;15067:55:0;;8787:2:1;15067:55:0::1;::::0;::::1;8769:21:1::0;8826:2;8806:18;;;8799:30;-1:-1:-1;;;8845:18:1;;;8838:43;8898:18;;15067:55:0::1;8585:337:1::0;15067:55:0::1;15133:12;:21:::0;15000:162::o;15376:360::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;15522:4:::1;15548:1;15502:26:::0;;;:11:::1;:26;::::0;;;;;;;15537:6:::1;::::0;;-1:-1:-1;;;;;15537:6:0;;::::1;15502:43:::0;;;;;;;;:47;;;15560:28;;-1:-1:-1;;;;;;15560:28:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;15599:11:::1;:26:::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;15636:19;;;:6:::1;:19:::0;;;;;:26;;-1:-1:-1;;15636:26:0::1;-1:-1:-1::0;15636:26:0::1;::::0;;15673:35;;;;;;;;-1:-1:-1;;15673:55:0;;15376:360::o;4796:103::-;4723:6;;;;4722:7;;:35;;;4733:24;4746:10;4733:12;:24::i;:::-;4714:54;;;;-1:-1:-1;;;4714:54:0;;5513:2:1;4714:54:0;;;5495:21:1;5552:1;5532:18;;;5525:29;-1:-1:-1;;;5570:18:1;;;5563:36;5616:18;;4714:54:0;5311:329:1;4714:54:0;3159:24:::1;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1::0;;;3151:48:0::1;;;;;;;:::i;:::-;4854:6:::2;:13:::0;;-1:-1:-1;;4854:13:0::2;4863:4;4854:13;::::0;;4883:8:::2;::::0;::::2;::::0;4854:6:::2;::::0;4883:8:::2;4796:103::o:0;10169:113::-;8380:6;;-1:-1:-1;;;;;8380:6:0;8366:10;:20;8344:115;;;;-1:-1:-1;;;8344:115:0;;;;;;;:::i;:::-;10252:22:::1;10258:7;10267:6;10252:5;:22::i;:::-;10169:113:::0;;:::o;16764:235::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;16902:21:::1;:46:::0;;-1:-1:-1;;;;;16902:46:0;;::::1;-1:-1:-1::0;;;;;;16902:46:0;;::::1;;::::0;;;16959:14:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;16764:235::o;9759:188::-;9866:4;9895:44;9909:10;9921:9;9932:6;9895:13;:44::i;:::-;9888:51;9759:188;-1:-1:-1;;;9759:188:0:o;16196:149::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16282:11:0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;::::1;;16281:12;16273:32;;;::::0;-1:-1:-1;;;16273:32:0;;8452:2:1;16273:32:0::1;::::0;::::1;8434:21:1::0;8491:1;8471:18;;;8464:29;-1:-1:-1;;;8509:18:1;;;8502:37;8556:18;;16273:32:0::1;8250:330:1::0;16273:32:0::1;-1:-1:-1::0;;;;;16316:13:0;;;::::1;;::::0;;;:8:::1;:13;::::0;;;;:21;;-1:-1:-1;;16316:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16196:149::o;16039:::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16123:13:0;::::1;;::::0;;;:8:::1;:13;::::0;;;;;::::1;;16122:14;16114:36;;;::::0;-1:-1:-1;;;16114:36:0;;10200:2:1;16114:36:0::1;::::0;::::1;10182:21:1::0;10239:1;10219:18;;;10212:29;-1:-1:-1;;;10257:18:1;;;10250:39;10306:18;;16114:36:0::1;9998:332:1::0;16114:36:0::1;-1:-1:-1::0;;;;;16161:11:0;;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:19;;-1:-1:-1;;16161:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16039:149::o;3295:126::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3356:19:0;::::1;;::::0;;;3378:4:::1;3356:19;::::0;;;;;;;;:26;;-1:-1:-1;;3356:26:0::1;::::0;;::::1;::::0;;;3398:15;;3401:51:1;;;3398:15:0::1;::::0;3374:18:1;3398:15:0::1;;;;;;;;3295:126:::0;:::o;16353:403::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;16500:16:::1;:32:::0;;;16543:6:::1;:16:::0;;;16572:14:::1;:32:::0;;;16639:57:::1;16589:15:::0;16639:37:::1;16672:3;16639:28;16519:13:::0;16552:7;16639:20:::1;:28::i;:::-;:32:::0;::::1;:37::i;:::-;:41:::0;::::1;:57::i;:::-;:63;;16617:131;;;::::0;-1:-1:-1;;;16617:131:0;;6261:2:1;16617:131:0::1;::::0;::::1;6243:21:1::0;6300:2;6280:18;;;6273:30;-1:-1:-1;;;6319:18:1;;;6312:48;6377:18;;16617:131:0::1;6059:342:1::0;16617:131:0::1;16353:403:::0;;;:::o;17007:105::-;3159:24;3172:10;3159:12;:24::i;:::-;3151:48;;;;-1:-1:-1;;;3151:48:0;;;;;;;:::i;:::-;17081:6:::1;:23:::0;;-1:-1:-1;;;;;;17081:23:0::1;-1:-1:-1::0;;;;;17081:23:0;;;::::1;::::0;;;::::1;::::0;;17007:105::o;3497:130::-;3742:4;3777:5;-1:-1:-1;;;;;3777:5:0;2989:10;3766:16;2973:38;;;;-1:-1:-1;;;2973:38:0;;9866:2:1;2973:38:0;;;9848:21:1;9905:1;9885:18;;;9878:29;-1:-1:-1;;;9923:18:1;;;9916:36;9969:18;;2973:38:0;9664:329:1;2973:38:0;-1:-1:-1;;;;;3559:19:0;::::1;3581:5;3559:19:::0;;;:14:::1;:19;::::0;;;;;;;;:27;;-1:-1:-1;;3559:27:0::1;::::0;;3602:17;;3401:51:1;;;3602:17:0::1;::::0;3374:18:1;3602:17:0::1;3255:203:1::0;4059:173:0;3742:4;3777:5;-1:-1:-1;;;;;3777:5:0;2989:10;3766:16;2973:38;;;;-1:-1:-1;;;2973:38:0;;9866:2:1;2973:38:0;;;9848:21:1;9905:1;9885:18;;;9878:29;-1:-1:-1;;;9923:18:1;;;9916:36;9969:18;;2973:38:0;9664:329:1;2973:38:0;4135:5:::1;:11:::0;;-1:-1:-1;;;;;;4135:11:0::1;-1:-1:-1::0;;;;;4135:11:0;::::1;::::0;;::::1;::::0;;4157:19;;;-1:-1:-1;4157:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4157:26:0::1;::::0;;::::1;::::0;;;4199:25;;3401:51:1;;;4199:25:0::1;::::0;3374:18:1;4199:25:0::1;3255:203:1::0;3861:107:0;-1:-1:-1;;;;;3941:19:0;3917:4;3941:19;;;:14;:19;;;;;;;;;3861:107::o;10290:114::-;8380:6;;-1:-1:-1;;;;;8380:6:0;8366:10;:20;8344:115;;;;-1:-1:-1;;;8344:115:0;;;;;;;:::i;:::-;10374:22:::1;10380:7;10389:6;10374:5;:22::i;11298:1187::-:0;8188:6;;11452:4;;11435:6;;8188;;8187:7;;:31;;;8198:20;8211:6;8198:12;:20::i;:::-;8187:59;;;;8222:24;8235:10;8222:12;:24::i;:::-;8165:118;;;;-1:-1:-1;;;8165:118:0;;8115:2:1;8165:118:0;;;8097:21:1;8154:1;8134:18;;;8127:29;-1:-1:-1;;;8172:18:1;;;8165:39;8221:18;;8165:118:0;7913:332:1;8165:118:0;11469:39:::1;11482:6;11490:9;11501:6;11469:12;:39::i;:::-;-1:-1:-1::0;;;;;11539:20:0;::::1;11549:10;11539:20;::::0;::::1;::::0;:89:::1;;-1:-1:-1::0;;;;;;11576:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;11596:10:::1;11576:31:::0;;;;;;;;-1:-1:-1;;11576:52:0::1;;11539:89;11521:267;;;11689:87;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;11689:87:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;11689:19:0;::::1;-1:-1:-1::0;11689:19:0;;;:11:::1;:19:::0;;;;;11709:10:::1;11689:31:::0;;;;;;;;;;:87:::1;::::0;11743:6;;11689:53:::1;:87::i;:::-;-1:-1:-1::0;;;;;11655:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;11675:10:::1;11655:31:::0;;;;;;;:121;11521:267:::1;11804:10;::::0;:15;:43;::::1;;;-1:-1:-1::0;11836:11:0::1;::::0;-1:-1:-1;;;;;11823:24:0;;::::1;11836:11:::0;::::1;11823:24;11804:43;11800:84;;;11864:8;:6;:8::i;:::-;11896:18;11917:19;:17;:19::i;:::-;:78;;;;-1:-1:-1::0;;;;;;11955:16:0;::::1;;::::0;;;:8:::1;:16;::::0;;;;;::::1;;::::0;:39:::1;;-1:-1:-1::0;;;;;;11975:19:0;::::1;;::::0;;;:8:::1;:19;::::0;;;;;::::1;;11955:39;11953:42;11917:78;11896:99;;12010:13;12006:59;;;12040:13;:11;:13::i;:::-;12097:90;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;12097:90:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;12097:17:0;::::1;-1:-1:-1::0;12097:17:0;;;:9:::1;:17:::0;;;;;;;;:90:::1;::::0;12133:6;;12097:21:::1;:90::i;:::-;-1:-1:-1::0;;;;;12077:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;:110;;;;12225:32:::1;12087:6:::0;12247:9;12225:13:::1;:32::i;:::-;:93;;12312:6;12225:93;;;12273:23;12281:6;12289;12273:7;:23::i;:::-;-1:-1:-1::0;;;;;12354:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;12200:118;;-1:-1:-1;12354:40:0::1;::::0;12200:118;12354:24:::1;:40::i;:::-;-1:-1:-1::0;;;;;12331:20:0;;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:63;;;;12412:43;;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;12412:43:0;::::1;::::0;12440:14;11181:25:1;;11169:2;11154:18;;11035:177;12412:43:0::1;;;;;;;;-1:-1:-1::0;12473:4:0::1;::::0;11298:1187;-1:-1:-1;;;;;;11298:1187:0:o;4992:88::-;5032:6;:14;;-1:-1:-1;;5032:14:0;;;5062:10;;;;5041:5;;5062:10;4992:88::o;10465:314::-;-1:-1:-1;;;;;10549:21:0;;10541:65;;;;-1:-1:-1;;;10541:65:0;;10877:2:1;10541:65:0;;;10859:21:1;10916:2;10896:18;;;10889:30;10955:33;10935:18;;;10928:61;11006:18;;10541:65:0;10675:355:1;10541:65:0;10632:12;;:24;;10649:6;10632:16;:24::i;:::-;10617:12;:39;-1:-1:-1;;;;;10688:18:0;;;;;;:9;:18;;;;;;:30;;10711:6;10688:22;:30::i;:::-;-1:-1:-1;;;;;10667:18:0;;;;;;:9;:18;;;;;;:51;;;;10734:37;;10667:18;;;-1:-1:-1;;;;;;;;;;;10734:37:0;;;10764:6;11181:25:1;;11169:2;11154:18;;11035:177;10734:37:0;;;;;;;;10465:314;;:::o;122:181::-;180:7;;212:5;216:1;212;:5;:::i;:::-;200:17;;241:1;236;:6;;228:46;;;;-1:-1:-1;;;228:46:0;;7357:2:1;228:46:0;;;7339:21:1;7396:2;7376:18;;;7369:30;7435:29;7415:18;;;7408:57;7482:18;;228:46:0;7155:351:1;689:250:0;747:7;771:6;767:47;;-1:-1:-1;801:1:0;794:8;;767:47;826:9;838:5;842:1;838;:5;:::i;:::-;826:17;-1:-1:-1;871:1:0;862:5;866:1;826:17;862:5;:::i;:::-;:10;854:56;;;;-1:-1:-1;;;854:56:0;;7713:2:1;854:56:0;;;7695:21:1;7752:2;7732:18;;;7725:30;7791:34;7771:18;;;7764:62;-1:-1:-1;;;7842:18:1;;;7835:31;7883:19;;854:56:0;7511:397:1;947:132:0;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;:3;:39::i;10840:450::-;-1:-1:-1;;;;;10924:21:0;;10916:67;;;;-1:-1:-1;;;10916:67:0;;9129:2:1;10916:67:0;;;9111:21:1;9168:2;9148:18;;;9141:30;9207:34;9187:18;;;9180:62;-1:-1:-1;;;9258:18:1;;;9251:31;9299:19;;10916:67:0;8927:397:1;10916:67:0;-1:-1:-1;;;;;11019:18:0;;10994:22;11019:18;;;:9;:18;;;;;;11056:24;;;;11048:71;;;;-1:-1:-1;;;11048:71:0;;6954:2:1;11048:71:0;;;6936:21:1;6993:2;6973:18;;;6966:30;7032:34;7012:18;;;7005:62;-1:-1:-1;;;7083:18:1;;;7076:32;7125:19;;11048:71:0;6752:398:1;11048:71:0;11151:26;:14;11170:6;11151:18;:26::i;:::-;-1:-1:-1;;;;;11130:18:0;;;;;;:9;:18;;;;;:47;11203:12;;:24;;11220:6;11203:16;:24::i;:::-;11188:12;:39;11245:37;;11181:25:1;;;11271:1:0;;-1:-1:-1;;;;;11245:37:0;;;-1:-1:-1;;;;;;;;;;;11245:37:0;11169:2:1;11154:18;11245:37:0;;;;;;;10905:385;10840:450;;:::o;12493:272::-;12657:12;;12647:6;:22;;:42;;;-1:-1:-1;;;;;;12673:16:0;;;;;;:8;:16;;;;;;;;12647:42;:65;;;-1:-1:-1;;;;;;12693:19:0;;;;;;:8;:19;;;;;;;;12647:65;12625:132;;;;-1:-1:-1;;;12625:132:0;;6608:2:1;12625:132:0;;;6590:21:1;6647:2;6627:18;;;6620:30;-1:-1:-1;;;6666:18:1;;;6659:47;6723:18;;12625:132:0;6406:341:1;455:226:0;575:7;611:12;603:6;;;;595:29;;;;-1:-1:-1;;;595:29:0;;;;;;;;:::i;:::-;-1:-1:-1;635:9:0;647:5;651:1;647;:5;:::i;:::-;635:17;455:226;-1:-1:-1;;;;;455:226:0:o;14900:92::-;14951:12;14938:10;:25;14974:10;:8;:10::i;13688:238::-;13791:11;;13740:4;;-1:-1:-1;;;;;13791:11:0;13777:10;:25;;;;:52;;-1:-1:-1;13820:9:0;;;;13819:10;13777:52;:83;;;;-1:-1:-1;13846:14:0;;;;13777:83;:141;;;;-1:-1:-1;13905:13:0;;13895:4;13877:24;;;;:9;:24;;;;;;:41;;13777:141;13757:161;;13688:238;:::o;13934:958::-;7299:9;:16;;-1:-1:-1;;7299:16:0;7311:4;7299:16;;;14011:13:::1;::::0;7299:9;;14011:20:::1;::::0;14029:1:::1;14011:17;:20::i;:::-;14068:16;::::0;;14082:1:::1;14068:16:::0;;;;;::::1;::::0;;13988:43;;-1:-1:-1;14044:21:0::1;::::0;14068:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14068:16:0::1;14044:40;;14113:4;14095;14100:1;14095:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14095:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14139:4:::1;::::0;14129:7;;14139:4;::::1;::::0;14129;;14139;;14129:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14129:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14231:6:::1;::::0;:212:::1;::::0;-1:-1:-1;;;14231:212:0;;14180:21:::1;::::0;14231:6;;;::::1;::::0;:57:::1;::::0;:212:::1;::::0;14307:12;;14156:21:::1;::::0;14358:4;;14389::::1;::::0;14413:15:::1;::::0;14231:212:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14214:250:::0;14476:17:::1;14496:40;:21;14522:13:::0;14496:25:::1;:40::i;:::-;14566:6;::::0;14728:21:::1;::::0;14566:232:::1;::::0;-1:-1:-1;;;14566:232:0;;14633:4:::1;14566:232;::::0;::::1;4020:34:1::0;4070:18;;;4063:34;;;14566:6:0::1;4113:18:1::0;;;4106:34;;;4156:18;;;4149:34;-1:-1:-1;;;;;14728:21:0;;::::1;4199:19:1::0;;;4192:44;14768:15:0::1;4252:19:1::0;;;4245:35;14476:60:0;;-1:-1:-1;14566:6:0::1;::::0;:22:::1;::::0;14476:60;;3954:19:1;;14566:232:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;14566:232:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;14566:232:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;14549:336;;;;;-1:-1:-1::0;;14828:36:0::1;::::0;;12376:25:1;;;12432:2;12417:18;;12410:34;;;14828:36:0::1;::::0;-1:-1:-1;12349:18:1;14828:36:0::1;;;;;;;14549:336;-1:-1:-1::0;;7338:9:0;:17;;-1:-1:-1;;7338:17:0;;;-1:-1:-1;;13934:958:0:o;15744:287::-;-1:-1:-1;;;;;15878:16:0;;15852:4;15878:16;;;:8;:16;;;;;;;;;:39;;-1:-1:-1;;;;;;15898:19:0;;;;;;:8;:19;;;;;;;;15878:39;:52;;;-1:-1:-1;15921:9:0;;;;15878:52;15874:97;;;-1:-1:-1;15954:5:0;15947:12;;15874:97;-1:-1:-1;;;;;15988:14:0;;;;;;:6;:14;;;;;;;;;:35;;-1:-1:-1;;;;;;;16006:17:0;;;;;:6;:17;;;;;;;;;15744:287;-1:-1:-1;15744:287:0:o;12773:685::-;12858:7;12883:26;12912:73;12960:14;;12912:29;12923:17;:15;:17::i;:::-;12912:6;;:10;:29::i;:73::-;12883:102;;12996:20;13019:38;13042:14;;13019:18;13030:6;;13019;:10;;:18;;;;:::i;:38::-;13115:4;13097:24;;;;:9;:24;;;;;;12996:61;;-1:-1:-1;13097:72:0;;13140:18;13097:28;:72::i;:::-;13088:4;13070:24;;;;:9;:24;;;;;;:99;;;;13218:14;;-1:-1:-1;;;;;13218:14:0;13208:25;;;;:43;;13238:12;13208:29;:43::i;:::-;13190:14;;-1:-1:-1;;;;;13190:14:0;;;13180:25;;;;:9;:25;;;;;;;;;:71;;;;13269:51;11181:25:1;;;13294:4:0;;13269:51;;;;-1:-1:-1;;;;;;;;;;;13269:51:0;11154:18:1;13269:51:0;;;;;;;13353:14;;13336:46;;11181:25:1;;;-1:-1:-1;;;;;13353:14:0;;;;13336:46;;;-1:-1:-1;;;;;;;;;;;13336:46:0;11169:2:1;11154:18;13336:46:0;;;;;;;13402:48;13437:12;13402:30;:6;13413:18;13402:10;:30::i;:::-;:34;;:48::i;1087:379::-;1207:7;1309:12;1302:5;1294:28;;;;-1:-1:-1;;;1294:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1333:9:0;1345:5;1349:1;1345;:5;:::i;311:136::-;369:7;396:43;400:1;403;396:43;;;;;;;;;;;;;;;;;:3;:43::i;13466:214::-;13516:7;13558:12;13540:10;;13553:1;13540:14;;;;:::i;:::-;:30;13536:103;;13594:33;13625:1;13594:26;13613:6;;13594:14;;:18;;:26;;;;:::i;13536:103::-;-1:-1:-1;13656:16:0;;;13466:214::o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;691:388::-;759:6;767;820:2;808:9;799:7;795:23;791:32;788:52;;;836:1;833;826:12;788:52;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;691:388;;;;;:::o;1084:456::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;:::-;1354:5;-1:-1:-1;1411:2:1;1396:18;;1383:32;1424:33;1383:32;1424:33;:::i;:::-;1084:456;;1476:7;;-1:-1:-1;;;1530:2:1;1515:18;;;;1502:32;;1084:456::o;1545:315::-;1610:6;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:52;;;1687:1;1684;1677:12;1639:52;1726:9;1713:23;1745:31;1770:5;1745:31;:::i;:::-;1795:5;-1:-1:-1;1819:35:1;1850:2;1835:18;;1819:35;:::i;:::-;1809:45;;1545:315;;;;;:::o;1865:::-;1933:6;1941;1994:2;1982:9;1973:7;1969:23;1965:32;1962:52;;;2010:1;2007;2000:12;1962:52;2049:9;2036:23;2068:31;2093:5;2068:31;:::i;:::-;2118:5;2170:2;2155:18;;;;2142:32;;-1:-1:-1;;;1865:315:1:o;2185:248::-;2250:6;2258;2311:2;2299:9;2290:7;2286:23;2282:32;2279:52;;;2327:1;2324;2317:12;2279:52;2350:26;2366:9;2350:26;:::i;2438:180::-;2497:6;2550:2;2538:9;2529:7;2525:23;2521:32;2518:52;;;2566:1;2563;2556:12;2518:52;-1:-1:-1;2589:23:1;;2438:180;-1:-1:-1;2438:180:1:o;2623:316::-;2700:6;2708;2716;2769:2;2757:9;2748:7;2744:23;2740:32;2737:52;;;2785:1;2782;2775:12;2737:52;-1:-1:-1;;2808:23:1;;;2878:2;2863:18;;2850:32;;-1:-1:-1;2929:2:1;2914:18;;;2901:32;;2623:316;-1:-1:-1;2623:316:1:o;2944:306::-;3032:6;3040;3048;3101:2;3089:9;3080:7;3076:23;3072:32;3069:52;;;3117:1;3114;3107:12;3069:52;3146:9;3140:16;3130:26;;3196:2;3185:9;3181:18;3175:25;3165:35;;3240:2;3229:9;3225:18;3219:25;3209:35;;2944:306;;;;;:::o;4709:597::-;4821:4;4850:2;4879;4868:9;4861:21;4911:6;4905:13;4954:6;4949:2;4938:9;4934:18;4927:34;4979:1;4989:140;5003:6;5000:1;4997:13;4989:140;;;5098:14;;;5094:23;;5088:30;5064:17;;;5083:2;5060:26;5053:66;5018:10;;4989:140;;;5147:6;5144:1;5141:13;5138:91;;;5217:1;5212:2;5203:6;5192:9;5188:22;5184:31;5177:42;5138:91;-1:-1:-1;5290:2:1;5269:15;-1:-1:-1;;5265:29:1;5250:45;;;;5297:2;5246:54;;4709:597;-1:-1:-1;;;4709:597:1:o;5645:409::-;5847:2;5829:21;;;5886:2;5866:18;;;5859:30;5925:34;5920:2;5905:18;;5898:62;-1:-1:-1;;;5991:2:1;5976:18;;5969:43;6044:3;6029:19;;5645:409::o;10335:335::-;10537:2;10519:21;;;10576:2;10556:18;;;10549:30;-1:-1:-1;;;10610:2:1;10595:18;;10588:41;10661:2;10646:18;;10335:335::o;11217:980::-;11479:4;11527:3;11516:9;11512:19;11558:6;11547:9;11540:25;11584:2;11622:6;11617:2;11606:9;11602:18;11595:34;11665:3;11660:2;11649:9;11645:18;11638:31;11689:6;11724;11718:13;11755:6;11747;11740:22;11793:3;11782:9;11778:19;11771:26;;11832:2;11824:6;11820:15;11806:29;;11853:1;11863:195;11877:6;11874:1;11871:13;11863:195;;;11942:13;;-1:-1:-1;;;;;11938:39:1;11926:52;;12033:15;;;;11998:12;;;;11974:1;11892:9;11863:195;;;-1:-1:-1;;;;;;;12114:32:1;;;;12109:2;12094:18;;12087:60;-1:-1:-1;;;12178:3:1;12163:19;12156:35;12075:3;11217:980;-1:-1:-1;;;11217:980:1:o;12644:128::-;12684:3;12715:1;12711:6;12708:1;12705:13;12702:39;;;12721:18;;:::i;:::-;-1:-1:-1;12757:9:1;;12644:128::o;12777:217::-;12817:1;12843;12833:132;;12887:10;12882:3;12878:20;12875:1;12868:31;12922:4;12919:1;12912:15;12950:4;12947:1;12940:15;12833:132;-1:-1:-1;12979:9:1;;12777:217::o;12999:422::-;13088:1;13131:5;13088:1;13145:270;13166:7;13156:8;13153:21;13145:270;;;13225:4;13221:1;13217:6;13213:17;13207:4;13204:27;13201:53;;;13234:18;;:::i;:::-;13284:7;13274:8;13270:22;13267:55;;;13304:16;;;;13267:55;13383:22;;;;13343:15;;;;13145:270;;;13149:3;12999:422;;;;;:::o;13426:140::-;13484:5;13513:47;13554:4;13544:8;13540:19;13534:4;13620:5;13650:8;13640:80;;-1:-1:-1;13691:1:1;13705:5;;13640:80;13739:4;13729:76;;-1:-1:-1;13776:1:1;13790:5;;13729:76;13821:4;13839:1;13834:59;;;;13907:1;13902:130;;;;13814:218;;13834:59;13864:1;13855:10;;13878:5;;;13902:130;13939:3;13929:8;13926:17;13923:43;;;13946:18;;:::i;:::-;-1:-1:-1;;14002:1:1;13988:16;;14017:5;;13814:218;;14116:2;14106:8;14103:16;14097:3;14091:4;14088:13;14084:36;14078:2;14068:8;14065:16;14060:2;14054:4;14051:12;14047:35;14044:77;14041:159;;;-1:-1:-1;14153:19:1;;;14185:5;;14041:159;14232:34;14257:8;14251:4;14232:34;:::i;:::-;14302:6;14298:1;14294:6;14290:19;14281:7;14278:32;14275:58;;;14313:18;;:::i;:::-;14351:20;;13571:806;-1:-1:-1;;;13571:806:1:o;14382:168::-;14422:7;14488:1;14484;14480:6;14476:14;14473:1;14470:21;14465:1;14458:9;14451:17;14447:45;14444:71;;;14495:18;;:::i;:::-;-1:-1:-1;14535:9:1;;14382:168::o;14555:125::-;14595:4;14623:1;14620;14617:8;14614:34;;;14628:18;;:::i;:::-;-1:-1:-1;14665:9:1;;14555:125::o;14685:127::-;14746:10;14741:3;14737:20;14734:1;14727:31;14777:4;14774:1;14767:15;14801:4;14798:1;14791:15;14817:127;14878:10;14873:3;14869:20;14866:1;14859:31;14909:4;14906:1;14899:15;14933:4;14930:1;14923:15;14949:127;15010:10;15005:3;15001:20;14998:1;14991:31;15041:4;15038:1;15031:15;15065:4;15062:1;15055:15;15213:131;-1:-1:-1;;;;;15288:31:1;;15278:42;;15268:70;;15334:1;15331;15324:12
Metadata Hash
ipfs://85a895f7cb73410a1bf23e17b68eb5366b7f2a596df677ff9a989fbf8f7a14c8