Token HONK
Overview ERC20
Price
$0.00 @ 0.000000 ETH
Fully Diluted Market Cap
Total Supply:
1,000,000,000 HONK
Holders:
35 addresses
Transfers:
-
Contract:
Decimals:
9
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
HONK
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-11 */ /** $HONK Honk is an entirely community driven Meme project backed by a fantastic team of genius clowns and devs. t.me/honktrums /** //SPDX-License-Identifier: MIT */ pragma solidity ^0.8.5; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { 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); } abstract contract Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } 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 addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract HONK is ERC20, Ownable { using SafeMath for uint256; address routerAdress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; address DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "HONK"; string constant _symbol = "HONK"; uint8 constant _decimals = 9; uint256 public _totalSupply = 1_000_000_000 * (10 ** _decimals); uint256 public _maxWalletAmount = (_totalSupply * 2) / 100; uint256 public _maxTxAmount = _totalSupply.mul(100).div(100); //100% mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; uint256 liquidityFee = 0; uint256 marketingFee = 7; uint256 totalFee = liquidityFee + marketingFee; uint256 feeDenominator = 100; address public marketingFeeReceiver = 0x66522E1cC9069332Ff95E3063B7b5f9398DEC60E; IDEXRouter public router; address public pair; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 400 * 5; // 0.2% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { router = IDEXRouter(routerAdress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; isFeeExempt[0x66522E1cC9069332Ff95E3063B7b5f9398DEC60E] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[0x66522E1cC9069332Ff95E3063B7b5f9398DEC60E] = true; isTxLimitExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } 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) public 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) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if (recipient != pair && recipient != DEAD) { require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size."); } if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 contractTokenBalance = swapThreshold; uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); require(MarketingSuccess, "receiver rejected ETH transfer"); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, 0x66522E1cC9069332Ff95E3063B7b5f9398DEC60E, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function buyTokens(uint256 amount, address to) internal swapping { address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } function clearStuckBalance() external { payable(marketingFeeReceiver).transfer(address(this).balance); } function setWalletLimit(uint256 amountPercent) external onlyOwner { _maxWalletAmount = (_totalSupply * amountPercent ) / 1000; } function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; totalFee = liquidityFee + marketingFee; } event AutoLiquify(uint256 amountETH, uint256 amountBOG); }
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":false,"internalType":"uint256","name":"amountETH","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":[{"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052731b02da8cb0d097eb8d57a175b88c7d8b47997506600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000a90565b633b9aca00620000bd919062000ae1565b60035560646002600354620000d3919062000ae1565b620000df919062000b5b565b600455620001196064620001056064600354620007b960201b62000d751790919060201c565b6200083c60201b62000def1790919060201c565b6005556000600a556007600b55600b54600a5462000138919062000b93565b600c556064600d557366522e1cc9069332ff95e3063b7b5f9398dec60e600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060146101000a81548160ff0219169083151502179055506005610190600354620001c4919062000b5b565b620001d0919062000ae1565b601155348015620001e057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000c38565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c9919062000c38565b306040518363ffffffff1660e01b8152600401620003e992919062000c7b565b6020604051808303816000875af115801562000409573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042f919062000c38565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600860007366522e1cc9069332ff95e3063b7b5f9398dec60e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960007366522e1cc9069332ff95e3063b7b5f9398dec60e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620007aa919062000cb9565b60405180910390a35062000e2c565b6000808303620007cd576000905062000836565b60008284620007dd919062000ae1565b9050828482620007ee919062000b5b565b1462000831576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008289062000d5d565b60405180910390fd5b809150505b92915050565b60006200088683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200088e60201b60201c565b905092915050565b60008083118290620008d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008cf919062000e08565b60405180910390fd5b5060008385620008e9919062000b5b565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000984578086048111156200095c576200095b620008f6565b5b60018516156200096c5780820291505b80810290506200097c8562000925565b94506200093c565b94509492505050565b6000826200099f576001905062000a72565b81620009af576000905062000a72565b8160018114620009c85760028114620009d35762000a09565b600191505062000a72565b60ff841115620009e857620009e7620008f6565b5b8360020a91508482111562000a025762000a01620008f6565b5b5062000a72565b5060208310610133831016604e8410600b841016171562000a435782820a90508381111562000a3d5762000a3c620008f6565b5b62000a72565b62000a52848484600162000932565b9250905081840481111562000a6c5762000a6b620008f6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a9d8262000a79565b915062000aaa8362000a83565b925062000ad97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200098d565b905092915050565b600062000aee8262000a79565b915062000afb8362000a79565b925082820262000b0b8162000a79565b9150828204841483151762000b255762000b24620008f6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b688262000a79565b915062000b758362000a79565b92508262000b885762000b8762000b2c565b5b828204905092915050565b600062000ba08262000a79565b915062000bad8362000a79565b925082820190508082111562000bc85762000bc7620008f6565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c008262000bd3565b9050919050565b62000c128162000bf3565b811462000c1e57600080fd5b50565b60008151905062000c328162000c07565b92915050565b60006020828403121562000c515762000c5062000bce565b5b600062000c618482850162000c21565b91505092915050565b62000c758162000bf3565b82525050565b600060408201905062000c92600083018562000c6a565b62000ca1602083018462000c6a565b9392505050565b62000cb38162000a79565b82525050565b600060208201905062000cd0600083018462000ca8565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d4560218362000cd6565b915062000d528262000ce7565b604082019050919050565b6000602082019050818103600083015262000d788162000d36565b9050919050565b600081519050919050565b60005b8381101562000daa57808201518184015260208101905062000d8d565b60008484015250505050565b6000601f19601f8301169050919050565b600062000dd48262000d7f565b62000de0818562000cd6565b935062000df281856020860162000d8a565b62000dfd8162000db6565b840191505092915050565b6000602082019050818103600083015262000e24818462000dc7565b905092915050565b6127e78062000e3c6000396000f3fe60806040526004361061014f5760003560e01c80636ddd1713116100b6578063a8aa1b311161006f578063a8aa1b3114610491578063a9059cbb146104bc578063dd62ed3e146104f9578063e96fada214610536578063f1d5f51714610561578063f887ea401461058a57610156565b80636ddd17131461039157806370a08231146103bc578063715018a6146103f95780637d1db4a514610410578063893d20e81461043b57806395d89b411461046657610156565b8063313ce56711610108578063313ce56714610293578063364333f4146102be5780633eaaf86b146102d557806352f7c98814610300578063571ac8b0146103295780636c0a24eb1461036657610156565b80630445b6671461015b57806306fdde0314610186578063095ea7b3146101b157806318160ddd146101ee57806323b872dd146102195780632f54bf6e1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105b5565b60405161017d9190611d0b565b60405180910390f35b34801561019257600080fd5b5061019b6105bb565b6040516101a89190611db6565b60405180910390f35b3480156101bd57600080fd5b506101d860048036038101906101d39190611e67565b6105f8565b6040516101e59190611ec2565b60405180910390f35b3480156101fa57600080fd5b506102036106ea565b6040516102109190611d0b565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611edd565b6106f4565b60405161024d9190611ec2565b60405180910390f35b34801561026257600080fd5b5061027d60048036038101906102789190611f30565b6108f4565b60405161028a9190611ec2565b60405180910390f35b34801561029f57600080fd5b506102a861094d565b6040516102b59190611f79565b60405180910390f35b3480156102ca57600080fd5b506102d3610956565b005b3480156102e157600080fd5b506102ea6109c1565b6040516102f79190611d0b565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190611f94565b6109c7565b005b34801561033557600080fd5b50610350600480360381019061034b9190611f30565b610a37565b60405161035d9190611ec2565b60405180910390f35b34801561037257600080fd5b5061037b610a6a565b6040516103889190611d0b565b60405180910390f35b34801561039d57600080fd5b506103a6610a70565b6040516103b39190611ec2565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190611f30565b610a83565b6040516103f09190611d0b565b60405180910390f35b34801561040557600080fd5b5061040e610acc565b005b34801561041c57600080fd5b50610425610b8f565b6040516104329190611d0b565b60405180910390f35b34801561044757600080fd5b50610450610b95565b60405161045d9190611fe3565b60405180910390f35b34801561047257600080fd5b5061047b610bbe565b6040516104889190611db6565b60405180910390f35b34801561049d57600080fd5b506104a6610bfb565b6040516104b39190611fe3565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190611e67565b610c21565b6040516104f09190611ec2565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b9190611ffe565b610c36565b60405161052d9190611d0b565b60405180910390f35b34801561054257600080fd5b5061054b610cbd565b6040516105589190611fe3565b60405180910390f35b34801561056d57600080fd5b506105886004803603810190610583919061203e565b610ce3565b005b34801561059657600080fd5b5061059f610d4f565b6040516105ac91906120ca565b60405180910390f35b60115481565b60606040518060400160405280600481526020017f484f4e4b00000000000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106d89190611d0b565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108e05761085f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e399092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108eb848484610e9d565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156109be573d6000803e3d6000fd5b50565b60035481565b6109d0336108f4565b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690612131565b60405180910390fd5b81600a8190555080600b81905550600b54600a54610a2d9190612180565b600c819055505050565b6000610a63827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105f8565b9050919050565b60045481565b601060149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ad5336108f4565b610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b90612131565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610b859190611fe3565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f484f4e4b00000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c2e338484610e9d565b905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cec336108f4565b610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290612131565b60405180910390fd5b6103e881600354610d3c91906121b4565b610d469190612225565b60048190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303610d875760009050610de9565b60008284610d9591906121b4565b9050828482610da49190612225565b14610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb906122c8565b60405180910390fd5b809150505b92915050565b6000610e3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611266565b905092915050565b6000838311158290610e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e789190611db6565b60405180910390fd5b5060008385610e9091906122e8565b9050809150509392505050565b6000601260009054906101000a900460ff1615610ec657610ebf8484846112c9565b905061125f565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f725750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561105b57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061101b575060045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110189190612180565b11155b61105a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110519061238e565b60405180910390fd5b5b61106361149c565b1561107157611070611573565b5b6110fa826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e399092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061114885611aaf565b611152578261115d565b61115c8584611b06565b5b90506111b181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4a90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112519190611d0b565b60405180910390a360019150505b9392505050565b600080831182906112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a49190611db6565b60405180910390fd5b50600083856112bc9190612225565b9050809150509392505050565b6000611354826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e399092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4a90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114899190611d0b565b60405180910390a3600190509392505050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156115095750601260009054906101000a900460ff16155b80156115215750601060149054906101000a900460ff165b801561156e5750601154600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601260006101000a81548160ff0219169083151502179055506000601154905060006115d360026115c5600c546115b7600a5487610d7590919063ffffffff16565b610def90919063ffffffff16565b610def90919063ffffffff16565b905060006115ea8284611ca890919063ffffffff16565b90506000600267ffffffffffffffff811115611609576116086123ae565b5b6040519080825280602002602001820160405280156116375781602001602082028036833780820191505090505b509050308160008151811061164f5761164e6123dd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612421565b8160018151811061172e5761172d6123dd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016117d1959493929190612547565b600060405180830381600087803b1580156117eb57600080fd5b505af11580156117ff573d6000803e3d6000fd5b5050505060006118188247611ca890919063ffffffff16565b905060006118466118356002600a54610def90919063ffffffff16565b600c54611ca890919063ffffffff16565b90506000611884600261187684611868600a5488610d7590919063ffffffff16565b610def90919063ffffffff16565b610def90919063ffffffff16565b905060006118af836118a1600b5487610d7590919063ffffffff16565b610def90919063ffffffff16565b90506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516118fd906125d2565b600060405180830381858888f193505050503d806000811461193b576040519150601f19603f3d011682016040523d82523d6000602084013e611940565b606091505b5050905080611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90612633565b60405180910390fd5b6000891115611a8857600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c6000807366522e1cc9069332ff95e3063b7b5f9398dec60e426040518863ffffffff1660e01b8152600401611a0896959493929190612653565b60606040518083038185885af1158015611a26573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a4b91906126c9565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611a7f92919061271c565b60405180910390a15b505050505050505050506000601260006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611b32600d54611b24600c5486610d7590919063ffffffff16565b610def90919063ffffffff16565b9050611b8681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4a90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c269190611d0b565b60405180910390a3611c418184611ca890919063ffffffff16565b91505092915050565b6000808284611c599190612180565b905083811015611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9590612791565b60405180910390fd5b8091505092915050565b6000611cea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e39565b905092915050565b6000819050919050565b611d0581611cf2565b82525050565b6000602082019050611d206000830184611cfc565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d60578082015181840152602081019050611d45565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d8882611d26565b611d928185611d31565b9350611da2818560208601611d42565b611dab81611d6c565b840191505092915050565b60006020820190508181036000830152611dd08184611d7d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e0882611ddd565b9050919050565b611e1881611dfd565b8114611e2357600080fd5b50565b600081359050611e3581611e0f565b92915050565b611e4481611cf2565b8114611e4f57600080fd5b50565b600081359050611e6181611e3b565b92915050565b60008060408385031215611e7e57611e7d611dd8565b5b6000611e8c85828601611e26565b9250506020611e9d85828601611e52565b9150509250929050565b60008115159050919050565b611ebc81611ea7565b82525050565b6000602082019050611ed76000830184611eb3565b92915050565b600080600060608486031215611ef657611ef5611dd8565b5b6000611f0486828701611e26565b9350506020611f1586828701611e26565b9250506040611f2686828701611e52565b9150509250925092565b600060208284031215611f4657611f45611dd8565b5b6000611f5484828501611e26565b91505092915050565b600060ff82169050919050565b611f7381611f5d565b82525050565b6000602082019050611f8e6000830184611f6a565b92915050565b60008060408385031215611fab57611faa611dd8565b5b6000611fb985828601611e52565b9250506020611fca85828601611e52565b9150509250929050565b611fdd81611dfd565b82525050565b6000602082019050611ff86000830184611fd4565b92915050565b6000806040838503121561201557612014611dd8565b5b600061202385828601611e26565b925050602061203485828601611e26565b9150509250929050565b60006020828403121561205457612053611dd8565b5b600061206284828501611e52565b91505092915050565b6000819050919050565b600061209061208b61208684611ddd565b61206b565b611ddd565b9050919050565b60006120a282612075565b9050919050565b60006120b482612097565b9050919050565b6120c4816120a9565b82525050565b60006020820190506120df60008301846120bb565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061211b600683611d31565b9150612126826120e5565b602082019050919050565b6000602082019050818103600083015261214a8161210e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061218b82611cf2565b915061219683611cf2565b92508282019050808211156121ae576121ad612151565b5b92915050565b60006121bf82611cf2565b91506121ca83611cf2565b92508282026121d881611cf2565b915082820484148315176121ef576121ee612151565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061223082611cf2565b915061223b83611cf2565b92508261224b5761224a6121f6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006122b2602183611d31565b91506122bd82612256565b604082019050919050565b600060208201905081810360008301526122e1816122a5565b9050919050565b60006122f382611cf2565b91506122fe83611cf2565b925082820390508181111561231657612315612151565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612378602583611d31565b91506123838261231c565b604082019050919050565b600060208201905081810360008301526123a78161236b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061241b81611e0f565b92915050565b60006020828403121561243757612436611dd8565b5b60006124458482850161240c565b91505092915050565b6000819050919050565b600061247361246e6124698461244e565b61206b565b611cf2565b9050919050565b61248381612458565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124be81611dfd565b82525050565b60006124d083836124b5565b60208301905092915050565b6000602082019050919050565b60006124f482612489565b6124fe8185612494565b9350612509836124a5565b8060005b8381101561253a57815161252188826124c4565b975061252c836124dc565b92505060018101905061250d565b5085935050505092915050565b600060a08201905061255c6000830188611cfc565b612569602083018761247a565b818103604083015261257b81866124e9565b905061258a6060830185611fd4565b6125976080830184611cfc565b9695505050505050565b600081905092915050565b50565b60006125bc6000836125a1565b91506125c7826125ac565b600082019050919050565b60006125dd826125af565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061261d601e83611d31565b9150612628826125e7565b602082019050919050565b6000602082019050818103600083015261264c81612610565b9050919050565b600060c0820190506126686000830189611fd4565b6126756020830188611cfc565b612682604083018761247a565b61268f606083018661247a565b61269c6080830185611fd4565b6126a960a0830184611cfc565b979650505050505050565b6000815190506126c381611e3b565b92915050565b6000806000606084860312156126e2576126e1611dd8565b5b60006126f0868287016126b4565b9350506020612701868287016126b4565b9250506040612712868287016126b4565b9150509250925092565b60006040820190506127316000830185611cfc565b61273e6020830184611cfc565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061277b601b83611d31565b915061278682612745565b602082019050919050565b600060208201905081810360008301526127aa8161276e565b905091905056fea26469706673582212201870522a15c13d0c1df82d62d2e50c5ccfad21339cf1bd5cda668eee6ba783b064736f6c63430008120033
Deployed ByteCode Sourcemap
4239:7818:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6404:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6826:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6134:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7344:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2477:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6228:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11486:118;;;;;;;;;;;;;:::i;:::-;;4562:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11762:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7050:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4632:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5283:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6574:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2586:131;;;;;;;;;;;;;:::i;:::-;;4697:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6490:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6314:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5255:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7180:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6685:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5135:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11612:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5224:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5320:53;;;;:::o;6404:80::-;6452:13;6476:5;;;;;;;;;;;;;;;;;6469:12;;6404:80;:::o;6826:216::-;6901:4;6953:6;6918:11;:23;6930:10;6918:23;;;;;;;;;;;;;;;:32;6942:7;6918:32;;;;;;;;;;;;;;;:41;;;;6996:7;6975:37;;6984:10;6975:37;;;7005:6;6975:37;;;;;;:::i;:::-;;;;;;;;7030:4;7023:11;;6826:216;;;;:::o;6134:88::-;6189:7;6207:12;;6200:19;;6134:88;:::o;7344:370::-;7444:4;7499:17;7464:11;:19;7476:6;7464:19;;;;;;;;;;;;;;;:31;7484:10;7464:31;;;;;;;;;;;;;;;;:52;7461:186;;7566:69;7602:6;7566:69;;;;;;;;;;;;;;;;;:11;:19;7578:6;7566:19;;;;;;;;;;;;;;;:31;7586:10;7566:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7532:11;:19;7544:6;7532:19;;;;;;;;;;;;;;;:31;7552:10;7532:31;;;;;;;;;;;;;;;:103;;;;7461:186;7666:40;7680:6;7688:9;7699:6;7666:13;:40::i;:::-;7659:47;;7344:370;;;;;:::o;2477:103::-;2532:4;2567:5;;;;;;;;;;;2556:16;;:7;:16;;;2549:23;;2477:103;;;:::o;6228:80::-;6280:5;4552:1;6289:16;;6228:80;:::o;11486:118::-;11543:20;;;;;;;;;;;11535:38;;:61;11574:21;11535:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11486:118::o;4562:63::-;;;;:::o;11762:220::-;2430:19;2438:10;2430:7;:19::i;:::-;2422:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11870:13:::1;11855:12;:28;;;;11911:13;11896:12;:28;;;;11962:12;;11947;;:27;;;;:::i;:::-;11936:8;:38;;;;11762:220:::0;;:::o;7050:122::-;7105:4;7129:35;7137:7;7146:17;7129:7;:35::i;:::-;7122:42;;7050:122;;;:::o;4632:58::-;;;;:::o;5283:30::-;;;;;;;;;;;;;:::o;6574:105::-;6640:7;6658:9;:18;6668:7;6658:18;;;;;;;;;;;;;;;;6651:25;;6574:105;;;:::o;2586:131::-;2430:19;2438:10;2430:7;:19::i;:::-;2422:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2659:1:::1;2643:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2677:32;2706:1;2677:32;;;;;;:::i;:::-;;;;;;;;2586:131::o:0;4697:60::-;;;;:::o;6490:78::-;6542:7;6560:5;;;;;;;;;;;6553:12;;6490:78;:::o;6314:84::-;6364:13;6388:7;;;;;;;;;;;;;;;;;6381:14;;6314:84;:::o;5255:19::-;;;;;;;;;;;;;:::o;7180:156::-;7260:4;7284:44;7298:10;7310:9;7321:6;7284:13;:44::i;:::-;7277:51;;7180:156;;;;:::o;6685:133::-;6769:7;6787:11;:19;6799:6;6787:19;;;;;;;;;;;;;;;:28;6807:7;6787:28;;;;;;;;;;;;;;;;6780:35;;6685:133;;;;:::o;5135:80::-;;;;;;;;;;;;;:::o;11612:142::-;2430:19;2438:10;2430:7;:19::i;:::-;2422:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11742:4:::1;11724:13;11709:12;;:28;;;;:::i;:::-;11708:38;;;;:::i;:::-;11689:16;:57;;;;11612:142:::0;:::o;5224:24::-;;;;;;;;;;;;;:::o;762:246::-;820:7;849:1;844;:6;840:47;;874:1;867:8;;;;840:47;897:9;913:1;909;:5;;;;:::i;:::-;897:17;;942:1;937;933;:5;;;;:::i;:::-;:10;925:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;999:1;992:8;;;762:246;;;;;:::o;1014:132::-;1072:7;1099:39;1103:1;1106;1099:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1092:46;;1014:132;;;;:::o;566:190::-;652:7;685:1;680;:6;;688:12;672:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;712:9;728:1;724;:5;;;;:::i;:::-;712:17;;747:1;740:8;;;566:190;;;;;:::o;7722:792::-;7814:4;7834:6;;;;;;;;;;;7831:63;;;7850:41;7865:6;7873:9;7884:6;7850:14;:41::i;:::-;7843:48;;;;7831:63;7931:4;;;;;;;;;;;7918:17;;:9;:17;;;;:38;;;;;7952:4;;;;;;;;;;;7939:17;;:9;:17;;;;7918:38;7914:200;;;7981:15;:26;7997:9;7981:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8044:16;;8034:6;8011:9;:20;8021:9;8011:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7981:79;7973:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7914:200;8137:16;:14;:16::i;:::-;8134:35;;;8156:10;:8;:10::i;:::-;8134:35;8202:53;8224:6;8202:53;;;;;;;;;;;;;;;;;:9;:17;8212:6;8202:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8182:9;:17;8192:6;8182:17;;;;;;;;;;;;;;;:73;;;;8268:22;8293:21;8307:6;8293:13;:21::i;:::-;:56;;8343:6;8293:56;;;8317:23;8325:6;8333;8317:7;:23::i;:::-;8293:56;8268:81;;8383:40;8408:14;8383:9;:20;8393:9;8383:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8360:9;:20;8370:9;8360:20;;;;;;;;;;;;;;;:63;;;;8458:9;8441:43;;8450:6;8441:43;;;8469:14;8441:43;;;;;;:::i;:::-;;;;;;;;8502:4;8495:11;;;7722:792;;;;;;:::o;1152:189::-;1238:7;1270:1;1266;:5;1273:12;1258:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1297:9;1313:1;1309;:5;;;;:::i;:::-;1297:17;;1332:1;1325:8;;;1152:189;;;;;:::o;8526:330::-;8619:4;8656:53;8678:6;8656:53;;;;;;;;;;;;;;;;;:9;:17;8666:6;8656:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8636:9;:17;8646:6;8636:17;;;;;;;;;;;;;;;:73;;;;8743:32;8768:6;8743:9;:20;8753:9;8743:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8720:9;:20;8730:9;8720:20;;;;;;;;;;;;;;;:55;;;;8808:9;8791:35;;8800:6;8791:35;;;8819:6;8791:35;;;;;;:::i;:::-;;;;;;;;8844:4;8837:11;;8526:330;;;;;:::o;9323:197::-;9372:4;9410;;;;;;;;;;;9396:18;;:10;:18;;;;:38;;;;;9428:6;;;;;;;;;;;9427:7;9396:38;:62;;;;;9447:11;;;;;;;;;;;9396:62;:116;;;;;9499:13;;9471:9;:24;9489:4;9471:24;;;;;;;;;;;;;;;;:41;;9396:116;9389:123;;9323:197;:::o;9528:1572::-;5437:4;5428:6;;:13;;;;;;;;;;;;;;;;;;9577:28:::1;9608:13;;9577:44;;9632:23;9658:59;9715:1;9658:52;9701:8;;9658:38;9683:12;;9658:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9632:85;;9728:20;9751:41;9776:15;9751:20;:24;;:41;;;;:::i;:::-;9728:64;;9805:21;9843:1;9829:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9805:40;;9874:4;9856;9861:1;9856:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9900:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9890:4;9895:1;9890:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9926:21;9950;9926:45;;9984:6;;;;;;;;;;;:57;;;10056:12;10083:1;10099:4;10126;10146:15;9984:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10183:17;10203:40;10229:13;10203:21;:25;;:40;;;;:::i;:::-;10183:60;;10254:19;10276:33;10289:19;10306:1;10289:12;;:16;;:19;;;;:::i;:::-;10276:8;;:12;;:33;;;;:::i;:::-;10254:55;;10320:26;10349:51;10398:1;10349:44;10381:11;10349:27;10363:12;;10349:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10320:80;;10411:26;10440:44;10472:11;10440:27;10454:12;;10440:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10411:73;;10500:21;10558:20;;;;;;;;;;;10550:34;;10592:18;10617:5;10550:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10499:128;;;10646:16;10638:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10731:1;10713:15;:19;10710:383;;;10748:6;;;;;;;;;;;:22;;;10778:18;10824:4;10848:15;10882:1;10902::::0;10922:42:::1;10983:15;10748:265;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11033:48;11045:18;11065:15;11033:48;;;;;;;:::i;:::-;;;;;;;;10710:383;9566:1534;;;;;;;;;;5455:5:::0;5446:6;;:14;;;;;;;;;;;;;;;;;;9528:1572::o;8864:114::-;8926:4;8951:11;:19;8963:6;8951:19;;;;;;;;;;;;;;;;;;;;;;;;;8950:20;8943:27;;8864:114;;;:::o;8986:329::-;9053:7;9073:17;9093:40;9118:14;;9093:20;9104:8;;9093:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;9073:60;;9171:39;9200:9;9171;:24;9189:4;9171:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9144:9;:24;9162:4;9144:24;;;;;;;;;;;;;;;:66;;;;9251:4;9226:42;;9235:6;9226:42;;;9258:9;9226:42;;;;;;:::i;:::-;;;;;;;;9286:21;9297:9;9286:6;:10;;:21;;;;:::i;:::-;9279:28;;;8986:329;;;;:::o;239:179::-;297:7;317:9;333:1;329;:5;;;;:::i;:::-;317:17;;358:1;353;:6;;345:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;409:1;402:8;;;239:179;;;;:::o;424:136::-;482:7;509:43;513:1;516;509:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;502:50;;424:136;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:329::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6705:117;6500:329;;;;:::o;6835:60::-;6863:3;6884:5;6877:12;;6835:60;;;:::o;6901:142::-;6951:9;6984:53;7002:34;7011:24;7029:5;7011:24;:::i;:::-;7002:34;:::i;:::-;6984:53;:::i;:::-;6971:66;;6901:142;;;:::o;7049:126::-;7099:9;7132:37;7163:5;7132:37;:::i;:::-;7119:50;;7049:126;;;:::o;7181:144::-;7249:9;7282:37;7313:5;7282:37;:::i;:::-;7269:50;;7181:144;;;:::o;7331:167::-;7436:55;7485:5;7436:55;:::i;:::-;7431:3;7424:68;7331:167;;:::o;7504:258::-;7615:4;7653:2;7642:9;7638:18;7630:26;;7666:89;7752:1;7741:9;7737:17;7728:6;7666:89;:::i;:::-;7504:258;;;;:::o;7768:156::-;7908:8;7904:1;7896:6;7892:14;7885:32;7768:156;:::o;7930:365::-;8072:3;8093:66;8157:1;8152:3;8093:66;:::i;:::-;8086:73;;8168:93;8257:3;8168:93;:::i;:::-;8286:2;8281:3;8277:12;8270:19;;7930:365;;;:::o;8301:419::-;8467:4;8505:2;8494:9;8490:18;8482:26;;8554:9;8548:4;8544:20;8540:1;8529:9;8525:17;8518:47;8582:131;8708:4;8582:131;:::i;:::-;8574:139;;8301:419;;;:::o;8726:180::-;8774:77;8771:1;8764:88;8871:4;8868:1;8861:15;8895:4;8892:1;8885:15;8912:191;8952:3;8971:20;8989:1;8971:20;:::i;:::-;8966:25;;9005:20;9023:1;9005:20;:::i;:::-;9000:25;;9048:1;9045;9041:9;9034:16;;9069:3;9066:1;9063:10;9060:36;;;9076:18;;:::i;:::-;9060:36;8912:191;;;;:::o;9109:410::-;9149:7;9172:20;9190:1;9172:20;:::i;:::-;9167:25;;9206:20;9224:1;9206:20;:::i;:::-;9201:25;;9261:1;9258;9254:9;9283:30;9301:11;9283:30;:::i;:::-;9272:41;;9462:1;9453:7;9449:15;9446:1;9443:22;9423:1;9416:9;9396:83;9373:139;;9492:18;;:::i;:::-;9373:139;9157:362;9109:410;;;;:::o;9525:180::-;9573:77;9570:1;9563:88;9670:4;9667:1;9660:15;9694:4;9691:1;9684:15;9711:185;9751:1;9768:20;9786:1;9768:20;:::i;:::-;9763:25;;9802:20;9820:1;9802:20;:::i;:::-;9797:25;;9841:1;9831:35;;9846:18;;:::i;:::-;9831:35;9888:1;9885;9881:9;9876:14;;9711:185;;;;:::o;9902:220::-;10042:34;10038:1;10030:6;10026:14;10019:58;10111:3;10106:2;10098:6;10094:15;10087:28;9902:220;:::o;10128:366::-;10270:3;10291:67;10355:2;10350:3;10291:67;:::i;:::-;10284:74;;10367:93;10456:3;10367:93;:::i;:::-;10485:2;10480:3;10476:12;10469:19;;10128:366;;;:::o;10500:419::-;10666:4;10704:2;10693:9;10689:18;10681:26;;10753:9;10747:4;10743:20;10739:1;10728:9;10724:17;10717:47;10781:131;10907:4;10781:131;:::i;:::-;10773:139;;10500:419;;;:::o;10925:194::-;10965:4;10985:20;11003:1;10985:20;:::i;:::-;10980:25;;11019:20;11037:1;11019:20;:::i;:::-;11014:25;;11063:1;11060;11056:9;11048:17;;11087:1;11081:4;11078:11;11075:37;;;11092:18;;:::i;:::-;11075:37;10925:194;;;;:::o;11125:224::-;11265:34;11261:1;11253:6;11249:14;11242:58;11334:7;11329:2;11321:6;11317:15;11310:32;11125:224;:::o;11355:366::-;11497:3;11518:67;11582:2;11577:3;11518:67;:::i;:::-;11511:74;;11594:93;11683:3;11594:93;:::i;:::-;11712:2;11707:3;11703:12;11696:19;;11355:366;;;:::o;11727:419::-;11893:4;11931:2;11920:9;11916:18;11908:26;;11980:9;11974:4;11970:20;11966:1;11955:9;11951:17;11944:47;12008:131;12134:4;12008:131;:::i;:::-;12000:139;;11727:419;;;:::o;12152:180::-;12200:77;12197:1;12190:88;12297:4;12294:1;12287:15;12321:4;12318:1;12311:15;12338:180;12386:77;12383:1;12376:88;12483:4;12480:1;12473:15;12507:4;12504:1;12497:15;12524:143;12581:5;12612:6;12606:13;12597:22;;12628:33;12655:5;12628:33;:::i;:::-;12524:143;;;;:::o;12673:351::-;12743:6;12792:2;12780:9;12771:7;12767:23;12763:32;12760:119;;;12798:79;;:::i;:::-;12760:119;12918:1;12943:64;12999:7;12990:6;12979:9;12975:22;12943:64;:::i;:::-;12933:74;;12889:128;12673:351;;;;:::o;13030:85::-;13075:7;13104:5;13093:16;;13030:85;;;:::o;13121:158::-;13179:9;13212:61;13230:42;13239:32;13265:5;13239:32;:::i;:::-;13230:42;:::i;:::-;13212:61;:::i;:::-;13199:74;;13121:158;;;:::o;13285:147::-;13380:45;13419:5;13380:45;:::i;:::-;13375:3;13368:58;13285:147;;:::o;13438:114::-;13505:6;13539:5;13533:12;13523:22;;13438:114;;;:::o;13558:184::-;13657:11;13691:6;13686:3;13679:19;13731:4;13726:3;13722:14;13707:29;;13558:184;;;;:::o;13748:132::-;13815:4;13838:3;13830:11;;13868:4;13863:3;13859:14;13851:22;;13748:132;;;:::o;13886:108::-;13963:24;13981:5;13963:24;:::i;:::-;13958:3;13951:37;13886:108;;:::o;14000:179::-;14069:10;14090:46;14132:3;14124:6;14090:46;:::i;:::-;14168:4;14163:3;14159:14;14145:28;;14000:179;;;;:::o;14185:113::-;14255:4;14287;14282:3;14278:14;14270:22;;14185:113;;;:::o;14334:732::-;14453:3;14482:54;14530:5;14482:54;:::i;:::-;14552:86;14631:6;14626:3;14552:86;:::i;:::-;14545:93;;14662:56;14712:5;14662:56;:::i;:::-;14741:7;14772:1;14757:284;14782:6;14779:1;14776:13;14757:284;;;14858:6;14852:13;14885:63;14944:3;14929:13;14885:63;:::i;:::-;14878:70;;14971:60;15024:6;14971:60;:::i;:::-;14961:70;;14817:224;14804:1;14801;14797:9;14792:14;;14757:284;;;14761:14;15057:3;15050:10;;14458:608;;;14334:732;;;;:::o;15072:831::-;15335:4;15373:3;15362:9;15358:19;15350:27;;15387:71;15455:1;15444:9;15440:17;15431:6;15387:71;:::i;:::-;15468:80;15544:2;15533:9;15529:18;15520:6;15468:80;:::i;:::-;15595:9;15589:4;15585:20;15580:2;15569:9;15565:18;15558:48;15623:108;15726:4;15717:6;15623:108;:::i;:::-;15615:116;;15741:72;15809:2;15798:9;15794:18;15785:6;15741:72;:::i;:::-;15823:73;15891:3;15880:9;15876:19;15867:6;15823:73;:::i;:::-;15072:831;;;;;;;;:::o;15909:147::-;16010:11;16047:3;16032:18;;15909:147;;;;:::o;16062:114::-;;:::o;16182:398::-;16341:3;16362:83;16443:1;16438:3;16362:83;:::i;:::-;16355:90;;16454:93;16543:3;16454:93;:::i;:::-;16572:1;16567:3;16563:11;16556:18;;16182:398;;;:::o;16586:379::-;16770:3;16792:147;16935:3;16792:147;:::i;:::-;16785:154;;16956:3;16949:10;;16586:379;;;:::o;16971:180::-;17111:32;17107:1;17099:6;17095:14;17088:56;16971:180;:::o;17157:366::-;17299:3;17320:67;17384:2;17379:3;17320:67;:::i;:::-;17313:74;;17396:93;17485:3;17396:93;:::i;:::-;17514:2;17509:3;17505:12;17498:19;;17157:366;;;:::o;17529:419::-;17695:4;17733:2;17722:9;17718:18;17710:26;;17782:9;17776:4;17772:20;17768:1;17757:9;17753:17;17746:47;17810:131;17936:4;17810:131;:::i;:::-;17802:139;;17529:419;;;:::o;17954:807::-;18203:4;18241:3;18230:9;18226:19;18218:27;;18255:71;18323:1;18312:9;18308:17;18299:6;18255:71;:::i;:::-;18336:72;18404:2;18393:9;18389:18;18380:6;18336:72;:::i;:::-;18418:80;18494:2;18483:9;18479:18;18470:6;18418:80;:::i;:::-;18508;18584:2;18573:9;18569:18;18560:6;18508:80;:::i;:::-;18598:73;18666:3;18655:9;18651:19;18642:6;18598:73;:::i;:::-;18681;18749:3;18738:9;18734:19;18725:6;18681:73;:::i;:::-;17954:807;;;;;;;;;:::o;18767:143::-;18824:5;18855:6;18849:13;18840:22;;18871:33;18898:5;18871:33;:::i;:::-;18767:143;;;;:::o;18916:663::-;19004:6;19012;19020;19069:2;19057:9;19048:7;19044:23;19040:32;19037:119;;;19075:79;;:::i;:::-;19037:119;19195:1;19220:64;19276:7;19267:6;19256:9;19252:22;19220:64;:::i;:::-;19210:74;;19166:128;19333:2;19359:64;19415:7;19406:6;19395:9;19391:22;19359:64;:::i;:::-;19349:74;;19304:129;19472:2;19498:64;19554:7;19545:6;19534:9;19530:22;19498:64;:::i;:::-;19488:74;;19443:129;18916:663;;;;;:::o;19585:332::-;19706:4;19744:2;19733:9;19729:18;19721:26;;19757:71;19825:1;19814:9;19810:17;19801:6;19757:71;:::i;:::-;19838:72;19906:2;19895:9;19891:18;19882:6;19838:72;:::i;:::-;19585:332;;;;;:::o;19923:177::-;20063:29;20059:1;20051:6;20047:14;20040:53;19923:177;:::o;20106:366::-;20248:3;20269:67;20333:2;20328:3;20269:67;:::i;:::-;20262:74;;20345:93;20434:3;20345:93;:::i;:::-;20463:2;20458:3;20454:12;20447:19;;20106:366;;;:::o;20478:419::-;20644:4;20682:2;20671:9;20667:18;20659:26;;20731:9;20725:4;20721:20;20717:1;20706:9;20702:17;20695:47;20759:131;20885:4;20759:131;:::i;:::-;20751:139;;20478:419;;;:::o
Metadata Hash
ipfs://1870522a15c13d0c1df82d62d2e50c5ccfad21339cf1bd5cda668eee6ba783b0