ERC-721
Gaming
Overview
Max Total Supply
1,137 GoE.Genesis
Holders
453
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
2 GoE.GenesisLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GoEGenesis
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-25 */ /* .d8888b. 8888888888 d88P Y88b 888 888 888 888 888 .d88b. 8888888 888 88888 d88""88b 888 888 888 888 888 888 Y88b d88P Y88..88P 888 "Y8888P88 "Y88P" 8888888888 .d8888b. d8b d88P Y88b Y8P 888 888 888 .d88b. 88888b. .d88b. .d8888b 888 .d8888b 888 88888 d8P Y8b 888 "88b d8P Y8b 88K 888 88K 888 888 88888888 888 888 88888888 "Y8888b. 888 "Y8888b. Y88b d88P Y8b. 888 888 Y8b. X88 888 X88 "Y8888P88 "Y8888 888 888 "Y8888 88888P' 888 88888P' */ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0; interface IGoEHelper { function isContract(address) external view returns (bool); function toString(uint256) external pure returns (string memory); } interface IGoE20Basic { function decimals() external view returns(uint256); function transferFrom(address,address,uint256) external returns (bool); function allowance(address,address) external view returns (uint256); function transfer(address,uint256) external returns (bool); function balanceOf(address) external view returns (uint256); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IGoE721Basic is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address ) external view returns (uint256 ); function ownerOf(uint256 ) external view returns (address ); function safeTransferFrom(address ,address ,uint256 ) external; function transferFrom(address ,address ,uint256 ) external; function approve(address , uint256 ) external; function getApproved(uint256 ) external view returns (address ); function setApprovalForAll(address , bool ) external; function isApprovedForAll(address , address ) external view returns (bool); function safeTransferFrom(address , address ,uint256 , bytes calldata ) external; function exists(uint256) external view returns(bool); } interface IGoE721Meta is IGoE721Basic { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256) external view returns (string memory); } interface IGoEBridge { function formCrossChainGateRequest(uint256, uint256, address, bool) external view returns(bytes memory); function createCrossChainGateRequest(bytes memory _nRequest) external returns(bool); } contract ProxyData { // internal mapping for authorized address mapping(bytes32 => bool) internal authorized; // enum for authorization types enum AType { KEY, ADMIN, CONTRACT } address internal _owner; } contract GoEAccess is ProxyData { constructor(){ authorized[_getKec(msg.sender, AType.KEY)] = true; _owner = 0xd928775286848A0624342252167c3FFc459bADed; } function _msgSender() internal view returns (address) { return msg.sender; } function _getKec(address a, AType t) internal pure returns(bytes32){ return(keccak256(abi.encode(a, t))); } function _isAuthorized(address _addr) internal view returns(uint8){ require(_addr != address(0), "GoEAccess: No Zero Addresses allowed"); if(authorized[_getKec(_addr, AType.KEY)]){ return 3; } else if(authorized[_getKec(_addr, AType.ADMIN)]){ return 2; } else if(authorized[_getKec(_addr, AType.CONTRACT)]){ return 1; }else{ return 0; } } function authorizeAddress(AType addressType, address authorizedAddress) public keyAllowed { require(_isAuthorized(authorizedAddress) == 0, "GoEAccess: This address is already authorized"); _authorizeAddress(addressType, authorizedAddress); } function _authorizeAddress(AType _at, address _a) internal { authorized[_getKec(_a, _at)] = true; } function _unauthorizeAddress(AType _at, address _a) internal { authorized[_getKec(_a, _at)] = false; } modifier keyAllowed() { require(_isAuthorized(_msgSender()) == 3, "GoEAccess: Key person only."); _; } modifier adminsAllowed() { require(_isAuthorized(_msgSender()) >= 2, "GoEAccess: Only allowed admins have access"); _; } modifier contractsAllowed() { require(_isAuthorized(_msgSender()) >= 1, "GoEAccess: Only allowed contracts have access"); _; } function owner() public view returns (address) { return _owner; } function changeOwner(address _newOwner) public keyAllowed { _owner = _newOwner; } } contract GoE20Transactions { /** * boring ERC20 function to send compliant tokens */ function send20Token(address token, address reciever, uint256 amount) internal returns(bool){ require(IGoE20Basic(token).balanceOf(address(this)) > amount, "GoE20Transactions: No enough balance"); require(IGoE20Basic(token).transfer(reciever, amount), "GoE20Transactions: Cannot currently transfer"); return true; } /** * boring ERC20 function to recieve compliant tokens */ function recieve20Token(address token, address sender, uint256 amount) internal returns(bool) { require(IGoE20Basic(token).allowance(sender, address(this)) >= amount, "GoE20Transactions: Need to approve the token"); require(IGoE20Basic(token).transferFrom(sender, address(this), amount), "GoE20Transactions: Need to transfer tokens "); return true; } } contract GoE721Data { /** * events required by Non-Fungible tokens implementation * more info @ https://eips.ethereum.org/EIPS/eip-721[EIP] */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * variables used by ERC721 standard contracts with additional params : * * 1. `_attribProxy` parameter which provides onChain data attributes * for all Non-Fungible tokens produced by proxy implemented contracts. * * 2. `_reservedAmount` a certain pre-specified amount of Non-Fungible tokens * for the contract to reserve. * * 3. `_paused` a control variable for ERC721 {mint} function. */ address _attribProxy; string _name; string _symbol; string _baseUrl; string _baseExtention; uint256 _mintIdx; uint256 _maxSupply; uint256 _reservedAmount; uint256 _nativeMintCost; bool _paused; /** * variables required by Non-Fungible tokens implementation * more info @ https://eips.ethereum.org/EIPS/eip-721[EIP] * to adhere to functionality requested by the EIP. Main fork from OpenZepplin * more info @ https://docs.openzeppelin.com/contracts/2.x/api/token/erc721 */ mapping(uint256 => address) _owners; mapping(address => uint256) _balances; mapping(uint256 => address) _tokenApprovals; mapping(address => mapping(address => bool)) _operatorApprovals; mapping(uint256 => uint256) _bridged; mapping(uint256 => address) _bridgeReference; } contract GoEGenesis is GoE721Data, GoE20Transactions, GoEAccess { constructor (address attribProxy_, string memory name_, string memory symbol_, string memory baseUri_, string memory baseExt_, uint256 maxSupply_, uint256 reservedAmount_, uint256 nativeMintCost_) { _name = name_; _symbol = symbol_; _baseUrl = baseUri_; _baseExtention = baseExt_; _maxSupply = maxSupply_; _reservedAmount = reservedAmount_; _nativeMintCost = nativeMintCost_; _mintIdx = 1; _paused = true; _attribProxy = attribProxy_; } /** * @dev Less gas consumption if `_mintIdx` starts at * a non-zero value, thus minting starts with tokenId = 1 */ function totalSupply() public view returns(uint256){ return _mintIdx-1; } function maxSupply() public view returns(uint256) { return _maxSupply; } function mintCost() public view returns(uint256) { return _nativeMintCost; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function paused() public view returns (bool) { return _paused; } function tokenChain(uint256 tokenId) public view returns(uint256) { if(_bridged[tokenId] == 0){ return block.chainid; }else{ return _bridged[tokenId]; } } function walletOfOwner(address wallet) public view returns(uint256[] memory walletNFTs){ uint256 amnt = 0; for(uint256 i=1; i<_mintIdx; i++){ if(ownerOf(i) == wallet){ amnt += 1; } } walletNFTs = new uint256[](amnt); uint256 _idx = 0; for(uint256 i=1; i<_mintIdx; i++){ if(ownerOf(i) == wallet){ walletNFTs[_idx] = i; _idx += 1; } } } function tokenURI(uint256 tokenId) public view returns (string memory) { require(_exists(tokenId), "GoE721Basic: URI query for nonexistent token"); string memory baseURI = _baseURI(); string memory _strId = IGoEHelper(0x53Eb3E1E02C8Eb8d185a074520BD52ECe09F7A43).toString(tokenId); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI , _strId , _baseExtention)) : ""; } function contractURI() public view returns (string memory) { string memory baseURI = _baseURI(); return string(abi.encodePacked(baseURI , "Genesis", _baseExtention)); } function mint(address to, address) external payable { require(!_paused, "GoE721Basic: minting is paused"); require(_mintIdx <= (_maxSupply-_reservedAmount), "GoE721Basic: no more mints"); require(msg.value >= _nativeMintCost, "GoE721Basic: Min payment of minting cost is required"); _mint(to, _mintIdx); _mintIdx += 1; } function supportsInterface(bytes4 _interface) public pure returns (bool) { return (_interface == type(IGoE721Basic).interfaceId || _interface == type(IGoE721Meta).interfaceId); } function balanceOf(address owner) public view returns (uint256) { require(owner != address(0), "GoE721Basic: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "GoE721Basic: owner query for nonexistent token"); return owner; } function approve(address to, uint256 tokenId) public{ address owner = ownerOf(tokenId); require(to != owner, "GoE721Basic: approval to current owner"); require( msg.sender == owner || isApprovedForAll(owner, msg.sender), "GoE721Basic: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view returns (address) { require(_exists(tokenId), "GoE721Basic: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public { require(operator != msg.sender, "GoE721Basic: approve to caller"); _operatorApprovals[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function isApprovedForAll(address owner, address operator) public view returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom(address from,address to,uint256 tokenId) public { //solhint-disable-next-line max-line-length require(_isApprovedOrOwner(msg.sender, tokenId), "GoE721Basic: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom(address from,address to,uint256 tokenId) public { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom(address from,address to,uint256 tokenId,bytes memory _data) public { require(_isApprovedOrOwner(msg.sender, tokenId), "GoE721Basic: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _baseURI() public view returns (string memory) { return _baseUrl; } function _safeTransfer(address from,address to,uint256 tokenId,bytes memory) internal { _transfer(from, to, tokenId); } function exists(uint256 tokenId) external view returns(bool){ return _exists(tokenId); } function _exists(uint256 tokenId) internal view returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) { require(_exists(tokenId), "GoE721Basic: operator query for nonexistent token"); address owner = ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _mint(address to, uint256 tokenId) internal { // require(to != address(0), "GoE: mint to the zero address"); // require(!_exists(tokenId), "GoE: token already minted"); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal { address owner = ownerOf(tokenId); // Clear approvals _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer(address from,address to,uint256 tokenId) internal { require(ownerOf(tokenId) == from, "GoE721Basic: transfer of token that is not own"); require(to != address(0), "GoE721Basic: transfer to the zero address"); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal { _tokenApprovals[tokenId] = to; emit Approval(ownerOf(tokenId), to, tokenId); } /** * onChain attributes contract for all Non-Fungible tokens "minted" by * the `_proxied` contract */ function changeAttribProxy(address attribProxy_) external adminsAllowed { _attribProxy = attribProxy_; } function changeURLParams(string memory baseUri_, string memory baseExt_) external adminsAllowed { _baseUrl = baseUri_; _baseExtention = baseExt_; } function pauseToggle() external adminsAllowed { _paused = !_paused; } function changeMintCost(uint256 cost) external adminsAllowed { _nativeMintCost = cost; } function withdraw(address token, address to, uint256 amount) external keyAllowed { if(token == address(0)){ require(payable(to).send(amount)); }else{ send20Token(token, to, amount); } } function policyMint(address _to, uint256 _amount) external contractsAllowed { require(_mintIdx+_amount <= _maxSupply, "GoE721Proxy: Total amounts more than reserved"); for(uint256 i=0; i<_amount; i++){ _mint(_to, _mintIdx); _mintIdx += 1; } } function switchToChain(uint256 tokenId, uint256 chainId) external contractsAllowed { address oldOwner = ownerOf(tokenId); require(_bridged[tokenId] == block.chainid || _bridged[tokenId] == 0, "GoE721Proxy: This token is already not on this chain"); require(IGoEBridge(msg.sender).createCrossChainGateRequest(IGoEBridge(msg.sender).formCrossChainGateRequest(chainId, tokenId, oldOwner, true)), "GoE721Proxy: Cannot switch chains currently"); _burn(tokenId); _bridged[tokenId] = chainId; _bridgeReference[tokenId] = oldOwner; } function switchFromChain(uint256 tokenId, address tokenOwner) external contractsAllowed { require(_bridged[tokenId] != block.chainid, "GoE721Proxy: This token is already on this chain"); require(!_exists(tokenId), "GoE721Proxy: Bridge minting does not allow tokens that are already minted"); _mint(tokenOwner, tokenId); _bridgeReference[tokenId] = tokenOwner; _bridged[tokenId] = block.chainid; } fallback () external payable { address addr = _attribProxy; assembly { let freememstart := mload(0x40) calldatacopy(freememstart, 0, calldatasize()) let success := delegatecall(not(0), addr, freememstart, calldatasize(), freememstart, 0) returndatacopy(freememstart, 0, returndatasize()) switch success case 0 { revert(freememstart, returndatasize()) } default { return(freememstart, returndatasize()) } } } receive() external payable { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"attribProxy_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"baseUri_","type":"string"},{"internalType":"string","name":"baseExt_","type":"string"},{"internalType":"uint256","name":"maxSupply_","type":"uint256"},{"internalType":"uint256","name":"reservedAmount_","type":"uint256"},{"internalType":"uint256","name":"nativeMintCost_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"_baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum ProxyData.AType","name":"addressType","type":"uint8"},{"internalType":"address","name":"authorizedAddress","type":"address"}],"name":"authorizeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"attribProxy_","type":"address"}],"name":"changeAttribProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cost","type":"uint256"}],"name":"changeMintCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseUri_","type":"string"},{"internalType":"string","name":"baseExt_","type":"string"}],"name":"changeURLParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseToggle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"policyMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interface","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"switchFromChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"switchToChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenChain","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"walletNFTs","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162004e0238038062004e02833981810160405281019062000037919062000345565b60016010600062000050336000620001b460201b60201c565b815260200190815260200160002060006101000a81548160ff02191690831515021790555073d928775286848a0624342252167c3ffc459baded601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660019080519060200190620000e2929190620001e9565b508560029080519060200190620000fb929190620001e9565b50846003908051906020019062000114929190620001e9565b5083600490805190602001906200012d929190620001e9565b5082600681905550816007819055508060088190555060016005819055506001600960006101000a81548160ff021916908315150217905550876000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506200073e565b60008282604051602001620001cb929190620004ac565b60405160208183030381529060405280519060200120905092915050565b828054620001f790620005d5565b90600052602060002090601f0160209004810192826200021b576000855562000267565b82601f106200023657805160ff191683800117855562000267565b8280016001018555821562000267579182015b828111156200026657825182559160200191906001019062000249565b5b5090506200027691906200027a565b5090565b5b80821115620002955760008160009055506001016200027b565b5090565b6000620002b0620002aa8462000502565b620004d9565b905082815260208101848484011115620002cf57620002ce620006d3565b5b620002dc8482856200059f565b509392505050565b600081519050620002f5816200070a565b92915050565b600082601f830112620003135762000312620006ce565b5b81516200032584826020860162000299565b91505092915050565b6000815190506200033f8162000724565b92915050565b600080600080600080600080610100898b031215620003695762000368620006dd565b5b6000620003798b828c01620002e4565b985050602089015167ffffffffffffffff8111156200039d576200039c620006d8565b5b620003ab8b828c01620002fb565b975050604089015167ffffffffffffffff811115620003cf57620003ce620006d8565b5b620003dd8b828c01620002fb565b965050606089015167ffffffffffffffff811115620004015762000400620006d8565b5b6200040f8b828c01620002fb565b955050608089015167ffffffffffffffff811115620004335762000432620006d8565b5b620004418b828c01620002fb565b94505060a0620004548b828c016200032e565b93505060c0620004678b828c016200032e565b92505060e06200047a8b828c016200032e565b9150509295985092959890939650565b620004958162000538565b82525050565b620004a6816200058b565b82525050565b6000604082019050620004c360008301856200048a565b620004d260208301846200049b565b9392505050565b6000620004e5620004f8565b9050620004f382826200060b565b919050565b6000604051905090565b600067ffffffffffffffff82111562000520576200051f6200069f565b5b6200052b82620006e2565b9050602081019050919050565b6000620005458262000561565b9050919050565b60008190506200055c82620006f3565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000598826200054c565b9050919050565b60005b83811015620005bf578082015181840152602081019050620005a2565b83811115620005cf576000848401525b50505050565b60006002820490506001821680620005ee57607f821691505b6020821081141562000605576200060462000670565b5b50919050565b6200061682620006e2565b810181811067ffffffffffffffff821117156200063857620006376200069f565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6003811062000707576200070662000641565b5b50565b620007158162000538565b81146200072157600080fd5b50565b6200072f8162000581565b81146200073b57600080fd5b50565b6146b4806200074e6000396000f3fe6080604052600436106101fd5760003560e01c80638bf380cf1161010d578063c4d4b04a116100a0578063d5abeb011161006f578063d5abeb0114610793578063d9caed12146107be578063e8a3d485146107e7578063e985e9c514610812578063ee1fe2ad1461084f57610204565b8063c4d4b04a146106c7578063c58cc48814610704578063c87b56dd1461072d578063cf50f8c51461076a57610204565b8063a6f9dae1116100dc578063a6f9dae114610621578063b88d4fde1461064a578063bdb4b84814610673578063c18ace051461069e57610204565b80638bf380cf146105795780638da5cb5b146105a257806395d89b41146105cd578063a22cb465146105f857610204565b80634f558e7911610190578063743976a01161015f578063743976a0146104bc578063783fd922146104e75780637f1921ef14610510578063834307d91461053957806388f912851461055057610204565b80634f558e79146103da5780635c975abb146104175780636352211e1461044257806370a082311461047f57610204565b806318160ddd116101cc57806318160ddd1461032057806323b872dd1461034b57806342842e0e14610374578063438b63001461039d57610204565b806301ffc9a71461025257806306fdde031461028f578063081812fc146102ba578063095ea7b3146102f757610204565b3661020457005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040513660008237600081368385600019f43d6000833e806000811461024e573d83f35b3d83fd5b34801561025e57600080fd5b5061027960048036038101906102749190612d35565b61086b565b6040516102869190613609565b60405180910390f35b34801561029b57600080fd5b506102a461093d565b6040516102b19190613646565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190612eac565b6109cf565b6040516102ee919061357a565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190612cc8565b610a54565b005b34801561032c57600080fd5b50610335610b5e565b60405161034291906139a8565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612bb2565b610b74565b005b34801561038057600080fd5b5061039b60048036038101906103969190612bb2565b610bcd565b005b3480156103a957600080fd5b506103c460048036038101906103bf9190612b45565b610bed565b6040516103d191906135e7565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190612eac565b610d45565b60405161040e9190613609565b60405180910390f35b34801561042357600080fd5b5061042c610d57565b6040516104399190613609565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190612eac565b610d6e565b604051610476919061357a565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190612b45565b610e20565b6040516104b391906139a8565b60405180910390f35b3480156104c857600080fd5b506104d1610ed8565b6040516104de9190613646565b60405180910390f35b3480156104f357600080fd5b5061050e60048036038101906105099190612e34565b610f6a565b005b34801561051c57600080fd5b5061053760048036038101906105329190612eac565b610ff2565b005b34801561054557600080fd5b5061054e611052565b005b34801561055c57600080fd5b5061057760048036038101906105729190612dab565b6110d4565b005b34801561058557600080fd5b506105a0600480360381019061059b9190612cc8565b611185565b005b3480156105ae57600080fd5b506105b7611276565b6040516105c4919061357a565b60405180910390f35b3480156105d957600080fd5b506105e26112a0565b6040516105ef9190613646565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190612c88565b611332565b005b34801561062d57600080fd5b5061064860048036038101906106439190612b45565b61149e565b005b34801561065657600080fd5b50610671600480360381019061066c9190612c05565b611537565b005b34801561067f57600080fd5b50610688611592565b60405161069591906139a8565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c09190612f46565b61159c565b005b3480156106d357600080fd5b506106ee60048036038101906106e99190612eac565b611848565b6040516106fb91906139a8565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190612f06565b611889565b005b34801561073957600080fd5b50610754600480360381019061074f9190612eac565b6119f6565b6040516107619190613646565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c9190612b45565b611b3f565b005b34801561079f57600080fd5b506107a8611bd8565b6040516107b591906139a8565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190612bb2565b611be2565b005b3480156107f357600080fd5b506107fc611cc1565b6040516108099190613646565b60405180910390f35b34801561081e57600080fd5b5061083960048036038101906108349190612b72565b611cf8565b6040516108469190613609565b60405180910390f35b61086960048036038101906108649190612b72565b611d8c565b005b60007fcff9d6b4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061093657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606001805461094c90613c85565b80601f016020809104026020016040519081016040528092919081815260200182805461097890613c85565b80156109c55780601f1061099a576101008083540402835291602001916109c5565b820191906000526020600020905b8154815290600101906020018083116109a857829003601f168201915b5050505050905090565b60006109da82611e9f565b610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1090613908565b60405180910390fd5b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a5f82610d6e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac790613948565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b105750610b0f8133611cf8565b5b610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690613688565b60405180910390fd5b610b598383611f0b565b505050565b60006001600554610b6f9190613b76565b905090565b610b7e3382611fc4565b610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490613708565b60405180910390fd5b610bc88383836120a2565b505050565b610be883838360405180602001604052806000815250611537565b505050565b6060600080600190505b600554811015610c60578373ffffffffffffffffffffffffffffffffffffffff16610c2182610d6e565b73ffffffffffffffffffffffffffffffffffffffff161415610c4d57600182610c4a9190613b20565b91505b8080610c5890613ce8565b915050610bf7565b508067ffffffffffffffff811115610c7b57610c7a613ded565b5b604051908082528060200260200182016040528015610ca95781602001602082028036833780820191505090505b509150600080600190505b600554811015610d3d578473ffffffffffffffffffffffffffffffffffffffff16610cde82610d6e565b73ffffffffffffffffffffffffffffffffffffffff161415610d2a5780848381518110610d0e57610d0d613dbe565b5b602002602001018181525050600182610d279190613b20565b91505b8080610d3590613ce8565b915050610cb4565b505050919050565b6000610d5082611e9f565b9050919050565b6000600960009054906101000a900460ff16905090565b600080600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e906136c8565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e88906137c8565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060038054610ee790613c85565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1390613c85565b8015610f605780601f10610f3557610100808354040283529160200191610f60565b820191906000526020600020905b815481529060010190602001808311610f4357829003601f168201915b5050505050905090565b6002610f7c610f776122f3565b6122fb565b60ff161015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613748565b60405180910390fd5b8160039080519060200190610fd692919061284f565b508060049080519060200190610fed92919061284f565b505050565b6002611004610fff6122f3565b6122fb565b60ff161015611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90613748565b60405180910390fd5b8060088190555050565b600261106461105f6122f3565b6122fb565b60ff1610156110a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109f90613748565b60405180910390fd5b600960009054906101000a900460ff1615600960006101000a81548160ff021916908315150217905550565b60036110e66110e16122f3565b6122fb565b60ff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906138e8565b60405180910390fd5b6000611134826122fb565b60ff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90613848565b60405180910390fd5b6111818282612421565b5050565b60016111976111926122f3565b6122fb565b60ff1610156111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d290613928565b60405180910390fd5b600654816005546111ec9190613b20565b111561122d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122490613788565b60405180910390fd5b60005b81811015611271576112448360055461245a565b6001600560008282546112579190613b20565b92505081905550808061126990613ce8565b915050611230565b505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546112af90613c85565b80601f01602080910402602001604051908101604052809291908181526020018280546112db90613c85565b80156113285780601f106112fd57610100808354040283529160200191611328565b820191906000526020600020905b81548152906001019060200180831161130b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611398906138a8565b60405180910390fd5b80600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114929190613609565b60405180910390a35050565b60036114b06114ab6122f3565b6122fb565b60ff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea906138e8565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115413383611fc4565b611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790613708565b60405180910390fd5b61158c84848484612563565b50505050565b6000600854905090565b60016115ae6115a96122f3565b6122fb565b60ff1610156115f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e990613928565b60405180910390fd5b60006115fd83610d6e565b905046600e600085815260200190815260200160002054148061163357506000600e600085815260200190815260200160002054145b611672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611669906137e8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16639418f44c3373ffffffffffffffffffffffffffffffffffffffff1663452140b985878660016040518563ffffffff1660e01b81526004016116ce94939291906139c3565b60006040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906117239190612d62565b6040518263ffffffff1660e01b815260040161173f9190613624565b602060405180830381600087803b15801561175957600080fd5b505af115801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190612d08565b6117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613768565b60405180910390fd5b6117d983612574565b81600e60008581526020019081526020016000208190555080600f600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600080600e600084815260200190815260200160002054141561186d57469050611884565b600e60008381526020019081526020016000205490505b919050565b600161189b6118966122f3565b6122fb565b60ff1610156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d690613928565b60405180910390fd5b46600e6000848152602001908152602001600020541415611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613808565b60405180910390fd5b61193e82611e9f565b1561197e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611975906137a8565b60405180910390fd5b611988818361245a565b80600f600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555046600e6000848152602001908152602001600020819055505050565b6060611a0182611e9f565b611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613868565b60405180910390fd5b6000611a4a610ed8565b905060007353eb3e1e02c8eb8d185a074520bd52ece09f7a4373ffffffffffffffffffffffffffffffffffffffff16636900a3ae856040518263ffffffff1660e01b8152600401611a9b91906139a8565b60006040518083038186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611af09190612deb565b90506000825111611b105760405180602001604052806000815250611b36565b81816004604051602001611b269392919061351a565b6040516020818303038152906040525b92505050919050565b6002611b51611b4c6122f3565b6122fb565b60ff161015611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613748565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600654905090565b6003611bf4611bef6122f3565b6122fb565b60ff1614611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e906138e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611caf578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050611caa57600080fd5b611cbc565b611cba838383612679565b505b505050565b60606000611ccd610ed8565b9050806004604051602001611ce392919061354b565b60405160208183030381529060405291505090565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600960009054906101000a900460ff1615611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd3906138c8565b60405180910390fd5b600754600654611dec9190613b76565b6005541115611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613828565b60405180910390fd5b600854341015611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613668565b60405180910390fd5b611e818260055461245a565b600160056000828254611e949190613b20565b925050819055505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611f7e83610d6e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611fcf82611e9f565b61200e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200590613888565b60405180910390fd5b600061201983610d6e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208857508373ffffffffffffffffffffffffffffffffffffffff16612070846109cf565b73ffffffffffffffffffffffffffffffffffffffff16145b8061209957506120988185611cf8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120c282610d6e565b73ffffffffffffffffffffffffffffffffffffffff1614612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f906136a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217f90613968565b60405180910390fd5b612193600082611f0b565b6001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121e39190613b76565b925050819055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461223a9190613b20565b9250508190555081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561236c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612363906136e8565b60405180910390fd5b6010600061237b84600061281c565b815260200190815260200160002060009054906101000a900460ff16156123a5576003905061241c565b601060006123b484600161281c565b815260200190815260200160002060009054906101000a900460ff16156123de576002905061241c565b601060006123ed84600261281c565b815260200190815260200160002060009054906101000a900460ff1615612417576001905061241c565b600090505b919050565b600160106000612431848661281c565b815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124aa9190613b20565b9250508190555081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61256e8484846120a2565b50505050565b600061257f82610d6e565b905061258c600083611f0b565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125dc9190613b76565b92505081905550600a600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000818473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126b5919061357a565b60206040518083038186803b1580156126cd57600080fd5b505afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127059190612ed9565b11612745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273c90613988565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016127809291906135be565b602060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d29190612d08565b612811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280890613728565b60405180910390fd5b600190509392505050565b60008282604051602001612831929190613595565b60405160208183030381529060405280519060200120905092915050565b82805461285b90613c85565b90600052602060002090601f01602090048101928261287d57600085556128c4565b82601f1061289657805160ff19168380011785556128c4565b828001600101855582156128c4579182015b828111156128c35782518255916020019190600101906128a8565b5b5090506128d191906128d5565b5090565b5b808211156128ee5760008160009055506001016128d6565b5090565b600061290561290084613a2d565b613a08565b90508281526020810184848401111561292157612920613e21565b5b61292c848285613c43565b509392505050565b600061294761294284613a2d565b613a08565b90508281526020810184848401111561296357612962613e21565b5b61296e848285613c52565b509392505050565b600061298961298484613a5e565b613a08565b9050828152602081018484840111156129a5576129a4613e21565b5b6129b0848285613c43565b509392505050565b60006129cb6129c684613a5e565b613a08565b9050828152602081018484840111156129e7576129e6613e21565b5b6129f2848285613c52565b509392505050565b600081359050612a0981614612565b92915050565b600081359050612a1e81614629565b92915050565b600081519050612a3381614629565b92915050565b600081359050612a4881614640565b92915050565b600082601f830112612a6357612a62613e1c565b5b8135612a738482602086016128f2565b91505092915050565b600082601f830112612a9157612a90613e1c565b5b8151612aa1848260208601612934565b91505092915050565b600081359050612ab981614657565b92915050565b600082601f830112612ad457612ad3613e1c565b5b8135612ae4848260208601612976565b91505092915050565b600082601f830112612b0257612b01613e1c565b5b8151612b128482602086016129b8565b91505092915050565b600081359050612b2a81614667565b92915050565b600081519050612b3f81614667565b92915050565b600060208284031215612b5b57612b5a613e2b565b5b6000612b69848285016129fa565b91505092915050565b60008060408385031215612b8957612b88613e2b565b5b6000612b97858286016129fa565b9250506020612ba8858286016129fa565b9150509250929050565b600080600060608486031215612bcb57612bca613e2b565b5b6000612bd9868287016129fa565b9350506020612bea868287016129fa565b9250506040612bfb86828701612b1b565b9150509250925092565b60008060008060808587031215612c1f57612c1e613e2b565b5b6000612c2d878288016129fa565b9450506020612c3e878288016129fa565b9350506040612c4f87828801612b1b565b925050606085013567ffffffffffffffff811115612c7057612c6f613e26565b5b612c7c87828801612a4e565b91505092959194509250565b60008060408385031215612c9f57612c9e613e2b565b5b6000612cad858286016129fa565b9250506020612cbe85828601612a0f565b9150509250929050565b60008060408385031215612cdf57612cde613e2b565b5b6000612ced858286016129fa565b9250506020612cfe85828601612b1b565b9150509250929050565b600060208284031215612d1e57612d1d613e2b565b5b6000612d2c84828501612a24565b91505092915050565b600060208284031215612d4b57612d4a613e2b565b5b6000612d5984828501612a39565b91505092915050565b600060208284031215612d7857612d77613e2b565b5b600082015167ffffffffffffffff811115612d9657612d95613e26565b5b612da284828501612a7c565b91505092915050565b60008060408385031215612dc257612dc1613e2b565b5b6000612dd085828601612aaa565b9250506020612de1858286016129fa565b9150509250929050565b600060208284031215612e0157612e00613e2b565b5b600082015167ffffffffffffffff811115612e1f57612e1e613e26565b5b612e2b84828501612aed565b91505092915050565b60008060408385031215612e4b57612e4a613e2b565b5b600083013567ffffffffffffffff811115612e6957612e68613e26565b5b612e7585828601612abf565b925050602083013567ffffffffffffffff811115612e9657612e95613e26565b5b612ea285828601612abf565b9150509250929050565b600060208284031215612ec257612ec1613e2b565b5b6000612ed084828501612b1b565b91505092915050565b600060208284031215612eef57612eee613e2b565b5b6000612efd84828501612b30565b91505092915050565b60008060408385031215612f1d57612f1c613e2b565b5b6000612f2b85828601612b1b565b9250506020612f3c858286016129fa565b9150509250929050565b60008060408385031215612f5d57612f5c613e2b565b5b6000612f6b85828601612b1b565b9250506020612f7c85828601612b1b565b9150509250929050565b6000612f9283836134fc565b60208301905092915050565b612fa781613baa565b82525050565b6000612fb882613ab4565b612fc28185613ae2565b9350612fcd83613a8f565b8060005b83811015612ffe578151612fe58882612f86565b9750612ff083613ad5565b925050600181019050612fd1565b5085935050505092915050565b61301481613bbc565b82525050565b600061302582613abf565b61302f8185613af3565b935061303f818560208601613c52565b61304881613e30565b840191505092915050565b61305c81613c31565b82525050565b600061306d82613aca565b6130778185613b04565b9350613087818560208601613c52565b61309081613e30565b840191505092915050565b60006130a682613aca565b6130b08185613b15565b93506130c0818560208601613c52565b80840191505092915050565b600081546130d981613c85565b6130e38186613b15565b945060018216600081146130fe576001811461310f57613142565b60ff19831686528186019350613142565b61311885613a9f565b60005b8381101561313a5781548189015260018201915060208101905061311b565b838801955050505b50505092915050565b6000613158603483613b04565b915061316382613e41565b604082019050919050565b600061317b603d83613b04565b915061318682613e90565b604082019050919050565b600061319e602e83613b04565b91506131a982613edf565b604082019050919050565b60006131c1602e83613b04565b91506131cc82613f2e565b604082019050919050565b60006131e4602483613b04565b91506131ef82613f7d565b604082019050919050565b6000613207603683613b04565b915061321282613fcc565b604082019050919050565b600061322a602c83613b04565b91506132358261401b565b604082019050919050565b600061324d602a83613b04565b91506132588261406a565b604082019050919050565b6000613270602b83613b04565b915061327b826140b9565b604082019050919050565b6000613293602d83613b04565b915061329e82614108565b604082019050919050565b60006132b6604983613b04565b91506132c182614157565b606082019050919050565b60006132d9602f83613b04565b91506132e4826141cc565b604082019050919050565b60006132fc603483613b04565b91506133078261421b565b604082019050919050565b600061331f603083613b04565b915061332a8261426a565b604082019050919050565b6000613342601a83613b04565b915061334d826142b9565b602082019050919050565b6000613365600783613b15565b9150613370826142e2565b600782019050919050565b6000613388602d83613b04565b91506133938261430b565b604082019050919050565b60006133ab602c83613b04565b91506133b68261435a565b604082019050919050565b60006133ce603183613b04565b91506133d9826143a9565b604082019050919050565b60006133f1601e83613b04565b91506133fc826143f8565b602082019050919050565b6000613414601e83613b04565b915061341f82614421565b602082019050919050565b6000613437601b83613b04565b91506134428261444a565b602082019050919050565b600061345a603183613b04565b915061346582614473565b604082019050919050565b600061347d602d83613b04565b9150613488826144c2565b604082019050919050565b60006134a0602683613b04565b91506134ab82614511565b604082019050919050565b60006134c3602983613b04565b91506134ce82614560565b604082019050919050565b60006134e6602483613b04565b91506134f1826145af565b604082019050919050565b61350581613c27565b82525050565b61351481613c27565b82525050565b6000613526828661309b565b9150613532828561309b565b915061353e82846130cc565b9150819050949350505050565b6000613557828561309b565b915061356282613358565b915061356e82846130cc565b91508190509392505050565b600060208201905061358f6000830184612f9e565b92915050565b60006040820190506135aa6000830185612f9e565b6135b76020830184613053565b9392505050565b60006040820190506135d36000830185612f9e565b6135e0602083018461350b565b9392505050565b600060208201905081810360008301526136018184612fad565b905092915050565b600060208201905061361e600083018461300b565b92915050565b6000602082019050818103600083015261363e818461301a565b905092915050565b600060208201905081810360008301526136608184613062565b905092915050565b600060208201905081810360008301526136818161314b565b9050919050565b600060208201905081810360008301526136a18161316e565b9050919050565b600060208201905081810360008301526136c181613191565b9050919050565b600060208201905081810360008301526136e1816131b4565b9050919050565b60006020820190508181036000830152613701816131d7565b9050919050565b60006020820190508181036000830152613721816131fa565b9050919050565b600060208201905081810360008301526137418161321d565b9050919050565b6000602082019050818103600083015261376181613240565b9050919050565b6000602082019050818103600083015261378181613263565b9050919050565b600060208201905081810360008301526137a181613286565b9050919050565b600060208201905081810360008301526137c1816132a9565b9050919050565b600060208201905081810360008301526137e1816132cc565b9050919050565b60006020820190508181036000830152613801816132ef565b9050919050565b6000602082019050818103600083015261382181613312565b9050919050565b6000602082019050818103600083015261384181613335565b9050919050565b600060208201905081810360008301526138618161337b565b9050919050565b600060208201905081810360008301526138818161339e565b9050919050565b600060208201905081810360008301526138a1816133c1565b9050919050565b600060208201905081810360008301526138c1816133e4565b9050919050565b600060208201905081810360008301526138e181613407565b9050919050565b600060208201905081810360008301526139018161342a565b9050919050565b600060208201905081810360008301526139218161344d565b9050919050565b6000602082019050818103600083015261394181613470565b9050919050565b6000602082019050818103600083015261396181613493565b9050919050565b60006020820190508181036000830152613981816134b6565b9050919050565b600060208201905081810360008301526139a1816134d9565b9050919050565b60006020820190506139bd600083018461350b565b92915050565b60006080820190506139d8600083018761350b565b6139e5602083018661350b565b6139f26040830185612f9e565b6139ff606083018461300b565b95945050505050565b6000613a12613a23565b9050613a1e8282613cb7565b919050565b6000604051905090565b600067ffffffffffffffff821115613a4857613a47613ded565b5b613a5182613e30565b9050602081019050919050565b600067ffffffffffffffff821115613a7957613a78613ded565b5b613a8282613e30565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613b2b82613c27565b9150613b3683613c27565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b6b57613b6a613d31565b5b828201905092915050565b6000613b8182613c27565b9150613b8c83613c27565b925082821015613b9f57613b9e613d31565b5b828203905092915050565b6000613bb582613c07565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050613c02826145fe565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613c3c82613bf4565b9050919050565b82818337600083830152505050565b60005b83811015613c70578082015181840152602081019050613c55565b83811115613c7f576000848401525b50505050565b60006002820490506001821680613c9d57607f821691505b60208210811415613cb157613cb0613d8f565b5b50919050565b613cc082613e30565b810181811067ffffffffffffffff82111715613cdf57613cde613ded565b5b80604052505050565b6000613cf382613c27565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d2657613d25613d31565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f476f4537323142617369633a204d696e207061796d656e74206f66206d696e7460008201527f696e6720636f7374206973207265717569726564000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f76652063616c6c6572206973206e60008201527f6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c000000602082015250565b7f476f4537323142617369633a207472616e73666572206f6620746f6b656e207460008201527f686174206973206e6f74206f776e000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a206f776e657220717565727920666f72206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f476f454163636573733a204e6f205a65726f2041646472657373657320616c6c60008201527f6f77656400000000000000000000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a207472616e736665722063616c6c65722069732060008201527f6e6f74206f776e6572206e6f7220617070726f76656400000000000000000000602082015250565b7f476f4532305472616e73616374696f6e733a2043616e6e6f742063757272656e60008201527f746c79207472616e736665720000000000000000000000000000000000000000602082015250565b7f476f454163636573733a204f6e6c7920616c6c6f7765642061646d696e73206860008201527f6176652061636365737300000000000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a2043616e6e6f742073776974636820636861696e60008201527f732063757272656e746c79000000000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a20546f74616c20616d6f756e7473206d6f72652060008201527f7468616e20726573657276656400000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a20427269646765206d696e74696e6720646f657360008201527f206e6f7420616c6c6f7720746f6b656e7320746861742061726520616c72656160208201527f6479206d696e7465640000000000000000000000000000000000000000000000604082015250565b7f476f4537323142617369633a2062616c616e636520717565727920666f72207460008201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a205468697320746f6b656e20697320616c72656160008201527f6479206e6f74206f6e207468697320636861696e000000000000000000000000602082015250565b7f476f4537323150726f78793a205468697320746f6b656e20697320616c72656160008201527f6479206f6e207468697320636861696e00000000000000000000000000000000602082015250565b7f476f4537323142617369633a206e6f206d6f7265206d696e7473000000000000600082015250565b7f47656e6573697300000000000000000000000000000000000000000000000000600082015250565b7f476f454163636573733a2054686973206164647265737320697320616c72656160008201527f647920617574686f72697a656400000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a2055524920717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a206f70657261746f7220717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f766520746f2063616c6c65720000600082015250565b7f476f4537323142617369633a206d696e74696e67206973207061757365640000600082015250565b7f476f454163636573733a204b657920706572736f6e206f6e6c792e0000000000600082015250565b7f476f4537323142617369633a20617070726f76656420717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f476f454163636573733a204f6e6c7920616c6c6f77656420636f6e747261637460008201527f7320686176652061636365737300000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f76616c20746f2063757272656e7460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a207472616e7366657220746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f476f4532305472616e73616374696f6e733a204e6f20656e6f7567682062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6003811061460f5761460e613d60565b5b50565b61461b81613baa565b811461462657600080fd5b50565b61463281613bbc565b811461463d57600080fd5b50565b61464981613bc8565b811461465457600080fd5b50565b6003811061466457600080fd5b50565b61467081613c27565b811461467b57600080fd5b5056fea264697066735822122087f26c8e708a9a7727ff0ecea85dfb6bd2d11816710d5050188911485eadc4c064736f6c63430008070033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000002bc0000000000000000000000000000000000000000000000000214e8348c4f0000000000000000000000000000000000000000000000000000000000000000000e476f452e47472f47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b476f452e47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6170692e676f652e67672f6765742f6d657461646174612f00000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c80638bf380cf1161010d578063c4d4b04a116100a0578063d5abeb011161006f578063d5abeb0114610793578063d9caed12146107be578063e8a3d485146107e7578063e985e9c514610812578063ee1fe2ad1461084f57610204565b8063c4d4b04a146106c7578063c58cc48814610704578063c87b56dd1461072d578063cf50f8c51461076a57610204565b8063a6f9dae1116100dc578063a6f9dae114610621578063b88d4fde1461064a578063bdb4b84814610673578063c18ace051461069e57610204565b80638bf380cf146105795780638da5cb5b146105a257806395d89b41146105cd578063a22cb465146105f857610204565b80634f558e7911610190578063743976a01161015f578063743976a0146104bc578063783fd922146104e75780637f1921ef14610510578063834307d91461053957806388f912851461055057610204565b80634f558e79146103da5780635c975abb146104175780636352211e1461044257806370a082311461047f57610204565b806318160ddd116101cc57806318160ddd1461032057806323b872dd1461034b57806342842e0e14610374578063438b63001461039d57610204565b806301ffc9a71461025257806306fdde031461028f578063081812fc146102ba578063095ea7b3146102f757610204565b3661020457005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040513660008237600081368385600019f43d6000833e806000811461024e573d83f35b3d83fd5b34801561025e57600080fd5b5061027960048036038101906102749190612d35565b61086b565b6040516102869190613609565b60405180910390f35b34801561029b57600080fd5b506102a461093d565b6040516102b19190613646565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190612eac565b6109cf565b6040516102ee919061357a565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190612cc8565b610a54565b005b34801561032c57600080fd5b50610335610b5e565b60405161034291906139a8565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612bb2565b610b74565b005b34801561038057600080fd5b5061039b60048036038101906103969190612bb2565b610bcd565b005b3480156103a957600080fd5b506103c460048036038101906103bf9190612b45565b610bed565b6040516103d191906135e7565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190612eac565b610d45565b60405161040e9190613609565b60405180910390f35b34801561042357600080fd5b5061042c610d57565b6040516104399190613609565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190612eac565b610d6e565b604051610476919061357a565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190612b45565b610e20565b6040516104b391906139a8565b60405180910390f35b3480156104c857600080fd5b506104d1610ed8565b6040516104de9190613646565b60405180910390f35b3480156104f357600080fd5b5061050e60048036038101906105099190612e34565b610f6a565b005b34801561051c57600080fd5b5061053760048036038101906105329190612eac565b610ff2565b005b34801561054557600080fd5b5061054e611052565b005b34801561055c57600080fd5b5061057760048036038101906105729190612dab565b6110d4565b005b34801561058557600080fd5b506105a0600480360381019061059b9190612cc8565b611185565b005b3480156105ae57600080fd5b506105b7611276565b6040516105c4919061357a565b60405180910390f35b3480156105d957600080fd5b506105e26112a0565b6040516105ef9190613646565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190612c88565b611332565b005b34801561062d57600080fd5b5061064860048036038101906106439190612b45565b61149e565b005b34801561065657600080fd5b50610671600480360381019061066c9190612c05565b611537565b005b34801561067f57600080fd5b50610688611592565b60405161069591906139a8565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c09190612f46565b61159c565b005b3480156106d357600080fd5b506106ee60048036038101906106e99190612eac565b611848565b6040516106fb91906139a8565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190612f06565b611889565b005b34801561073957600080fd5b50610754600480360381019061074f9190612eac565b6119f6565b6040516107619190613646565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c9190612b45565b611b3f565b005b34801561079f57600080fd5b506107a8611bd8565b6040516107b591906139a8565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190612bb2565b611be2565b005b3480156107f357600080fd5b506107fc611cc1565b6040516108099190613646565b60405180910390f35b34801561081e57600080fd5b5061083960048036038101906108349190612b72565b611cf8565b6040516108469190613609565b60405180910390f35b61086960048036038101906108649190612b72565b611d8c565b005b60007fcff9d6b4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061093657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606001805461094c90613c85565b80601f016020809104026020016040519081016040528092919081815260200182805461097890613c85565b80156109c55780601f1061099a576101008083540402835291602001916109c5565b820191906000526020600020905b8154815290600101906020018083116109a857829003601f168201915b5050505050905090565b60006109da82611e9f565b610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1090613908565b60405180910390fd5b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a5f82610d6e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac790613948565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b105750610b0f8133611cf8565b5b610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690613688565b60405180910390fd5b610b598383611f0b565b505050565b60006001600554610b6f9190613b76565b905090565b610b7e3382611fc4565b610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490613708565b60405180910390fd5b610bc88383836120a2565b505050565b610be883838360405180602001604052806000815250611537565b505050565b6060600080600190505b600554811015610c60578373ffffffffffffffffffffffffffffffffffffffff16610c2182610d6e565b73ffffffffffffffffffffffffffffffffffffffff161415610c4d57600182610c4a9190613b20565b91505b8080610c5890613ce8565b915050610bf7565b508067ffffffffffffffff811115610c7b57610c7a613ded565b5b604051908082528060200260200182016040528015610ca95781602001602082028036833780820191505090505b509150600080600190505b600554811015610d3d578473ffffffffffffffffffffffffffffffffffffffff16610cde82610d6e565b73ffffffffffffffffffffffffffffffffffffffff161415610d2a5780848381518110610d0e57610d0d613dbe565b5b602002602001018181525050600182610d279190613b20565b91505b8080610d3590613ce8565b915050610cb4565b505050919050565b6000610d5082611e9f565b9050919050565b6000600960009054906101000a900460ff16905090565b600080600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e906136c8565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e88906137c8565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060038054610ee790613c85565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1390613c85565b8015610f605780601f10610f3557610100808354040283529160200191610f60565b820191906000526020600020905b815481529060010190602001808311610f4357829003601f168201915b5050505050905090565b6002610f7c610f776122f3565b6122fb565b60ff161015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613748565b60405180910390fd5b8160039080519060200190610fd692919061284f565b508060049080519060200190610fed92919061284f565b505050565b6002611004610fff6122f3565b6122fb565b60ff161015611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90613748565b60405180910390fd5b8060088190555050565b600261106461105f6122f3565b6122fb565b60ff1610156110a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109f90613748565b60405180910390fd5b600960009054906101000a900460ff1615600960006101000a81548160ff021916908315150217905550565b60036110e66110e16122f3565b6122fb565b60ff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906138e8565b60405180910390fd5b6000611134826122fb565b60ff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90613848565b60405180910390fd5b6111818282612421565b5050565b60016111976111926122f3565b6122fb565b60ff1610156111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d290613928565b60405180910390fd5b600654816005546111ec9190613b20565b111561122d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122490613788565b60405180910390fd5b60005b81811015611271576112448360055461245a565b6001600560008282546112579190613b20565b92505081905550808061126990613ce8565b915050611230565b505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546112af90613c85565b80601f01602080910402602001604051908101604052809291908181526020018280546112db90613c85565b80156113285780601f106112fd57610100808354040283529160200191611328565b820191906000526020600020905b81548152906001019060200180831161130b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611398906138a8565b60405180910390fd5b80600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114929190613609565b60405180910390a35050565b60036114b06114ab6122f3565b6122fb565b60ff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea906138e8565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115413383611fc4565b611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790613708565b60405180910390fd5b61158c84848484612563565b50505050565b6000600854905090565b60016115ae6115a96122f3565b6122fb565b60ff1610156115f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e990613928565b60405180910390fd5b60006115fd83610d6e565b905046600e600085815260200190815260200160002054148061163357506000600e600085815260200190815260200160002054145b611672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611669906137e8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16639418f44c3373ffffffffffffffffffffffffffffffffffffffff1663452140b985878660016040518563ffffffff1660e01b81526004016116ce94939291906139c3565b60006040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906117239190612d62565b6040518263ffffffff1660e01b815260040161173f9190613624565b602060405180830381600087803b15801561175957600080fd5b505af115801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190612d08565b6117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613768565b60405180910390fd5b6117d983612574565b81600e60008581526020019081526020016000208190555080600f600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600080600e600084815260200190815260200160002054141561186d57469050611884565b600e60008381526020019081526020016000205490505b919050565b600161189b6118966122f3565b6122fb565b60ff1610156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d690613928565b60405180910390fd5b46600e6000848152602001908152602001600020541415611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613808565b60405180910390fd5b61193e82611e9f565b1561197e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611975906137a8565b60405180910390fd5b611988818361245a565b80600f600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555046600e6000848152602001908152602001600020819055505050565b6060611a0182611e9f565b611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613868565b60405180910390fd5b6000611a4a610ed8565b905060007353eb3e1e02c8eb8d185a074520bd52ece09f7a4373ffffffffffffffffffffffffffffffffffffffff16636900a3ae856040518263ffffffff1660e01b8152600401611a9b91906139a8565b60006040518083038186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611af09190612deb565b90506000825111611b105760405180602001604052806000815250611b36565b81816004604051602001611b269392919061351a565b6040516020818303038152906040525b92505050919050565b6002611b51611b4c6122f3565b6122fb565b60ff161015611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613748565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600654905090565b6003611bf4611bef6122f3565b6122fb565b60ff1614611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e906138e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611caf578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050611caa57600080fd5b611cbc565b611cba838383612679565b505b505050565b60606000611ccd610ed8565b9050806004604051602001611ce392919061354b565b60405160208183030381529060405291505090565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600960009054906101000a900460ff1615611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd3906138c8565b60405180910390fd5b600754600654611dec9190613b76565b6005541115611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613828565b60405180910390fd5b600854341015611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613668565b60405180910390fd5b611e818260055461245a565b600160056000828254611e949190613b20565b925050819055505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611f7e83610d6e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611fcf82611e9f565b61200e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200590613888565b60405180910390fd5b600061201983610d6e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208857508373ffffffffffffffffffffffffffffffffffffffff16612070846109cf565b73ffffffffffffffffffffffffffffffffffffffff16145b8061209957506120988185611cf8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120c282610d6e565b73ffffffffffffffffffffffffffffffffffffffff1614612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f906136a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217f90613968565b60405180910390fd5b612193600082611f0b565b6001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121e39190613b76565b925050819055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461223a9190613b20565b9250508190555081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561236c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612363906136e8565b60405180910390fd5b6010600061237b84600061281c565b815260200190815260200160002060009054906101000a900460ff16156123a5576003905061241c565b601060006123b484600161281c565b815260200190815260200160002060009054906101000a900460ff16156123de576002905061241c565b601060006123ed84600261281c565b815260200190815260200160002060009054906101000a900460ff1615612417576001905061241c565b600090505b919050565b600160106000612431848661281c565b815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124aa9190613b20565b9250508190555081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61256e8484846120a2565b50505050565b600061257f82610d6e565b905061258c600083611f0b565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125dc9190613b76565b92505081905550600a600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000818473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126b5919061357a565b60206040518083038186803b1580156126cd57600080fd5b505afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127059190612ed9565b11612745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273c90613988565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016127809291906135be565b602060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d29190612d08565b612811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280890613728565b60405180910390fd5b600190509392505050565b60008282604051602001612831929190613595565b60405160208183030381529060405280519060200120905092915050565b82805461285b90613c85565b90600052602060002090601f01602090048101928261287d57600085556128c4565b82601f1061289657805160ff19168380011785556128c4565b828001600101855582156128c4579182015b828111156128c35782518255916020019190600101906128a8565b5b5090506128d191906128d5565b5090565b5b808211156128ee5760008160009055506001016128d6565b5090565b600061290561290084613a2d565b613a08565b90508281526020810184848401111561292157612920613e21565b5b61292c848285613c43565b509392505050565b600061294761294284613a2d565b613a08565b90508281526020810184848401111561296357612962613e21565b5b61296e848285613c52565b509392505050565b600061298961298484613a5e565b613a08565b9050828152602081018484840111156129a5576129a4613e21565b5b6129b0848285613c43565b509392505050565b60006129cb6129c684613a5e565b613a08565b9050828152602081018484840111156129e7576129e6613e21565b5b6129f2848285613c52565b509392505050565b600081359050612a0981614612565b92915050565b600081359050612a1e81614629565b92915050565b600081519050612a3381614629565b92915050565b600081359050612a4881614640565b92915050565b600082601f830112612a6357612a62613e1c565b5b8135612a738482602086016128f2565b91505092915050565b600082601f830112612a9157612a90613e1c565b5b8151612aa1848260208601612934565b91505092915050565b600081359050612ab981614657565b92915050565b600082601f830112612ad457612ad3613e1c565b5b8135612ae4848260208601612976565b91505092915050565b600082601f830112612b0257612b01613e1c565b5b8151612b128482602086016129b8565b91505092915050565b600081359050612b2a81614667565b92915050565b600081519050612b3f81614667565b92915050565b600060208284031215612b5b57612b5a613e2b565b5b6000612b69848285016129fa565b91505092915050565b60008060408385031215612b8957612b88613e2b565b5b6000612b97858286016129fa565b9250506020612ba8858286016129fa565b9150509250929050565b600080600060608486031215612bcb57612bca613e2b565b5b6000612bd9868287016129fa565b9350506020612bea868287016129fa565b9250506040612bfb86828701612b1b565b9150509250925092565b60008060008060808587031215612c1f57612c1e613e2b565b5b6000612c2d878288016129fa565b9450506020612c3e878288016129fa565b9350506040612c4f87828801612b1b565b925050606085013567ffffffffffffffff811115612c7057612c6f613e26565b5b612c7c87828801612a4e565b91505092959194509250565b60008060408385031215612c9f57612c9e613e2b565b5b6000612cad858286016129fa565b9250506020612cbe85828601612a0f565b9150509250929050565b60008060408385031215612cdf57612cde613e2b565b5b6000612ced858286016129fa565b9250506020612cfe85828601612b1b565b9150509250929050565b600060208284031215612d1e57612d1d613e2b565b5b6000612d2c84828501612a24565b91505092915050565b600060208284031215612d4b57612d4a613e2b565b5b6000612d5984828501612a39565b91505092915050565b600060208284031215612d7857612d77613e2b565b5b600082015167ffffffffffffffff811115612d9657612d95613e26565b5b612da284828501612a7c565b91505092915050565b60008060408385031215612dc257612dc1613e2b565b5b6000612dd085828601612aaa565b9250506020612de1858286016129fa565b9150509250929050565b600060208284031215612e0157612e00613e2b565b5b600082015167ffffffffffffffff811115612e1f57612e1e613e26565b5b612e2b84828501612aed565b91505092915050565b60008060408385031215612e4b57612e4a613e2b565b5b600083013567ffffffffffffffff811115612e6957612e68613e26565b5b612e7585828601612abf565b925050602083013567ffffffffffffffff811115612e9657612e95613e26565b5b612ea285828601612abf565b9150509250929050565b600060208284031215612ec257612ec1613e2b565b5b6000612ed084828501612b1b565b91505092915050565b600060208284031215612eef57612eee613e2b565b5b6000612efd84828501612b30565b91505092915050565b60008060408385031215612f1d57612f1c613e2b565b5b6000612f2b85828601612b1b565b9250506020612f3c858286016129fa565b9150509250929050565b60008060408385031215612f5d57612f5c613e2b565b5b6000612f6b85828601612b1b565b9250506020612f7c85828601612b1b565b9150509250929050565b6000612f9283836134fc565b60208301905092915050565b612fa781613baa565b82525050565b6000612fb882613ab4565b612fc28185613ae2565b9350612fcd83613a8f565b8060005b83811015612ffe578151612fe58882612f86565b9750612ff083613ad5565b925050600181019050612fd1565b5085935050505092915050565b61301481613bbc565b82525050565b600061302582613abf565b61302f8185613af3565b935061303f818560208601613c52565b61304881613e30565b840191505092915050565b61305c81613c31565b82525050565b600061306d82613aca565b6130778185613b04565b9350613087818560208601613c52565b61309081613e30565b840191505092915050565b60006130a682613aca565b6130b08185613b15565b93506130c0818560208601613c52565b80840191505092915050565b600081546130d981613c85565b6130e38186613b15565b945060018216600081146130fe576001811461310f57613142565b60ff19831686528186019350613142565b61311885613a9f565b60005b8381101561313a5781548189015260018201915060208101905061311b565b838801955050505b50505092915050565b6000613158603483613b04565b915061316382613e41565b604082019050919050565b600061317b603d83613b04565b915061318682613e90565b604082019050919050565b600061319e602e83613b04565b91506131a982613edf565b604082019050919050565b60006131c1602e83613b04565b91506131cc82613f2e565b604082019050919050565b60006131e4602483613b04565b91506131ef82613f7d565b604082019050919050565b6000613207603683613b04565b915061321282613fcc565b604082019050919050565b600061322a602c83613b04565b91506132358261401b565b604082019050919050565b600061324d602a83613b04565b91506132588261406a565b604082019050919050565b6000613270602b83613b04565b915061327b826140b9565b604082019050919050565b6000613293602d83613b04565b915061329e82614108565b604082019050919050565b60006132b6604983613b04565b91506132c182614157565b606082019050919050565b60006132d9602f83613b04565b91506132e4826141cc565b604082019050919050565b60006132fc603483613b04565b91506133078261421b565b604082019050919050565b600061331f603083613b04565b915061332a8261426a565b604082019050919050565b6000613342601a83613b04565b915061334d826142b9565b602082019050919050565b6000613365600783613b15565b9150613370826142e2565b600782019050919050565b6000613388602d83613b04565b91506133938261430b565b604082019050919050565b60006133ab602c83613b04565b91506133b68261435a565b604082019050919050565b60006133ce603183613b04565b91506133d9826143a9565b604082019050919050565b60006133f1601e83613b04565b91506133fc826143f8565b602082019050919050565b6000613414601e83613b04565b915061341f82614421565b602082019050919050565b6000613437601b83613b04565b91506134428261444a565b602082019050919050565b600061345a603183613b04565b915061346582614473565b604082019050919050565b600061347d602d83613b04565b9150613488826144c2565b604082019050919050565b60006134a0602683613b04565b91506134ab82614511565b604082019050919050565b60006134c3602983613b04565b91506134ce82614560565b604082019050919050565b60006134e6602483613b04565b91506134f1826145af565b604082019050919050565b61350581613c27565b82525050565b61351481613c27565b82525050565b6000613526828661309b565b9150613532828561309b565b915061353e82846130cc565b9150819050949350505050565b6000613557828561309b565b915061356282613358565b915061356e82846130cc565b91508190509392505050565b600060208201905061358f6000830184612f9e565b92915050565b60006040820190506135aa6000830185612f9e565b6135b76020830184613053565b9392505050565b60006040820190506135d36000830185612f9e565b6135e0602083018461350b565b9392505050565b600060208201905081810360008301526136018184612fad565b905092915050565b600060208201905061361e600083018461300b565b92915050565b6000602082019050818103600083015261363e818461301a565b905092915050565b600060208201905081810360008301526136608184613062565b905092915050565b600060208201905081810360008301526136818161314b565b9050919050565b600060208201905081810360008301526136a18161316e565b9050919050565b600060208201905081810360008301526136c181613191565b9050919050565b600060208201905081810360008301526136e1816131b4565b9050919050565b60006020820190508181036000830152613701816131d7565b9050919050565b60006020820190508181036000830152613721816131fa565b9050919050565b600060208201905081810360008301526137418161321d565b9050919050565b6000602082019050818103600083015261376181613240565b9050919050565b6000602082019050818103600083015261378181613263565b9050919050565b600060208201905081810360008301526137a181613286565b9050919050565b600060208201905081810360008301526137c1816132a9565b9050919050565b600060208201905081810360008301526137e1816132cc565b9050919050565b60006020820190508181036000830152613801816132ef565b9050919050565b6000602082019050818103600083015261382181613312565b9050919050565b6000602082019050818103600083015261384181613335565b9050919050565b600060208201905081810360008301526138618161337b565b9050919050565b600060208201905081810360008301526138818161339e565b9050919050565b600060208201905081810360008301526138a1816133c1565b9050919050565b600060208201905081810360008301526138c1816133e4565b9050919050565b600060208201905081810360008301526138e181613407565b9050919050565b600060208201905081810360008301526139018161342a565b9050919050565b600060208201905081810360008301526139218161344d565b9050919050565b6000602082019050818103600083015261394181613470565b9050919050565b6000602082019050818103600083015261396181613493565b9050919050565b60006020820190508181036000830152613981816134b6565b9050919050565b600060208201905081810360008301526139a1816134d9565b9050919050565b60006020820190506139bd600083018461350b565b92915050565b60006080820190506139d8600083018761350b565b6139e5602083018661350b565b6139f26040830185612f9e565b6139ff606083018461300b565b95945050505050565b6000613a12613a23565b9050613a1e8282613cb7565b919050565b6000604051905090565b600067ffffffffffffffff821115613a4857613a47613ded565b5b613a5182613e30565b9050602081019050919050565b600067ffffffffffffffff821115613a7957613a78613ded565b5b613a8282613e30565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613b2b82613c27565b9150613b3683613c27565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b6b57613b6a613d31565b5b828201905092915050565b6000613b8182613c27565b9150613b8c83613c27565b925082821015613b9f57613b9e613d31565b5b828203905092915050565b6000613bb582613c07565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050613c02826145fe565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613c3c82613bf4565b9050919050565b82818337600083830152505050565b60005b83811015613c70578082015181840152602081019050613c55565b83811115613c7f576000848401525b50505050565b60006002820490506001821680613c9d57607f821691505b60208210811415613cb157613cb0613d8f565b5b50919050565b613cc082613e30565b810181811067ffffffffffffffff82111715613cdf57613cde613ded565b5b80604052505050565b6000613cf382613c27565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d2657613d25613d31565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f476f4537323142617369633a204d696e207061796d656e74206f66206d696e7460008201527f696e6720636f7374206973207265717569726564000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f76652063616c6c6572206973206e60008201527f6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c000000602082015250565b7f476f4537323142617369633a207472616e73666572206f6620746f6b656e207460008201527f686174206973206e6f74206f776e000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a206f776e657220717565727920666f72206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f476f454163636573733a204e6f205a65726f2041646472657373657320616c6c60008201527f6f77656400000000000000000000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a207472616e736665722063616c6c65722069732060008201527f6e6f74206f776e6572206e6f7220617070726f76656400000000000000000000602082015250565b7f476f4532305472616e73616374696f6e733a2043616e6e6f742063757272656e60008201527f746c79207472616e736665720000000000000000000000000000000000000000602082015250565b7f476f454163636573733a204f6e6c7920616c6c6f7765642061646d696e73206860008201527f6176652061636365737300000000000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a2043616e6e6f742073776974636820636861696e60008201527f732063757272656e746c79000000000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a20546f74616c20616d6f756e7473206d6f72652060008201527f7468616e20726573657276656400000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a20427269646765206d696e74696e6720646f657360008201527f206e6f7420616c6c6f7720746f6b656e7320746861742061726520616c72656160208201527f6479206d696e7465640000000000000000000000000000000000000000000000604082015250565b7f476f4537323142617369633a2062616c616e636520717565727920666f72207460008201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a205468697320746f6b656e20697320616c72656160008201527f6479206e6f74206f6e207468697320636861696e000000000000000000000000602082015250565b7f476f4537323150726f78793a205468697320746f6b656e20697320616c72656160008201527f6479206f6e207468697320636861696e00000000000000000000000000000000602082015250565b7f476f4537323142617369633a206e6f206d6f7265206d696e7473000000000000600082015250565b7f47656e6573697300000000000000000000000000000000000000000000000000600082015250565b7f476f454163636573733a2054686973206164647265737320697320616c72656160008201527f647920617574686f72697a656400000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a2055524920717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a206f70657261746f7220717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f766520746f2063616c6c65720000600082015250565b7f476f4537323142617369633a206d696e74696e67206973207061757365640000600082015250565b7f476f454163636573733a204b657920706572736f6e206f6e6c792e0000000000600082015250565b7f476f4537323142617369633a20617070726f76656420717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f476f454163636573733a204f6e6c7920616c6c6f77656420636f6e747261637460008201527f7320686176652061636365737300000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f76616c20746f2063757272656e7460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a207472616e7366657220746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f476f4532305472616e73616374696f6e733a204e6f20656e6f7567682062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6003811061460f5761460e613d60565b5b50565b61461b81613baa565b811461462657600080fd5b50565b61463281613bbc565b811461463d57600080fd5b50565b61464981613bc8565b811461465457600080fd5b50565b6003811061466457600080fd5b50565b61467081613c27565b811461467b57600080fd5b5056fea264697066735822122087f26c8e708a9a7727ff0ecea85dfb6bd2d11816710d5050188911485eadc4c064736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000002bc0000000000000000000000000000000000000000000000000214e8348c4f0000000000000000000000000000000000000000000000000000000000000000000e476f452e47472f47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b476f452e47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6170692e676f652e67672f6765742f6d657461646174612f00000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : attribProxy_ (address): 0x0000000000000000000000000000000000000000
Arg [1] : name_ (string): GoE.GG/Genesis
Arg [2] : symbol_ (string): GoE.Genesis
Arg [3] : baseUri_ (string): https://api.goe.gg/get/metadata/
Arg [4] : baseExt_ (string): .json
Arg [5] : maxSupply_ (uint256): 3000
Arg [6] : reservedAmount_ (uint256): 700
Arg [7] : nativeMintCost_ (uint256): 150000000000000000
-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [4] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000bb8
Arg [6] : 00000000000000000000000000000000000000000000000000000000000002bc
Arg [7] : 0000000000000000000000000000000000000000000000000214e8348c4f0000
Arg [8] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [9] : 476f452e47472f47656e65736973000000000000000000000000000000000000
Arg [10] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [11] : 476f452e47656e65736973000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [13] : 68747470733a2f2f6170692e676f652e67672f6765742f6d657461646174612f
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [15] : 2e6a736f6e000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
8571:10403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18436:12;18451;;;;;;;;;;;18436:27;;18524:4;18518:11;18573:14;18570:1;18556:12;18543:45;18688:1;18674:12;18658:14;18644:12;18638:4;18634:1;18630:6;18617:73;18736:16;18733:1;18719:12;18704:49;18774:7;18800:1;18795:49;;;;18889:16;18875:12;18868:38;18795:49;18825:16;18811:12;18804:38;11651:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9626:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12728:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12328:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9325:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13387:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13684:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10124:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14346:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9816:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12093:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11888:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14102:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16409:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16678:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16587:83;;;;;;;;;;;;;:::i;:::-;;4712:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17039:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5674:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9719:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12945:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5761:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13826:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9526:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17347:584;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9904:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17939:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10637:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16283:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9422:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16788:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11069:191;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13230:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11272:371;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11651:229;11718:4;11759:30;11745:44;;;:10;:44;;;;:126;;;;11842:29;11828:43;;;:10;:43;;;;11745:126;11737:135;;11651:229;;;:::o;9626:85::-;9663:13;9698:5;9691:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9626:85;:::o;12728:209::-;12787:7;12815:16;12823:7;12815;:16::i;:::-;12807:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12905:15;:24;12921:7;12905:24;;;;;;;;;;;;;;;;;;;;;12898:31;;12728:209;;;:::o;12328:392::-;12391:13;12407:16;12415:7;12407;:16::i;:::-;12391:32;;12448:5;12442:11;;:2;:11;;;;12434:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12545:5;12531:19;;:10;:19;;;:58;;;;12554:35;12571:5;12578:10;12554:16;:35::i;:::-;12531:58;12509:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;12691:21;12700:2;12704:7;12691:8;:21::i;:::-;12380:340;12328:392;;:::o;9325:89::-;9368:7;9405:1;9396:8;;:10;;;;:::i;:::-;9389:17;;9325:89;:::o;13387:289::-;13529:39;13548:10;13560:7;13529:18;:39::i;:::-;13521:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;13640:28;13650:4;13656:2;13660:7;13640:9;:28::i;:::-;13387:289;;;:::o;13684:134::-;13771:39;13788:4;13794:2;13798:7;13771:39;;;;;;;;;;;;:16;:39::i;:::-;13684:134;;;:::o;10124:505::-;10183:27;10222:12;10253:9;10263:1;10253:11;;10249:127;10268:8;;10266:1;:10;10249:127;;;10314:6;10300:20;;:10;10308:1;10300:7;:10::i;:::-;:20;;;10297:68;;;10348:1;10340:9;;;;;:::i;:::-;;;10297:68;10278:3;;;;;:::i;:::-;;;;10249:127;;;;10413:4;10399:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10386:32;;10429:12;10460:9;10470:1;10460:11;;10456:166;10475:8;;10473:1;:10;10456:166;;;10521:6;10507:20;;:10;10515:1;10507:7;:10::i;:::-;:20;;;10504:107;;;10566:1;10547:10;10558:4;10547:16;;;;;;;;:::i;:::-;;;;;;;:20;;;;;10594:1;10586:9;;;;;:::i;:::-;;;10504:107;10485:3;;;;;:::i;:::-;;;;10456:166;;;;10211:418;;10124:505;;;:::o;14346:102::-;14401:4;14424:16;14432:7;14424;:16::i;:::-;14417:23;;14346:102;;;:::o;9816:80::-;9855:4;9881:7;;;;;;;;;;;9874:14;;9816:80;:::o;12093:227::-;12148:7;12168:13;12184:7;:16;12192:7;12184:16;;;;;;;;;;;;;;;;;;;;;12168:32;;12236:1;12219:19;;:5;:19;;;;12211:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12307:5;12300:12;;;12093:227;;;:::o;11888:196::-;11943:7;11988:1;11971:19;;:5;:19;;;;11963:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12060:9;:16;12070:5;12060:16;;;;;;;;;;;;;;;;12053:23;;11888:196;;;:::o;14102:92::-;14143:13;14178:8;14171:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14102:92;:::o;16409:170::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16527:8:::1;16516;:19;;;;;;;;;;;;:::i;:::-;;16563:8;16546:14;:25;;;;;;;;;;;;:::i;:::-;;16409:170:::0;;:::o;16678:102::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16768:4:::1;16750:15;:22;;;;16678:102:::0;:::o;16587:83::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16655:7:::1;;;;;;;;;;;16654:8;16644:7;;:18;;;;;;;;;;;;;;;;;;16587:83::o:0;4712:264::-;5305:1;5274:27;5288:12;:10;:12::i;:::-;5274:13;:27::i;:::-;:32;;;5266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4857:1:::1;4821:32;4835:17;4821:13;:32::i;:::-;:37;;;4813:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;4919:49;4937:11;4950:17;4919;:49::i;:::-;4712:264:::0;;:::o;17039:300::-;5595:1;5564:27;5578:12;:10;:12::i;:::-;5564:13;:27::i;:::-;:32;;;;5556:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17154:10:::1;;17143:7;17134:8;;:16;;;;:::i;:::-;:30;;17126:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17229:9;17225:107;17244:7;17242:1;:9;17225:107;;;17272:20;17278:3;17283:8;;17272:5;:20::i;:::-;17319:1;17307:8;;:13;;;;;;;:::i;:::-;;;;;;;;17253:3;;;;;:::i;:::-;;;;17225:107;;;;17039:300:::0;;:::o;5674:79::-;5712:7;5739:6;;;;;;;;;;;5732:13;;5674:79;:::o;9719:89::-;9758:13;9793:7;9786:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9719:89;:::o;12945:277::-;13043:10;13031:22;;:8;:22;;;;13023:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13144:8;13101:18;:30;13120:10;13101:30;;;;;;;;;;;;;;;:40;13132:8;13101:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;13195:8;13168:46;;13183:10;13168:46;;;13205:8;13168:46;;;;;;:::i;:::-;;;;;;;;12945:277;;:::o;5761:95::-;5305:1;5274:27;5288:12;:10;:12::i;:::-;5274:13;:27::i;:::-;:32;;;5266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5839:9:::1;5830:6;;:18;;;;;;;;;;;;;;;;;;5761:95:::0;:::o;13826:268::-;13938:39;13957:10;13969:7;13938:18;:39::i;:::-;13930:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;14047:39;14061:4;14067:2;14071:7;14080:5;14047:13;:39::i;:::-;13826:268;;;;:::o;9526:92::-;9566:7;9595:15;;9588:22;;9526:92;:::o;17347:584::-;5595:1;5564:27;5578:12;:10;:12::i;:::-;5564:13;:27::i;:::-;:32;;;;5556:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17441:16:::1;17460;17468:7;17460;:16::i;:::-;17441:35;;17516:13;17495:8;:17;17504:7;17495:17;;;;;;;;;;;;:34;:60;;;;17554:1;17533:8;:17;17542:7;17533:17;;;;;;;;;;;;:22;17495:60;17487:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;17642:10;17631:50;;;17693:10;17682:48;;;17731:7;17740;17749:8;17759:4;17682:82;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17631:134;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17623:190;;;;;;;;;;;;:::i;:::-;;;;;;;;;17824:14;17830:7;17824:5;:14::i;:::-;17869:7;17849:8;:17;17858:7;17849:17;;;;;;;;;;;:27;;;;17915:8;17887:16;:25;17904:7;17887:25;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17430:501;17347:584:::0;;:::o;9904:212::-;9961:7;10005:1;9984:8;:17;9993:7;9984:17;;;;;;;;;;;;:22;9981:128;;;10029:13;10022:20;;;;9981:128;10080:8;:17;10089:7;10080:17;;;;;;;;;;;;10073:24;;9904:212;;;;:::o;17939:446::-;5595:1;5564:27;5578:12;:10;:12::i;:::-;5564:13;:27::i;:::-;:32;;;;5556:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;18067:13:::1;18046:8;:17;18055:7;18046:17;;;;;;;;;;;;:34;;18038:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;18153:16;18161:7;18153;:16::i;:::-;18152:17;18144:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;18258:26;18264:10;18276:7;18258:5;:26::i;:::-;18323:10;18295:16;:25;18312:7;18295:25;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18364:13;18344:8;:17;18353:7;18344:17;;;;;;;;;;;:33;;;;17939:446:::0;;:::o;10637:424::-;10693:13;10727:16;10735:7;10727;:16::i;:::-;10719:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10803:21;10827:10;:8;:10::i;:::-;10803:34;;10848:20;10882:42;10871:63;;;10935:7;10871:72;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10848:95;;10985:1;10967:7;10961:21;:25;:92;;;;;;;;;;;;;;;;;11013:7;11023:6;11032:14;10996:51;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10961:92;10954:99;;;;10637:424;;;:::o;16283:118::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16381:12:::1;16366;::::0;:27:::1;;;;;;;;;;;;;;;;;;16283:118:::0;:::o;9422:96::-;9463:7;9500:10;;9493:17;;9422:96;:::o;16788:243::-;5305:1;5274:27;5288:12;:10;:12::i;:::-;5274:13;:27::i;:::-;:32;;;5266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16900:1:::1;16883:19;;:5;:19;;;16880:144;;;16934:2;16926:16;;:24;16943:6;16926:24;;;;;;;;;;;;;;;;;;;;;;;16918:33;;;::::0;::::1;;16880:144;;;16982:30;16994:5;17001:2;17005:6;16982:11;:30::i;:::-;;16880:144;16788:243:::0;;;:::o;11069:191::-;11113:13;11139:21;11163:10;:8;:10::i;:::-;11139:34;;11215:7;11236:14;11198:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11184:68;;;11069:191;:::o;13230:149::-;13310:4;13336:18;:25;13355:5;13336:25;;;;;;;;;;;;;;;:35;13362:8;13336:35;;;;;;;;;;;;;;;;;;;;;;;;;13329:42;;13230:149;;;;:::o;11272:371::-;11345:7;;;;;;;;;;;11344:8;11336:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11430:15;;11419:10;;:26;;;;:::i;:::-;11406:8;;:40;;11398:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11509:15;;11496:9;:28;;11488:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;11592:19;11598:2;11602:8;;11592:5;:19::i;:::-;11634:1;11622:8;;:13;;;;;;;:::i;:::-;;;;;;;;11272:371;;:::o;14456:122::-;14514:4;14568:1;14540:30;;:7;:16;14548:7;14540:16;;;;;;;;;;;;;;;;;;;;;:30;;;;14533:37;;14456:122;;;:::o;15989:160::-;16084:2;16057:15;:24;16073:7;16057:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16133:7;16129:2;16102:39;;16111:16;16119:7;16111;:16::i;:::-;16102:39;;;;;;;;;;;;15989:160;;:::o;14586:339::-;14672:4;14697:16;14705:7;14697;:16::i;:::-;14689:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14778:13;14794:16;14802:7;14794;:16::i;:::-;14778:32;;14840:5;14829:16;;:7;:16;;;:51;;;;14873:7;14849:31;;:20;14861:7;14849:11;:20::i;:::-;:31;;;14829:51;:87;;;;14884:32;14901:5;14908:7;14884:16;:32::i;:::-;14829:87;14821:96;;;14586:339;;;;:::o;15547:434::-;15656:4;15636:24;;:16;15644:7;15636;:16::i;:::-;:24;;;15628:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;15744:1;15730:16;;:2;:16;;;;15722:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15805:29;15822:1;15826:7;15805:8;:29::i;:::-;15866:1;15847:9;:15;15857:4;15847:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;15895:1;15878:9;:13;15888:2;15878:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;15926:2;15907:7;:16;15915:7;15907:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15965:7;15961:2;15946:27;;15955:4;15946:27;;;;;;;;;;;;15547:434;;;:::o;4006:92::-;4051:7;4080:10;4073:17;;4006:92;:::o;4237:467::-;4297:5;4339:1;4322:19;;:5;:19;;;;4314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4396:10;:37;4407:25;4415:5;4422:9;4407:7;:25::i;:::-;4396:37;;;;;;;;;;;;;;;;;;;;;4393:304;;;4456:1;4449:8;;;;4393:304;4487:10;:39;4498:27;4506:5;4513:11;4498:7;:27::i;:::-;4487:39;;;;;;;;;;;;;;;;;;;;;4484:213;;;4549:1;4542:8;;;;4484:213;4580:10;:42;4591:30;4599:5;4606:14;4591:7;:30::i;:::-;4580:42;;;;;;;;;;;;;;;;;;;;;4577:120;;;4645:1;4638:8;;;;4577:120;4684:1;4677:8;;4237:467;;;;:::o;4984:115::-;5087:4;5056:10;:28;5067:16;5075:2;5079:3;5067:7;:16::i;:::-;5056:28;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4984:115;;:::o;14933:315::-;15156:1;15139:9;:13;15149:2;15139:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;15187:2;15168:7;:16;15176:7;15168:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15232:7;15228:2;15207:33;;15224:1;15207:33;;;;;;;;;;;;14933:315;;:::o;14202:136::-;14302:28;14312:4;14318:2;14322:7;14302:9;:28::i;:::-;14202:136;;;;:::o;15256:283::-;15309:13;15325:16;15333:7;15325;:16::i;:::-;15309:32;;15380:29;15397:1;15401:7;15380:8;:29::i;:::-;15442:1;15422:9;:16;15432:5;15422:16;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;15461:7;:16;15469:7;15461:16;;;;;;;;;;;;15454:23;;;;;;;;;;;15523:7;15519:1;15495:36;;15504:5;15495:36;;;;;;;;;;;;15298:241;15256:283;:::o;5973:347::-;6060:4;6130:6;6096:5;6084:28;;;6121:4;6084:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;6076:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;6208:5;6196:27;;;6224:8;6234:6;6196:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6188:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;6308:4;6301:11;;5973:347;;;;;:::o;4106:123::-;4165:7;4214:1;4217;4203:16;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4193:27;;;;;;4186:35;;4106:123;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:419::-;511:5;536:65;552:48;593:6;552:48;:::i;:::-;536:65;:::i;:::-;527:74;;624:6;617:5;610:21;662:4;655:5;651:16;700:3;691:6;686:3;682:16;679:25;676:112;;;707:79;;:::i;:::-;676:112;797:39;829:6;824:3;819;797:39;:::i;:::-;517:325;423:419;;;;;:::o;848:412::-;926:5;951:66;967:49;1009:6;967:49;:::i;:::-;951:66;:::i;:::-;942:75;;1040:6;1033:5;1026:21;1078:4;1071:5;1067:16;1116:3;1107:6;1102:3;1098:16;1095:25;1092:112;;;1123:79;;:::i;:::-;1092:112;1213:41;1247:6;1242:3;1237;1213:41;:::i;:::-;932:328;848:412;;;;;:::o;1266:421::-;1355:5;1380:66;1396:49;1438:6;1396:49;:::i;:::-;1380:66;:::i;:::-;1371:75;;1469:6;1462:5;1455:21;1507:4;1500:5;1496:16;1545:3;1536:6;1531:3;1527:16;1524:25;1521:112;;;1552:79;;:::i;:::-;1521:112;1642:39;1674:6;1669:3;1664;1642:39;:::i;:::-;1361:326;1266:421;;;;;:::o;1693:139::-;1739:5;1777:6;1764:20;1755:29;;1793:33;1820:5;1793:33;:::i;:::-;1693:139;;;;:::o;1838:133::-;1881:5;1919:6;1906:20;1897:29;;1935:30;1959:5;1935:30;:::i;:::-;1838:133;;;;:::o;1977:137::-;2031:5;2062:6;2056:13;2047:22;;2078:30;2102:5;2078:30;:::i;:::-;1977:137;;;;:::o;2120:::-;2165:5;2203:6;2190:20;2181:29;;2219:32;2245:5;2219:32;:::i;:::-;2120:137;;;;:::o;2276:338::-;2331:5;2380:3;2373:4;2365:6;2361:17;2357:27;2347:122;;2388:79;;:::i;:::-;2347:122;2505:6;2492:20;2530:78;2604:3;2596:6;2589:4;2581:6;2577:17;2530:78;:::i;:::-;2521:87;;2337:277;2276:338;;;;:::o;2633:353::-;2699:5;2748:3;2741:4;2733:6;2729:17;2725:27;2715:122;;2756:79;;:::i;:::-;2715:122;2866:6;2860:13;2891:89;2976:3;2968:6;2961:4;2953:6;2949:17;2891:89;:::i;:::-;2882:98;;2705:281;2633:353;;;;:::o;2992:157::-;3047:5;3085:6;3072:20;3063:29;;3101:42;3137:5;3101:42;:::i;:::-;2992:157;;;;:::o;3169:340::-;3225:5;3274:3;3267:4;3259:6;3255:17;3251:27;3241:122;;3282:79;;:::i;:::-;3241:122;3399:6;3386:20;3424:79;3499:3;3491:6;3484:4;3476:6;3472:17;3424:79;:::i;:::-;3415:88;;3231:278;3169:340;;;;:::o;3529:355::-;3596:5;3645:3;3638:4;3630:6;3626:17;3622:27;3612:122;;3653:79;;:::i;:::-;3612:122;3763:6;3757:13;3788:90;3874:3;3866:6;3859:4;3851:6;3847:17;3788:90;:::i;:::-;3779:99;;3602:282;3529:355;;;;:::o;3890:139::-;3936:5;3974:6;3961:20;3952:29;;3990:33;4017:5;3990:33;:::i;:::-;3890:139;;;;:::o;4035:143::-;4092:5;4123:6;4117:13;4108:22;;4139:33;4166:5;4139:33;:::i;:::-;4035:143;;;;:::o;4184:329::-;4243:6;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4184:329;;;;:::o;4519:474::-;4587:6;4595;4644:2;4632:9;4623:7;4619:23;4615:32;4612:119;;;4650:79;;:::i;:::-;4612:119;4770:1;4795:53;4840:7;4831:6;4820:9;4816:22;4795:53;:::i;:::-;4785:63;;4741:117;4897:2;4923:53;4968:7;4959:6;4948:9;4944:22;4923:53;:::i;:::-;4913:63;;4868:118;4519:474;;;;;:::o;4999:619::-;5076:6;5084;5092;5141:2;5129:9;5120:7;5116:23;5112:32;5109:119;;;5147:79;;:::i;:::-;5109:119;5267:1;5292:53;5337:7;5328:6;5317:9;5313:22;5292:53;:::i;:::-;5282:63;;5238:117;5394:2;5420:53;5465:7;5456:6;5445:9;5441:22;5420:53;:::i;:::-;5410:63;;5365:118;5522:2;5548:53;5593:7;5584:6;5573:9;5569:22;5548:53;:::i;:::-;5538:63;;5493:118;4999:619;;;;;:::o;5624:943::-;5719:6;5727;5735;5743;5792:3;5780:9;5771:7;5767:23;5763:33;5760:120;;;5799:79;;:::i;:::-;5760:120;5919:1;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5890:117;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;6174:2;6200:53;6245:7;6236:6;6225:9;6221:22;6200:53;:::i;:::-;6190:63;;6145:118;6330:2;6319:9;6315:18;6302:32;6361:18;6353:6;6350:30;6347:117;;;6383:79;;:::i;:::-;6347:117;6488:62;6542:7;6533:6;6522:9;6518:22;6488:62;:::i;:::-;6478:72;;6273:287;5624:943;;;;;;;:::o;6573:468::-;6638:6;6646;6695:2;6683:9;6674:7;6670:23;6666:32;6663:119;;;6701:79;;:::i;:::-;6663:119;6821:1;6846:53;6891:7;6882:6;6871:9;6867:22;6846:53;:::i;:::-;6836:63;;6792:117;6948:2;6974:50;7016:7;7007:6;6996:9;6992:22;6974:50;:::i;:::-;6964:60;;6919:115;6573:468;;;;;:::o;7047:474::-;7115:6;7123;7172:2;7160:9;7151:7;7147:23;7143:32;7140:119;;;7178:79;;:::i;:::-;7140:119;7298:1;7323:53;7368:7;7359:6;7348:9;7344:22;7323:53;:::i;:::-;7313:63;;7269:117;7425:2;7451:53;7496:7;7487:6;7476:9;7472:22;7451:53;:::i;:::-;7441:63;;7396:118;7047:474;;;;;:::o;7527:345::-;7594:6;7643:2;7631:9;7622:7;7618:23;7614:32;7611:119;;;7649:79;;:::i;:::-;7611:119;7769:1;7794:61;7847:7;7838:6;7827:9;7823:22;7794:61;:::i;:::-;7784:71;;7740:125;7527:345;;;;:::o;7878:327::-;7936:6;7985:2;7973:9;7964:7;7960:23;7956:32;7953:119;;;7991:79;;:::i;:::-;7953:119;8111:1;8136:52;8180:7;8171:6;8160:9;8156:22;8136:52;:::i;:::-;8126:62;;8082:116;7878:327;;;;:::o;8211:522::-;8290:6;8339:2;8327:9;8318:7;8314:23;8310:32;8307:119;;;8345:79;;:::i;:::-;8307:119;8486:1;8475:9;8471:17;8465:24;8516:18;8508:6;8505:30;8502:117;;;8538:79;;:::i;:::-;8502:117;8643:73;8708:7;8699:6;8688:9;8684:22;8643:73;:::i;:::-;8633:83;;8436:290;8211:522;;;;:::o;8739:492::-;8816:6;8824;8873:2;8861:9;8852:7;8848:23;8844:32;8841:119;;;8879:79;;:::i;:::-;8841:119;8999:1;9024:62;9078:7;9069:6;9058:9;9054:22;9024:62;:::i;:::-;9014:72;;8970:126;9135:2;9161:53;9206:7;9197:6;9186:9;9182:22;9161:53;:::i;:::-;9151:63;;9106:118;8739:492;;;;;:::o;9237:524::-;9317:6;9366:2;9354:9;9345:7;9341:23;9337:32;9334:119;;;9372:79;;:::i;:::-;9334:119;9513:1;9502:9;9498:17;9492:24;9543:18;9535:6;9532:30;9529:117;;;9565:79;;:::i;:::-;9529:117;9670:74;9736:7;9727:6;9716:9;9712:22;9670:74;:::i;:::-;9660:84;;9463:291;9237:524;;;;:::o;9767:834::-;9855:6;9863;9912:2;9900:9;9891:7;9887:23;9883:32;9880:119;;;9918:79;;:::i;:::-;9880:119;10066:1;10055:9;10051:17;10038:31;10096:18;10088:6;10085:30;10082:117;;;10118:79;;:::i;:::-;10082:117;10223:63;10278:7;10269:6;10258:9;10254:22;10223:63;:::i;:::-;10213:73;;10009:287;10363:2;10352:9;10348:18;10335:32;10394:18;10386:6;10383:30;10380:117;;;10416:79;;:::i;:::-;10380:117;10521:63;10576:7;10567:6;10556:9;10552:22;10521:63;:::i;:::-;10511:73;;10306:288;9767:834;;;;;:::o;10607:329::-;10666:6;10715:2;10703:9;10694:7;10690:23;10686:32;10683:119;;;10721:79;;:::i;:::-;10683:119;10841:1;10866:53;10911:7;10902:6;10891:9;10887:22;10866:53;:::i;:::-;10856:63;;10812:117;10607:329;;;;:::o;10942:351::-;11012:6;11061:2;11049:9;11040:7;11036:23;11032:32;11029:119;;;11067:79;;:::i;:::-;11029:119;11187:1;11212:64;11268:7;11259:6;11248:9;11244:22;11212:64;:::i;:::-;11202:74;;11158:128;10942:351;;;;:::o;11299:474::-;11367:6;11375;11424:2;11412:9;11403:7;11399:23;11395:32;11392:119;;;11430:79;;:::i;:::-;11392:119;11550:1;11575:53;11620:7;11611:6;11600:9;11596:22;11575:53;:::i;:::-;11565:63;;11521:117;11677:2;11703:53;11748:7;11739:6;11728:9;11724:22;11703:53;:::i;:::-;11693:63;;11648:118;11299:474;;;;;:::o;11779:::-;11847:6;11855;11904:2;11892:9;11883:7;11879:23;11875:32;11872:119;;;11910:79;;:::i;:::-;11872:119;12030:1;12055:53;12100:7;12091:6;12080:9;12076:22;12055:53;:::i;:::-;12045:63;;12001:117;12157:2;12183:53;12228:7;12219:6;12208:9;12204:22;12183:53;:::i;:::-;12173:63;;12128:118;11779:474;;;;;:::o;12259:179::-;12328:10;12349:46;12391:3;12383:6;12349:46;:::i;:::-;12427:4;12422:3;12418:14;12404:28;;12259:179;;;;:::o;12444:118::-;12531:24;12549:5;12531:24;:::i;:::-;12526:3;12519:37;12444:118;;:::o;12598:732::-;12717:3;12746:54;12794:5;12746:54;:::i;:::-;12816:86;12895:6;12890:3;12816:86;:::i;:::-;12809:93;;12926:56;12976:5;12926:56;:::i;:::-;13005:7;13036:1;13021:284;13046:6;13043:1;13040:13;13021:284;;;13122:6;13116:13;13149:63;13208:3;13193:13;13149:63;:::i;:::-;13142:70;;13235:60;13288:6;13235:60;:::i;:::-;13225:70;;13081:224;13068:1;13065;13061:9;13056:14;;13021:284;;;13025:14;13321:3;13314:10;;12722:608;;;12598:732;;;;:::o;13336:109::-;13417:21;13432:5;13417:21;:::i;:::-;13412:3;13405:34;13336:109;;:::o;13451:360::-;13537:3;13565:38;13597:5;13565:38;:::i;:::-;13619:70;13682:6;13677:3;13619:70;:::i;:::-;13612:77;;13698:52;13743:6;13738:3;13731:4;13724:5;13720:16;13698:52;:::i;:::-;13775:29;13797:6;13775:29;:::i;:::-;13770:3;13766:39;13759:46;;13541:270;13451:360;;;;:::o;13817:145::-;13911:44;13949:5;13911:44;:::i;:::-;13906:3;13899:57;13817:145;;:::o;13968:364::-;14056:3;14084:39;14117:5;14084:39;:::i;:::-;14139:71;14203:6;14198:3;14139:71;:::i;:::-;14132:78;;14219:52;14264:6;14259:3;14252:4;14245:5;14241:16;14219:52;:::i;:::-;14296:29;14318:6;14296:29;:::i;:::-;14291:3;14287:39;14280:46;;14060:272;13968:364;;;;:::o;14338:377::-;14444:3;14472:39;14505:5;14472:39;:::i;:::-;14527:89;14609:6;14604:3;14527:89;:::i;:::-;14520:96;;14625:52;14670:6;14665:3;14658:4;14651:5;14647:16;14625:52;:::i;:::-;14702:6;14697:3;14693:16;14686:23;;14448:267;14338:377;;;;:::o;14745:845::-;14848:3;14885:5;14879:12;14914:36;14940:9;14914:36;:::i;:::-;14966:89;15048:6;15043:3;14966:89;:::i;:::-;14959:96;;15086:1;15075:9;15071:17;15102:1;15097:137;;;;15248:1;15243:341;;;;15064:520;;15097:137;15181:4;15177:9;15166;15162:25;15157:3;15150:38;15217:6;15212:3;15208:16;15201:23;;15097:137;;15243:341;15310:38;15342:5;15310:38;:::i;:::-;15370:1;15384:154;15398:6;15395:1;15392:13;15384:154;;;15472:7;15466:14;15462:1;15457:3;15453:11;15446:35;15522:1;15513:7;15509:15;15498:26;;15420:4;15417:1;15413:12;15408:17;;15384:154;;;15567:6;15562:3;15558:16;15551:23;;15250:334;;15064:520;;14852:738;;14745:845;;;;:::o;15596:366::-;15738:3;15759:67;15823:2;15818:3;15759:67;:::i;:::-;15752:74;;15835:93;15924:3;15835:93;:::i;:::-;15953:2;15948:3;15944:12;15937:19;;15596:366;;;:::o;15968:::-;16110:3;16131:67;16195:2;16190:3;16131:67;:::i;:::-;16124:74;;16207:93;16296:3;16207:93;:::i;:::-;16325:2;16320:3;16316:12;16309:19;;15968:366;;;:::o;16340:::-;16482:3;16503:67;16567:2;16562:3;16503:67;:::i;:::-;16496:74;;16579:93;16668:3;16579:93;:::i;:::-;16697:2;16692:3;16688:12;16681:19;;16340:366;;;:::o;16712:::-;16854:3;16875:67;16939:2;16934:3;16875:67;:::i;:::-;16868:74;;16951:93;17040:3;16951:93;:::i;:::-;17069:2;17064:3;17060:12;17053:19;;16712:366;;;:::o;17084:::-;17226:3;17247:67;17311:2;17306:3;17247:67;:::i;:::-;17240:74;;17323:93;17412:3;17323:93;:::i;:::-;17441:2;17436:3;17432:12;17425:19;;17084:366;;;:::o;17456:::-;17598:3;17619:67;17683:2;17678:3;17619:67;:::i;:::-;17612:74;;17695:93;17784:3;17695:93;:::i;:::-;17813:2;17808:3;17804:12;17797:19;;17456:366;;;:::o;17828:::-;17970:3;17991:67;18055:2;18050:3;17991:67;:::i;:::-;17984:74;;18067:93;18156:3;18067:93;:::i;:::-;18185:2;18180:3;18176:12;18169:19;;17828:366;;;:::o;18200:::-;18342:3;18363:67;18427:2;18422:3;18363:67;:::i;:::-;18356:74;;18439:93;18528:3;18439:93;:::i;:::-;18557:2;18552:3;18548:12;18541:19;;18200:366;;;:::o;18572:::-;18714:3;18735:67;18799:2;18794:3;18735:67;:::i;:::-;18728:74;;18811:93;18900:3;18811:93;:::i;:::-;18929:2;18924:3;18920:12;18913:19;;18572:366;;;:::o;18944:::-;19086:3;19107:67;19171:2;19166:3;19107:67;:::i;:::-;19100:74;;19183:93;19272:3;19183:93;:::i;:::-;19301:2;19296:3;19292:12;19285:19;;18944:366;;;:::o;19316:::-;19458:3;19479:67;19543:2;19538:3;19479:67;:::i;:::-;19472:74;;19555:93;19644:3;19555:93;:::i;:::-;19673:2;19668:3;19664:12;19657:19;;19316:366;;;:::o;19688:::-;19830:3;19851:67;19915:2;19910:3;19851:67;:::i;:::-;19844:74;;19927:93;20016:3;19927:93;:::i;:::-;20045:2;20040:3;20036:12;20029:19;;19688:366;;;:::o;20060:::-;20202:3;20223:67;20287:2;20282:3;20223:67;:::i;:::-;20216:74;;20299:93;20388:3;20299:93;:::i;:::-;20417:2;20412:3;20408:12;20401:19;;20060:366;;;:::o;20432:::-;20574:3;20595:67;20659:2;20654:3;20595:67;:::i;:::-;20588:74;;20671:93;20760:3;20671:93;:::i;:::-;20789:2;20784:3;20780:12;20773:19;;20432:366;;;:::o;20804:::-;20946:3;20967:67;21031:2;21026:3;20967:67;:::i;:::-;20960:74;;21043:93;21132:3;21043:93;:::i;:::-;21161:2;21156:3;21152:12;21145:19;;20804:366;;;:::o;21176:400::-;21336:3;21357:84;21439:1;21434:3;21357:84;:::i;:::-;21350:91;;21450:93;21539:3;21450:93;:::i;:::-;21568:1;21563:3;21559:11;21552:18;;21176:400;;;:::o;21582:366::-;21724:3;21745:67;21809:2;21804:3;21745:67;:::i;:::-;21738:74;;21821:93;21910:3;21821:93;:::i;:::-;21939:2;21934:3;21930:12;21923:19;;21582:366;;;:::o;21954:::-;22096:3;22117:67;22181:2;22176:3;22117:67;:::i;:::-;22110:74;;22193:93;22282:3;22193:93;:::i;:::-;22311:2;22306:3;22302:12;22295:19;;21954:366;;;:::o;22326:::-;22468:3;22489:67;22553:2;22548:3;22489:67;:::i;:::-;22482:74;;22565:93;22654:3;22565:93;:::i;:::-;22683:2;22678:3;22674:12;22667:19;;22326:366;;;:::o;22698:::-;22840:3;22861:67;22925:2;22920:3;22861:67;:::i;:::-;22854:74;;22937:93;23026:3;22937:93;:::i;:::-;23055:2;23050:3;23046:12;23039:19;;22698:366;;;:::o;23070:::-;23212:3;23233:67;23297:2;23292:3;23233:67;:::i;:::-;23226:74;;23309:93;23398:3;23309:93;:::i;:::-;23427:2;23422:3;23418:12;23411:19;;23070:366;;;:::o;23442:::-;23584:3;23605:67;23669:2;23664:3;23605:67;:::i;:::-;23598:74;;23681:93;23770:3;23681:93;:::i;:::-;23799:2;23794:3;23790:12;23783:19;;23442:366;;;:::o;23814:::-;23956:3;23977:67;24041:2;24036:3;23977:67;:::i;:::-;23970:74;;24053:93;24142:3;24053:93;:::i;:::-;24171:2;24166:3;24162:12;24155:19;;23814:366;;;:::o;24186:::-;24328:3;24349:67;24413:2;24408:3;24349:67;:::i;:::-;24342:74;;24425:93;24514:3;24425:93;:::i;:::-;24543:2;24538:3;24534:12;24527:19;;24186:366;;;:::o;24558:::-;24700:3;24721:67;24785:2;24780:3;24721:67;:::i;:::-;24714:74;;24797:93;24886:3;24797:93;:::i;:::-;24915:2;24910:3;24906:12;24899:19;;24558:366;;;:::o;24930:::-;25072:3;25093:67;25157:2;25152:3;25093:67;:::i;:::-;25086:74;;25169:93;25258:3;25169:93;:::i;:::-;25287:2;25282:3;25278:12;25271:19;;24930:366;;;:::o;25302:::-;25444:3;25465:67;25529:2;25524:3;25465:67;:::i;:::-;25458:74;;25541:93;25630:3;25541:93;:::i;:::-;25659:2;25654:3;25650:12;25643:19;;25302:366;;;:::o;25674:108::-;25751:24;25769:5;25751:24;:::i;:::-;25746:3;25739:37;25674:108;;:::o;25788:118::-;25875:24;25893:5;25875:24;:::i;:::-;25870:3;25863:37;25788:118;;:::o;25912:589::-;26137:3;26159:95;26250:3;26241:6;26159:95;:::i;:::-;26152:102;;26271:95;26362:3;26353:6;26271:95;:::i;:::-;26264:102;;26383:92;26471:3;26462:6;26383:92;:::i;:::-;26376:99;;26492:3;26485:10;;25912:589;;;;;;:::o;26507:695::-;26785:3;26807:95;26898:3;26889:6;26807:95;:::i;:::-;26800:102;;26919:148;27063:3;26919:148;:::i;:::-;26912:155;;27084:92;27172:3;27163:6;27084:92;:::i;:::-;27077:99;;27193:3;27186:10;;26507:695;;;;;:::o;27208:222::-;27301:4;27339:2;27328:9;27324:18;27316:26;;27352:71;27420:1;27409:9;27405:17;27396:6;27352:71;:::i;:::-;27208:222;;;;:::o;27436:346::-;27564:4;27602:2;27591:9;27587:18;27579:26;;27615:71;27683:1;27672:9;27668:17;27659:6;27615:71;:::i;:::-;27696:79;27771:2;27760:9;27756:18;27747:6;27696:79;:::i;:::-;27436:346;;;;;:::o;27788:332::-;27909:4;27947:2;27936:9;27932:18;27924:26;;27960:71;28028:1;28017:9;28013:17;28004:6;27960:71;:::i;:::-;28041:72;28109:2;28098:9;28094:18;28085:6;28041:72;:::i;:::-;27788:332;;;;;:::o;28126:373::-;28269:4;28307:2;28296:9;28292:18;28284:26;;28356:9;28350:4;28346:20;28342:1;28331:9;28327:17;28320:47;28384:108;28487:4;28478:6;28384:108;:::i;:::-;28376:116;;28126:373;;;;:::o;28505:210::-;28592:4;28630:2;28619:9;28615:18;28607:26;;28643:65;28705:1;28694:9;28690:17;28681:6;28643:65;:::i;:::-;28505:210;;;;:::o;28721:309::-;28832:4;28870:2;28859:9;28855:18;28847:26;;28919:9;28913:4;28909:20;28905:1;28894:9;28890:17;28883:47;28947:76;29018:4;29009:6;28947:76;:::i;:::-;28939:84;;28721:309;;;;:::o;29036:313::-;29149:4;29187:2;29176:9;29172:18;29164:26;;29236:9;29230:4;29226:20;29222:1;29211:9;29207:17;29200:47;29264:78;29337:4;29328:6;29264:78;:::i;:::-;29256:86;;29036:313;;;;:::o;29355:419::-;29521:4;29559:2;29548:9;29544:18;29536:26;;29608:9;29602:4;29598:20;29594:1;29583:9;29579:17;29572:47;29636:131;29762:4;29636:131;:::i;:::-;29628:139;;29355:419;;;:::o;29780:::-;29946:4;29984:2;29973:9;29969:18;29961:26;;30033:9;30027:4;30023:20;30019:1;30008:9;30004:17;29997:47;30061:131;30187:4;30061:131;:::i;:::-;30053:139;;29780:419;;;:::o;30205:::-;30371:4;30409:2;30398:9;30394:18;30386:26;;30458:9;30452:4;30448:20;30444:1;30433:9;30429:17;30422:47;30486:131;30612:4;30486:131;:::i;:::-;30478:139;;30205:419;;;:::o;30630:::-;30796:4;30834:2;30823:9;30819:18;30811:26;;30883:9;30877:4;30873:20;30869:1;30858:9;30854:17;30847:47;30911:131;31037:4;30911:131;:::i;:::-;30903:139;;30630:419;;;:::o;31055:::-;31221:4;31259:2;31248:9;31244:18;31236:26;;31308:9;31302:4;31298:20;31294:1;31283:9;31279:17;31272:47;31336:131;31462:4;31336:131;:::i;:::-;31328:139;;31055:419;;;:::o;31480:::-;31646:4;31684:2;31673:9;31669:18;31661:26;;31733:9;31727:4;31723:20;31719:1;31708:9;31704:17;31697:47;31761:131;31887:4;31761:131;:::i;:::-;31753:139;;31480:419;;;:::o;31905:::-;32071:4;32109:2;32098:9;32094:18;32086:26;;32158:9;32152:4;32148:20;32144:1;32133:9;32129:17;32122:47;32186:131;32312:4;32186:131;:::i;:::-;32178:139;;31905:419;;;:::o;32330:::-;32496:4;32534:2;32523:9;32519:18;32511:26;;32583:9;32577:4;32573:20;32569:1;32558:9;32554:17;32547:47;32611:131;32737:4;32611:131;:::i;:::-;32603:139;;32330:419;;;:::o;32755:::-;32921:4;32959:2;32948:9;32944:18;32936:26;;33008:9;33002:4;32998:20;32994:1;32983:9;32979:17;32972:47;33036:131;33162:4;33036:131;:::i;:::-;33028:139;;32755:419;;;:::o;33180:::-;33346:4;33384:2;33373:9;33369:18;33361:26;;33433:9;33427:4;33423:20;33419:1;33408:9;33404:17;33397:47;33461:131;33587:4;33461:131;:::i;:::-;33453:139;;33180:419;;;:::o;33605:::-;33771:4;33809:2;33798:9;33794:18;33786:26;;33858:9;33852:4;33848:20;33844:1;33833:9;33829:17;33822:47;33886:131;34012:4;33886:131;:::i;:::-;33878:139;;33605:419;;;:::o;34030:::-;34196:4;34234:2;34223:9;34219:18;34211:26;;34283:9;34277:4;34273:20;34269:1;34258:9;34254:17;34247:47;34311:131;34437:4;34311:131;:::i;:::-;34303:139;;34030:419;;;:::o;34455:::-;34621:4;34659:2;34648:9;34644:18;34636:26;;34708:9;34702:4;34698:20;34694:1;34683:9;34679:17;34672:47;34736:131;34862:4;34736:131;:::i;:::-;34728:139;;34455:419;;;:::o;34880:::-;35046:4;35084:2;35073:9;35069:18;35061:26;;35133:9;35127:4;35123:20;35119:1;35108:9;35104:17;35097:47;35161:131;35287:4;35161:131;:::i;:::-;35153:139;;34880:419;;;:::o;35305:::-;35471:4;35509:2;35498:9;35494:18;35486:26;;35558:9;35552:4;35548:20;35544:1;35533:9;35529:17;35522:47;35586:131;35712:4;35586:131;:::i;:::-;35578:139;;35305:419;;;:::o;35730:::-;35896:4;35934:2;35923:9;35919:18;35911:26;;35983:9;35977:4;35973:20;35969:1;35958:9;35954:17;35947:47;36011:131;36137:4;36011:131;:::i;:::-;36003:139;;35730:419;;;:::o;36155:::-;36321:4;36359:2;36348:9;36344:18;36336:26;;36408:9;36402:4;36398:20;36394:1;36383:9;36379:17;36372:47;36436:131;36562:4;36436:131;:::i;:::-;36428:139;;36155:419;;;:::o;36580:::-;36746:4;36784:2;36773:9;36769:18;36761:26;;36833:9;36827:4;36823:20;36819:1;36808:9;36804:17;36797:47;36861:131;36987:4;36861:131;:::i;:::-;36853:139;;36580:419;;;:::o;37005:::-;37171:4;37209:2;37198:9;37194:18;37186:26;;37258:9;37252:4;37248:20;37244:1;37233:9;37229:17;37222:47;37286:131;37412:4;37286:131;:::i;:::-;37278:139;;37005:419;;;:::o;37430:::-;37596:4;37634:2;37623:9;37619:18;37611:26;;37683:9;37677:4;37673:20;37669:1;37658:9;37654:17;37647:47;37711:131;37837:4;37711:131;:::i;:::-;37703:139;;37430:419;;;:::o;37855:::-;38021:4;38059:2;38048:9;38044:18;38036:26;;38108:9;38102:4;38098:20;38094:1;38083:9;38079:17;38072:47;38136:131;38262:4;38136:131;:::i;:::-;38128:139;;37855:419;;;:::o;38280:::-;38446:4;38484:2;38473:9;38469:18;38461:26;;38533:9;38527:4;38523:20;38519:1;38508:9;38504:17;38497:47;38561:131;38687:4;38561:131;:::i;:::-;38553:139;;38280:419;;;:::o;38705:::-;38871:4;38909:2;38898:9;38894:18;38886:26;;38958:9;38952:4;38948:20;38944:1;38933:9;38929:17;38922:47;38986:131;39112:4;38986:131;:::i;:::-;38978:139;;38705:419;;;:::o;39130:::-;39296:4;39334:2;39323:9;39319:18;39311:26;;39383:9;39377:4;39373:20;39369:1;39358:9;39354:17;39347:47;39411:131;39537:4;39411:131;:::i;:::-;39403:139;;39130:419;;;:::o;39555:::-;39721:4;39759:2;39748:9;39744:18;39736:26;;39808:9;39802:4;39798:20;39794:1;39783:9;39779:17;39772:47;39836:131;39962:4;39836:131;:::i;:::-;39828:139;;39555:419;;;:::o;39980:::-;40146:4;40184:2;40173:9;40169:18;40161:26;;40233:9;40227:4;40223:20;40219:1;40208:9;40204:17;40197:47;40261:131;40387:4;40261:131;:::i;:::-;40253:139;;39980:419;;;:::o;40405:222::-;40498:4;40536:2;40525:9;40521:18;40513:26;;40549:71;40617:1;40606:9;40602:17;40593:6;40549:71;:::i;:::-;40405:222;;;;:::o;40633:541::-;40804:4;40842:3;40831:9;40827:19;40819:27;;40856:71;40924:1;40913:9;40909:17;40900:6;40856:71;:::i;:::-;40937:72;41005:2;40994:9;40990:18;40981:6;40937:72;:::i;:::-;41019;41087:2;41076:9;41072:18;41063:6;41019:72;:::i;:::-;41101:66;41163:2;41152:9;41148:18;41139:6;41101:66;:::i;:::-;40633:541;;;;;;;:::o;41180:129::-;41214:6;41241:20;;:::i;:::-;41231:30;;41270:33;41298:4;41290:6;41270:33;:::i;:::-;41180:129;;;:::o;41315:75::-;41348:6;41381:2;41375:9;41365:19;;41315:75;:::o;41396:307::-;41457:4;41547:18;41539:6;41536:30;41533:56;;;41569:18;;:::i;:::-;41533:56;41607:29;41629:6;41607:29;:::i;:::-;41599:37;;41691:4;41685;41681:15;41673:23;;41396:307;;;:::o;41709:308::-;41771:4;41861:18;41853:6;41850:30;41847:56;;;41883:18;;:::i;:::-;41847:56;41921:29;41943:6;41921:29;:::i;:::-;41913:37;;42005:4;41999;41995:15;41987:23;;41709:308;;;:::o;42023:132::-;42090:4;42113:3;42105:11;;42143:4;42138:3;42134:14;42126:22;;42023:132;;;:::o;42161:141::-;42210:4;42233:3;42225:11;;42256:3;42253:1;42246:14;42290:4;42287:1;42277:18;42269:26;;42161:141;;;:::o;42308:114::-;42375:6;42409:5;42403:12;42393:22;;42308:114;;;:::o;42428:98::-;42479:6;42513:5;42507:12;42497:22;;42428:98;;;:::o;42532:99::-;42584:6;42618:5;42612:12;42602:22;;42532:99;;;:::o;42637:113::-;42707:4;42739;42734:3;42730:14;42722:22;;42637:113;;;:::o;42756:184::-;42855:11;42889:6;42884:3;42877:19;42929:4;42924:3;42920:14;42905:29;;42756:184;;;;:::o;42946:168::-;43029:11;43063:6;43058:3;43051:19;43103:4;43098:3;43094:14;43079:29;;42946:168;;;;:::o;43120:169::-;43204:11;43238:6;43233:3;43226:19;43278:4;43273:3;43269:14;43254:29;;43120:169;;;;:::o;43295:148::-;43397:11;43434:3;43419:18;;43295:148;;;;:::o;43449:305::-;43489:3;43508:20;43526:1;43508:20;:::i;:::-;43503:25;;43542:20;43560:1;43542:20;:::i;:::-;43537:25;;43696:1;43628:66;43624:74;43621:1;43618:81;43615:107;;;43702:18;;:::i;:::-;43615:107;43746:1;43743;43739:9;43732:16;;43449:305;;;;:::o;43760:191::-;43800:4;43820:20;43838:1;43820:20;:::i;:::-;43815:25;;43854:20;43872:1;43854:20;:::i;:::-;43849:25;;43893:1;43890;43887:8;43884:34;;;43898:18;;:::i;:::-;43884:34;43943:1;43940;43936:9;43928:17;;43760:191;;;;:::o;43957:96::-;43994:7;44023:24;44041:5;44023:24;:::i;:::-;44012:35;;43957:96;;;:::o;44059:90::-;44093:7;44136:5;44129:13;44122:21;44111:32;;44059:90;;;:::o;44155:149::-;44191:7;44231:66;44224:5;44220:78;44209:89;;44155:149;;;:::o;44310:129::-;44356:7;44385:5;44374:16;;44391:42;44427:5;44391:42;:::i;:::-;44310:129;;;:::o;44445:126::-;44482:7;44522:42;44515:5;44511:54;44500:65;;44445:126;;;:::o;44577:77::-;44614:7;44643:5;44632:16;;44577:77;;;:::o;44660:129::-;44717:9;44750:33;44777:5;44750:33;:::i;:::-;44737:46;;44660:129;;;:::o;44795:154::-;44879:6;44874:3;44869;44856:30;44941:1;44932:6;44927:3;44923:16;44916:27;44795:154;;;:::o;44955:307::-;45023:1;45033:113;45047:6;45044:1;45041:13;45033:113;;;45132:1;45127:3;45123:11;45117:18;45113:1;45108:3;45104:11;45097:39;45069:2;45066:1;45062:10;45057:15;;45033:113;;;45164:6;45161:1;45158:13;45155:101;;;45244:1;45235:6;45230:3;45226:16;45219:27;45155:101;45004:258;44955:307;;;:::o;45268:320::-;45312:6;45349:1;45343:4;45339:12;45329:22;;45396:1;45390:4;45386:12;45417:18;45407:81;;45473:4;45465:6;45461:17;45451:27;;45407:81;45535:2;45527:6;45524:14;45504:18;45501:38;45498:84;;;45554:18;;:::i;:::-;45498:84;45319:269;45268:320;;;:::o;45594:281::-;45677:27;45699:4;45677:27;:::i;:::-;45669:6;45665:40;45807:6;45795:10;45792:22;45771:18;45759:10;45756:34;45753:62;45750:88;;;45818:18;;:::i;:::-;45750:88;45858:10;45854:2;45847:22;45637:238;45594:281;;:::o;45881:233::-;45920:3;45943:24;45961:5;45943:24;:::i;:::-;45934:33;;45989:66;45982:5;45979:77;45976:103;;;46059:18;;:::i;:::-;45976:103;46106:1;46099:5;46095:13;46088:20;;45881:233;;;:::o;46120:180::-;46168:77;46165:1;46158:88;46265:4;46262:1;46255:15;46289:4;46286:1;46279:15;46306:180;46354:77;46351:1;46344:88;46451:4;46448:1;46441:15;46475:4;46472:1;46465:15;46492:180;46540:77;46537:1;46530:88;46637:4;46634:1;46627:15;46661:4;46658:1;46651:15;46678:180;46726:77;46723:1;46716:88;46823:4;46820:1;46813:15;46847:4;46844:1;46837:15;46864:180;46912:77;46909:1;46902:88;47009:4;47006:1;46999:15;47033:4;47030:1;47023:15;47050:117;47159:1;47156;47149:12;47173:117;47282:1;47279;47272:12;47296:117;47405:1;47402;47395:12;47419:117;47528:1;47525;47518:12;47542:102;47583:6;47634:2;47630:7;47625:2;47618:5;47614:14;47610:28;47600:38;;47542:102;;;:::o;47650:239::-;47790:34;47786:1;47778:6;47774:14;47767:58;47859:22;47854:2;47846:6;47842:15;47835:47;47650:239;:::o;47895:248::-;48035:34;48031:1;48023:6;48019:14;48012:58;48104:31;48099:2;48091:6;48087:15;48080:56;47895:248;:::o;48149:233::-;48289:34;48285:1;48277:6;48273:14;48266:58;48358:16;48353:2;48345:6;48341:15;48334:41;48149:233;:::o;48388:::-;48528:34;48524:1;48516:6;48512:14;48505:58;48597:16;48592:2;48584:6;48580:15;48573:41;48388:233;:::o;48627:223::-;48767:34;48763:1;48755:6;48751:14;48744:58;48836:6;48831:2;48823:6;48819:15;48812:31;48627:223;:::o;48856:241::-;48996:34;48992:1;48984:6;48980:14;48973:58;49065:24;49060:2;49052:6;49048:15;49041:49;48856:241;:::o;49103:231::-;49243:34;49239:1;49231:6;49227:14;49220:58;49312:14;49307:2;49299:6;49295:15;49288:39;49103:231;:::o;49340:229::-;49480:34;49476:1;49468:6;49464:14;49457:58;49549:12;49544:2;49536:6;49532:15;49525:37;49340:229;:::o;49575:230::-;49715:34;49711:1;49703:6;49699:14;49692:58;49784:13;49779:2;49771:6;49767:15;49760:38;49575:230;:::o;49811:232::-;49951:34;49947:1;49939:6;49935:14;49928:58;50020:15;50015:2;50007:6;50003:15;49996:40;49811:232;:::o;50049:297::-;50189:34;50185:1;50177:6;50173:14;50166:58;50258:34;50253:2;50245:6;50241:15;50234:59;50327:11;50322:2;50314:6;50310:15;50303:36;50049:297;:::o;50352:234::-;50492:34;50488:1;50480:6;50476:14;50469:58;50561:17;50556:2;50548:6;50544:15;50537:42;50352:234;:::o;50592:239::-;50732:34;50728:1;50720:6;50716:14;50709:58;50801:22;50796:2;50788:6;50784:15;50777:47;50592:239;:::o;50837:235::-;50977:34;50973:1;50965:6;50961:14;50954:58;51046:18;51041:2;51033:6;51029:15;51022:43;50837:235;:::o;51078:176::-;51218:28;51214:1;51206:6;51202:14;51195:52;51078:176;:::o;51260:157::-;51400:9;51396:1;51388:6;51384:14;51377:33;51260:157;:::o;51423:232::-;51563:34;51559:1;51551:6;51547:14;51540:58;51632:15;51627:2;51619:6;51615:15;51608:40;51423:232;:::o;51661:231::-;51801:34;51797:1;51789:6;51785:14;51778:58;51870:14;51865:2;51857:6;51853:15;51846:39;51661:231;:::o;51898:236::-;52038:34;52034:1;52026:6;52022:14;52015:58;52107:19;52102:2;52094:6;52090:15;52083:44;51898:236;:::o;52140:180::-;52280:32;52276:1;52268:6;52264:14;52257:56;52140:180;:::o;52326:::-;52466:32;52462:1;52454:6;52450:14;52443:56;52326:180;:::o;52512:177::-;52652:29;52648:1;52640:6;52636:14;52629:53;52512:177;:::o;52695:236::-;52835:34;52831:1;52823:6;52819:14;52812:58;52904:19;52899:2;52891:6;52887:15;52880:44;52695:236;:::o;52937:232::-;53077:34;53073:1;53065:6;53061:14;53054:58;53146:15;53141:2;53133:6;53129:15;53122:40;52937:232;:::o;53175:225::-;53315:34;53311:1;53303:6;53299:14;53292:58;53384:8;53379:2;53371:6;53367:15;53360:33;53175:225;:::o;53406:228::-;53546:34;53542:1;53534:6;53530:14;53523:58;53615:11;53610:2;53602:6;53598:15;53591:36;53406:228;:::o;53640:223::-;53780:34;53776:1;53768:6;53764:14;53757:58;53849:6;53844:2;53836:6;53832:15;53825:31;53640:223;:::o;53869:114::-;53951:1;53944:5;53941:12;53931:46;;53957:18;;:::i;:::-;53931:46;53869:114;:::o;53989:122::-;54062:24;54080:5;54062:24;:::i;:::-;54055:5;54052:35;54042:63;;54101:1;54098;54091:12;54042:63;53989:122;:::o;54117:116::-;54187:21;54202:5;54187:21;:::i;:::-;54180:5;54177:32;54167:60;;54223:1;54220;54213:12;54167:60;54117:116;:::o;54239:120::-;54311:23;54328:5;54311:23;:::i;:::-;54304:5;54301:34;54291:62;;54349:1;54346;54339:12;54291:62;54239:120;:::o;54365:108::-;54447:1;54440:5;54437:12;54427:40;;54463:1;54460;54453:12;54427:40;54365:108;:::o;54479:122::-;54552:24;54570:5;54552:24;:::i;:::-;54545:5;54542:35;54532:63;;54591:1;54588;54581:12;54532:63;54479:122;:::o
Swarm Source
ipfs://87f26c8e708a9a7727ff0ecea85dfb6bd2d11816710d5050188911485eadc4c0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.