ERC-721
Overview
Max Total Supply
999 TRAF
Holders
394
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 TRAFLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TRAF
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-01 */ // SPDX-License-Identifier: MIT pragma solidity =0.7.6; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 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 _owner) external view returns (uint256); function ownerOf(uint256 _tokenId) external view returns (address); function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external; function safeTransferFrom(address _from, address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; function approve(address _approved, uint256 _tokenId) external; function setApprovalForAll(address _operator, bool _approved) external; function getApproved(uint256 _tokenId) external view returns (address); function isApprovedForAll(address _owner, address _operator) external view returns (bool); } interface IERC721Metadata is IERC721 { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); function totalSupply() external view returns(uint256); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } library Strings { function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } } abstract contract OMS { //Orcania Management Standard address private _owner; mapping(address => bool) private _manager; event OwnershipTransfer(address indexed newOwner); event SetManager(address indexed manager, bool state); receive() external payable {} constructor() { _owner = msg.sender; _manager[msg.sender] = true; emit SetManager(msg.sender, true); } //Modifiers ========================================================================================================================================== modifier Owner() { require(msg.sender == _owner, "OMS: NOT_OWNER"); _; } modifier Manager() { require(_manager[msg.sender], "OMS: MOT_MANAGER"); _; } //Read functions ===================================================================================================================================== function owner() public view returns (address) { return _owner; } function manager(address user) external view returns(bool) { return _manager[user]; } //Write functions ==================================================================================================================================== function setNewOwner(address user) external Owner { _owner = user; emit OwnershipTransfer(user); } function setManager(address user, bool state) external Owner { _manager[user] = state; emit SetManager(user, state); } //=============== function withdraw(address payable to, uint256 value) external Manager { require(to.send(value), "OMS: ISSUE_SENDING_FUNDS"); } } abstract contract O_ERC721 is OMS, ERC165, IERC721, IERC721Metadata{ //OrcaniaERC721 Standard using Strings for uint256; string internal uriLink; uint256 internal _totalSupply; string internal _name; string internal _symbol; mapping(uint256 => address) internal _owners; mapping(address => uint256) internal _balances; mapping(uint256 => address) public _tokenApprovals; mapping(address => mapping(address => bool)) public _operatorApprovals; //Read Functions====================================================================================================================================================== function supportsInterface(bytes4 interfaceId) public view override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) external view override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) external view override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view override returns (string memory) { return _name; } function symbol() public view override returns (string memory) { return _symbol; } function totalSupply() public view override returns(uint256){return _totalSupply;} function tokenURI(uint256 tokenId) external view virtual override returns (string memory) { return string(abi.encodePacked(uriLink, tokenId.toString(), ".json")); } function getApproved(uint256 tokenId) external view override returns (address) { require(_owners[tokenId] != address(0), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function isApprovedForAll(address owner, address operator) public view override returns (bool) { return _operatorApprovals[owner][operator]; } function tokensOf(address user, uint256 limit) external view returns(uint256[] memory nfts) { nfts = new uint256[](limit); uint256 index; for(uint256 t=1; t <= _totalSupply && index < limit; ++t) { if(_owners[t] == user) {nfts[index++] = t;} } } //Moderator Functions====================================================================================================================================================== function changeURIlink(string calldata newUri) external Manager { uriLink = newUri; } function changeData(string calldata name, string calldata symbol) external Manager { _name = name; _symbol = symbol; } function adminMint(address to, uint256 amount) external Manager { _mint(to, amount); } function adminMint(address to) external payable Manager { _mint(to, msg.value); } function adminMint(address[] calldata to, uint256[] calldata amount) external Manager { uint256 size = to.length; for(uint256 t; t < size; ++t) { _mint(to[t], amount[t]); } } //User Functions====================================================================================================================================================== function approve(address to, uint256 tokenId) external override { address owner = _owners[tokenId]; require(msg.sender == owner || isApprovedForAll(owner, msg.sender), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function setApprovalForAll(address operator, bool approved) public override { require(operator != msg.sender, "ERC721: approve to caller"); _operatorApprovals[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function transferFrom(address from, address to, uint256 tokenId) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom(address from, address to, uint256 tokenId) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata _data) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } //Internal Functions====================================================================================================================================================== function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal { _transfer(from, to, tokenId); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) { require(_owners[tokenId] != address(0), "ERC721: operator query for nonexistent token"); address owner = _owners[tokenId]; require(spender == owner || _tokenApprovals[tokenId] == spender || isApprovedForAll(owner, spender), "ERC721: Not approved or owner"); return true; } function _transfer(address from, address to, uint256 tokenId) internal { require(_owners[tokenId] == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); // Clear approvals from the previous owner _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(_owners[tokenId], to, tokenId); } function _mint(address user, uint256 amount) internal { uint256 tokenID = _totalSupply; _balances[user] += amount; _totalSupply += amount; for(uint256 t; t < amount; ++t) { _owners[++tokenID] = user; emit Transfer(address(0), user, tokenID); } } } contract TRAF is O_ERC721 { constructor() { _name = "The Red Ape Family"; _symbol = "TRAF"; uriLink = "https://ipfs.io/ipfs/QmNLozPFC34fZuzKWDb35hbmpUUZg9MBBVjBg8c6aUHc2A/EpisodeData"; } mapping(address => uint256) private _holdersMint_Mints; bool private _holdersMint_Active; function holdersMint() external payable{ require(_holdersMint_Active, "MINT_OFF"); require(_balances[msg.sender] > 0, "NOT_HOLDER"); require(msg.value % 250000000000000000 == 0, "WRONG_VALUE"); uint256 amount = msg.value / 250000000000000000; require((_holdersMint_Mints[msg.sender] += amount) < 11, "USER_MINT_LIMIT_REACHED"); //Total mints of 10 per wallet _mint(msg.sender, amount); require(_totalSupply < 1778, "MINT_LIMIT_REACHED"); //Max of 1111 NFTs for ep3 } mapping(address => uint256) private _wlPartnersMint_Mints; uint256 private _wlPartnersMint_TotalMinted; bool private _wlPartnersMint_Active; function wlPartnersMint() external payable{ require(_wlPartnersMint_Active, "MINT_OFF"); require( IERC721(0x219B8aB790dECC32444a6600971c7C3718252539).balanceOf(msg.sender) > 0 || IERC721(0xF1268733C6FB05EF6bE9cF23d24436Dcd6E0B35E).balanceOf(msg.sender) > 0 || IERC721(0x5DF340b5D1618c543aC81837dA1C2d2B17b3B5d8).balanceOf(msg.sender) > 0 || IERC721(0x9ee36cD3E78bAdcAF0cBED71c824bD8C5Cb65a8C).balanceOf(msg.sender) > 0 || IERC721(0x3a4cA1c1bB243D299032753fdd75e8FEc1F0d585).balanceOf(msg.sender) > 0 || IERC721(0xF3114DD5c5b50a573E66596563D15A630ED359b4).balanceOf(msg.sender) > 0 , "NOT_PARTNER_HOLDER"); require(msg.value % 350000000000000000 == 0, "WRONG_VALUE"); uint256 amount = msg.value / 350000000000000000; require((_wlPartnersMint_Mints[msg.sender] += amount) < 2, "USER_MINT_LIMIT_REACHED"); //Total mints of 1 per wallet require((_wlPartnersMint_TotalMinted += amount) < 889, "MINT_LIMIT_REACHED"); //Total mints of 888 for this mint _mint(msg.sender, amount); require(_totalSupply < 1778, "MINT_LIMIT_REACHED"); //Max of 1111 NFTs for ep3 } mapping(address => uint256) private _nonWlPartnersMint_Mints; bool private _nonWlPartnersMint_Active; function nonWlPartnersMint() external payable{ require(_nonWlPartnersMint_Active, "MINT_OFF"); require( IERC721(0x369156da04B6F313b532F7aE08E661e402B1C2F2).balanceOf(msg.sender) > 0 || IERC721(0x91cc3844B8271337679F8C00cB2d238886917d40).balanceOf(msg.sender) > 0 || IERC721(0x21AE791a447c7EeC28c40Bba0B297b00D7D0e8F4).balanceOf(msg.sender) > 0 , "NOT_PARTNER_HOLDER"); require(msg.value % 400000000000000000 == 0, "WRONG_VALUE"); uint256 amount = msg.value / 400000000000000000; require((_nonWlPartnersMint_Mints[msg.sender] += amount) < 11, "USER_MINT_LIMIT_REACHED"); //Total mints of 10 per wallet _mint(msg.sender, amount); require(_totalSupply < 1778, "MINT_LIMIT_REACHED"); //Max of 1111 NFTs for ep3 } function setMints(bool holdersMint_Active, bool wlPartnersMint_Active, bool nonWlPartnersMint_Active) external Manager { _holdersMint_Active = holdersMint_Active; _wlPartnersMint_Active = wlPartnersMint_Active; _nonWlPartnersMint_Active = nonWlPartnersMint_Active; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_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":"newOwner","type":"address"}],"name":"OwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"bool","name":"state","type":"bool"}],"name":"SetManager","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"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_operatorApprovals","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_tokenApprovals","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"adminMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","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":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"name":"changeData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUri","type":"string"}],"name":"changeURIlink","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"holdersMint","outputs":[],"stateMutability":"payable","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":[{"internalType":"address","name":"user","type":"address"}],"name":"manager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonWlPartnersMint","outputs":[],"stateMutability":"payable","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":[{"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":"address","name":"user","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"holdersMint_Active","type":"bool"},{"internalType":"bool","name":"wlPartnersMint_Active","type":"bool"},{"internalType":"bool","name":"nonWlPartnersMint_Active","type":"bool"}],"name":"setMints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"setNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"tokensOf","outputs":[{"internalType":"uint256[]","name":"nfts","type":"uint256[]"}],"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 payable","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wlPartnersMint","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea10286600160405180821515815260200191505060405180910390a26040518060400160405280601281526020017f54686520526564204170652046616d696c7900000000000000000000000000008152506004908051906020019062000147929190620001ce565b506040518060400160405280600481526020017f54524146000000000000000000000000000000000000000000000000000000008152506005908051906020019062000195929190620001ce565b506040518060800160405280604f81526020016200426c604f913960029080519060200190620001c7929190620001ce565b5062000284565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000206576000855562000252565b82601f106200022157805160ff191683800117855562000252565b8280016001018555821562000252579182015b828111156200025157825182559160200191906001019062000234565b5b50905062000261919062000265565b5090565b5b808211156200028057600081600090555060010162000266565b5090565b613fd880620002946000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b88d4fde11610095578063e985e9c511610064578063e985e9c514610d6c578063edc3bc3f14610df3578063f3fef3a314610e7a578063f5a1f5b414610ed5576101e3565b8063b88d4fde14610b26578063c87b56dd14610bf6578063d4d2e7f214610caa578063e58306f914610d11576101e3565b8063a49340cc116100d1578063a49340cc1461097f578063a5e90eee14610a5a578063a7cc013614610ab7578063b66ebb1a14610b1c576101e3565b80638da5cb5b1461080d57806395d89b411461084e5780639769dc0e146108de578063a22cb46514610922576101e3565b806338a3dbae1161017a5780636352211e116101495780636352211e146106685780636619e13d146106cd57806370a08231146107225780637277098714610787576101e3565b806338a3dbae1461052957806342842e0e146105d95780634844ca78146106545780635bd9c7fb1461065e576101e3565b8063095ea7b3116101b6578063095ea7b31461034d57806318160ddd146103a857806323b872dd146103d35780632de5374e1461044e576101e3565b806301ffc9a7146101e857806306fdde0314610258578063081812fc146102e8576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506102406004803603602081101561020b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f26565b60405180821515815260200191505060405180910390f35b34801561026457600080fd5b5061026d611008565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ad578082015181840152602081019050610292565b50505050905090810190601f1680156102da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f457600080fd5b506103216004803603602081101561030b57600080fd5b81019080803590602001909291905050506110aa565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035957600080fd5b506103a66004803603604081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061119f565b005b3480156103b457600080fd5b506103bd61127b565b6040518082815260200191505060405180910390f35b3480156103df57600080fd5b5061044c600480360360608110156103f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611285565b005b34801561045a57600080fd5b506105276004803603604081101561047157600080fd5b810190808035906020019064010000000081111561048e57600080fd5b8201836020820111156104a057600080fd5b803590602001918460018302840111640100000000831117156104c257600080fd5b9091929391929390803590602001906401000000008111156104e357600080fd5b8201836020820111156104f557600080fd5b8035906020019184600183028401116401000000008311171561051757600080fd5b90919293919293905050506112f4565b005b34801561053557600080fd5b506105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105c55780820151818401526020810190506105aa565b505050509050019250505060405180910390f35b3480156105e557600080fd5b50610652600480360360608110156105fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e0565b005b61065c61154f565b005b610666611a60565b005b34801561067457600080fd5b506106a16004803603602081101561068b57600080fd5b8101908080359060200190929190505050612236565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d957600080fd5b50610720600480360360608110156106f057600080fd5b810190808035151590602001909291908035151590602001909291908035151590602001909291905050506122fe565b005b34801561072e57600080fd5b506107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612410565b6040518082815260200191505060405180910390f35b34801561079357600080fd5b5061080b600480360360208110156107aa57600080fd5b81019080803590602001906401000000008111156107c757600080fd5b8201836020820111156107d957600080fd5b803590602001918460018302840111640100000000831117156107fb57600080fd5b90919293919293905050506124de565b005b34801561081957600080fd5b506108226125b3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085a57600080fd5b506108636125dc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108a3578082015181840152602081019050610888565b50505050905090810190601f1680156108d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610920600480360360208110156108f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061267e565b005b34801561092e57600080fd5b5061097d6004803603604081101561094557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061274a565b005b34801561098b57600080fd5b50610a58600480360360408110156109a257600080fd5b81019080803590602001906401000000008111156109bf57600080fd5b8201836020820111156109d157600080fd5b803590602001918460208302840111640100000000831117156109f357600080fd5b909192939192939080359060200190640100000000811115610a1457600080fd5b820183602082011115610a2657600080fd5b80359060200191846020830284011164010000000083111715610a4857600080fd5b90919293919293905050506128eb565b005b348015610a6657600080fd5b50610ab560048036036040811015610a7d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612a14565b005b348015610ac357600080fd5b50610af060048036036020811015610ada57600080fd5b8101908080359060200190929190505050612b80565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b24612bb3565b005b348015610b3257600080fd5b50610bf460048036036080811015610b4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610bb057600080fd5b820183602082011115610bc257600080fd5b80359060200191846001830284011164010000000083111715610be457600080fd5b9091929391929390505050612ece565b005b348015610c0257600080fd5b50610c2f60048036036020811015610c1957600080fd5b8101908080359060200190929190505050612f84565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c6f578082015181840152602081019050610c54565b50505050905090810190601f168015610c9c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cb657600080fd5b50610cf960048036036020811015610ccd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613084565b60405180821515815260200191505060405180910390f35b348015610d1d57600080fd5b50610d6a60048036036040811015610d3457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506130da565b005b348015610d7857600080fd5b50610ddb60048036036040811015610d8f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131a7565b60405180821515815260200191505060405180910390f35b348015610dff57600080fd5b50610e6260048036036040811015610e1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061323b565b60405180821515815260200191505060405180910390f35b348015610e8657600080fd5b50610ed360048036036040811015610e9d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061326a565b005b348015610ee157600080fd5b50610f2460048036036020811015610ef857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133d4565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ff157507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061100157506110008261351b565b5b9050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110a05780601f10611075576101008083540402835291602001916110a0565b820191906000526020600020905b81548152906001019060200180831161108357829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f1d602c913960400191505060405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611217575061121681336131a7565b5b61126c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180613e926038913960400191505060405180910390fd5b6112768383613585565b505050565b6000600354905090565b61128f3382613669565b6112e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613f726031913960400191505060405180910390fd5b6112ef838383613881565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b8383600491906113c4929190613d96565b508181600591906113d6929190613d96565b5050505050565b60608167ffffffffffffffff811180156113f657600080fd5b506040519080825280602002602001820160405280156114255781602001602082028036833780820191505090505b509050600080600190505b600354811115801561144157508382105b156114d8578473ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114cd57808383806001019450815181106114c057fe5b6020026020010181815250505b806001019050611430565b505092915050565b6114ea3382613669565b61153f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613f726031913960400191505060405180910390fd5b61154a838383613881565b505050565b601060009054906101000a900460ff166115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4d494e545f4f464600000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073369156da04b6f313b532f7ae08e661e402b1c2f273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561164e57600080fd5b505afa158015611662573d6000803e3d6000fd5b505050506040513d602081101561167857600080fd5b8101908080519060200190929190505050118061174a575060007391cc3844b8271337679f8c00cb2d238886917d4073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561170d57600080fd5b505afa158015611721573d6000803e3d6000fd5b505050506040513d602081101561173757600080fd5b8101908080519060200190929190505050115b8061180a575060007321ae791a447c7eec28c40bba0b297b00d7d0e8f473ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117cd57600080fd5b505afa1580156117e1573d6000803e3d6000fd5b505050506040513d60208110156117f757600080fd5b8101908080519060200190929190505050115b61187c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e4f545f504152544e45525f484f4c444552000000000000000000000000000081525060200191505060405180910390fd5b600067058d15e176280000348161188f57fe5b0614611903576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f57524f4e475f56414c554500000000000000000000000000000000000000000081525060200191505060405180910390fd5b600067058d15e176280000348161191657fe5b049050600b81600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055106119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f555345525f4d494e545f4c494d49545f5245414348454400000000000000000081525060200191505060405180910390fd5b6119e43382613b17565b6106f260035410611a5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b50565b600e60009054906101000a900460ff16611ae2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4d494e545f4f464600000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073219b8ab790decc32444a6600971c7c371825253973ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611b5f57600080fd5b505afa158015611b73573d6000803e3d6000fd5b505050506040513d6020811015611b8957600080fd5b81019080805190602001909291905050501180611c5b5750600073f1268733c6fb05ef6be9cf23d24436dcd6e0b35e73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c1e57600080fd5b505afa158015611c32573d6000803e3d6000fd5b505050506040513d6020811015611c4857600080fd5b8101908080519060200190929190505050115b80611d1b57506000735df340b5d1618c543ac81837da1c2d2b17b3b5d873ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cde57600080fd5b505afa158015611cf2573d6000803e3d6000fd5b505050506040513d6020811015611d0857600080fd5b8101908080519060200190929190505050115b80611ddb57506000739ee36cd3e78badcaf0cbed71c824bd8c5cb65a8c73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d9e57600080fd5b505afa158015611db2573d6000803e3d6000fd5b505050506040513d6020811015611dc857600080fd5b8101908080519060200190929190505050115b80611e9b57506000733a4ca1c1bb243d299032753fdd75e8fec1f0d58573ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e5e57600080fd5b505afa158015611e72573d6000803e3d6000fd5b505050506040513d6020811015611e8857600080fd5b8101908080519060200190929190505050115b80611f5b5750600073f3114dd5c5b50a573e66596563d15a630ed359b473ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d6020811015611f4857600080fd5b8101908080519060200190929190505050115b611fcd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e4f545f504152544e45525f484f4c444552000000000000000000000000000081525060200191505060405180910390fd5b60006704db7325476300003481611fe057fe5b0614612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f57524f4e475f56414c554500000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006704db732547630000348161206757fe5b049050600281600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190551061212b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f555345525f4d494e545f4c494d49545f5245414348454400000000000000000081525060200191505060405180910390fd5b61037981600d600082825401925050819055106121b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b6121ba3382613b17565b6106f260035410612233576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b50565b6000806006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613ef46029913960400191505060405180910390fd5b80915050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b82600b60006101000a81548160ff02191690831515021790555081600e60006101000a81548160ff02191690831515021790555080601060006101000a81548160ff021916908315150217905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613eca602a913960400191505060405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661259d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b8181600291906125ae929190613d96565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126745780601f1061264957610100808354040283529160200191612674565b820191906000526020600020905b81548152906001019060200180831161265757829003601f168201915b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661273d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b6127478134613b17565b50565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b600084849050905060005b81811015612a0c57612a018686838181106129cc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168585848181106129f557fe5b90506020020135613b17565b8060010190506129b5565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f4d533a204e4f545f4f574e455200000000000000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea102868260405180821515815260200191505060405180910390a25050565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff16612c35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4d494e545f4f464600000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4e4f545f484f4c4445520000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006703782dace9d900003481612cfd57fe5b0614612d71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f57524f4e475f56414c554500000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006703782dace9d900003481612d8457fe5b049050600b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905510612e48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f555345525f4d494e545f4c494d49545f5245414348454400000000000000000081525060200191505060405180910390fd5b612e523382613b17565b6106f260035410612ecb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b50565b612ed83384613669565b612f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613f726031913960400191505060405180910390fd5b612f7d85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613c4b565b5050505050565b60606002612f9183613c5c565b6040516020018083805460018160011615610100020316600290048015612fef5780601f10612fcd576101008083540402835291820191612fef565b820191906000526020600020905b815481529060010190602001808311612fdb575b505082805190602001908083835b602083106130205780518252602082019150602081019050602083039250612ffd565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600501925050506040516020818303038152906040529050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b6131a38282613b17565b5050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60096020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613329576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050506133d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4f4d533a2049535355455f53454e44494e475f46554e4453000000000000000081525060200191505060405180910390fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f4d533a204e4f545f4f574e455200000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fdfc39691aec87dc6aa51ff70c0e592f260c54d2ed6c64e8c4c2306da0eec872b60405160405180910390a250565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e66602c913960400191505060405180910390fd5b60006006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806137f357508373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80613804575061380381856131a7565b5b613876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f7420617070726f766564206f72206f776e657200000081525060200191505060405180910390fd5b600191505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613938576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613f496029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156139be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e426024913960400191505060405180910390fd5b6139c9600082613585565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600354905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508160036000828254019250508190555060005b82811015613c4557836006600084600101945084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4806001019050613b7e565b50505050565b613c56848484613881565b50505050565b60606000821415613ca4576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613d91565b600082905060005b60008214613cce578080600101915050600a8281613cc657fe5b049150613cac565b60008167ffffffffffffffff81118015613ce757600080fd5b506040519080825280601f01601f191660200182016040528015613d1a5781602001600182028036833780820191505090505b5090505b60008514613d8a57600182039150600a8581613d3657fe5b0660300160f81b818381518110613d4957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8581613d8257fe5b049450613d1e565b8093505050505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613dcc5760008555613e13565b82601f10613de557803560ff1916838001178555613e13565b82800160010185558215613e13579182015b82811115613e12578235825591602001919060010190613df7565b5b509050613e209190613e24565b5090565b5b80821115613e3d576000816000905550600101613e25565b509056fe4552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a264697066735822122098533235b3c104e16cb56a31a6f8c845f8ca4ff7e5464dfbff4cb56f971ba5a064736f6c6343000706003368747470733a2f2f697066732e696f2f697066732f516d4e4c6f7a5046433334665a757a4b574462333568626d7055555a67394d4242566a42673863366155486332412f457069736f646544617461
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b88d4fde11610095578063e985e9c511610064578063e985e9c514610d6c578063edc3bc3f14610df3578063f3fef3a314610e7a578063f5a1f5b414610ed5576101e3565b8063b88d4fde14610b26578063c87b56dd14610bf6578063d4d2e7f214610caa578063e58306f914610d11576101e3565b8063a49340cc116100d1578063a49340cc1461097f578063a5e90eee14610a5a578063a7cc013614610ab7578063b66ebb1a14610b1c576101e3565b80638da5cb5b1461080d57806395d89b411461084e5780639769dc0e146108de578063a22cb46514610922576101e3565b806338a3dbae1161017a5780636352211e116101495780636352211e146106685780636619e13d146106cd57806370a08231146107225780637277098714610787576101e3565b806338a3dbae1461052957806342842e0e146105d95780634844ca78146106545780635bd9c7fb1461065e576101e3565b8063095ea7b3116101b6578063095ea7b31461034d57806318160ddd146103a857806323b872dd146103d35780632de5374e1461044e576101e3565b806301ffc9a7146101e857806306fdde0314610258578063081812fc146102e8576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506102406004803603602081101561020b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f26565b60405180821515815260200191505060405180910390f35b34801561026457600080fd5b5061026d611008565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ad578082015181840152602081019050610292565b50505050905090810190601f1680156102da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f457600080fd5b506103216004803603602081101561030b57600080fd5b81019080803590602001909291905050506110aa565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035957600080fd5b506103a66004803603604081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061119f565b005b3480156103b457600080fd5b506103bd61127b565b6040518082815260200191505060405180910390f35b3480156103df57600080fd5b5061044c600480360360608110156103f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611285565b005b34801561045a57600080fd5b506105276004803603604081101561047157600080fd5b810190808035906020019064010000000081111561048e57600080fd5b8201836020820111156104a057600080fd5b803590602001918460018302840111640100000000831117156104c257600080fd5b9091929391929390803590602001906401000000008111156104e357600080fd5b8201836020820111156104f557600080fd5b8035906020019184600183028401116401000000008311171561051757600080fd5b90919293919293905050506112f4565b005b34801561053557600080fd5b506105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105c55780820151818401526020810190506105aa565b505050509050019250505060405180910390f35b3480156105e557600080fd5b50610652600480360360608110156105fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e0565b005b61065c61154f565b005b610666611a60565b005b34801561067457600080fd5b506106a16004803603602081101561068b57600080fd5b8101908080359060200190929190505050612236565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d957600080fd5b50610720600480360360608110156106f057600080fd5b810190808035151590602001909291908035151590602001909291908035151590602001909291905050506122fe565b005b34801561072e57600080fd5b506107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612410565b6040518082815260200191505060405180910390f35b34801561079357600080fd5b5061080b600480360360208110156107aa57600080fd5b81019080803590602001906401000000008111156107c757600080fd5b8201836020820111156107d957600080fd5b803590602001918460018302840111640100000000831117156107fb57600080fd5b90919293919293905050506124de565b005b34801561081957600080fd5b506108226125b3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085a57600080fd5b506108636125dc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108a3578082015181840152602081019050610888565b50505050905090810190601f1680156108d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610920600480360360208110156108f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061267e565b005b34801561092e57600080fd5b5061097d6004803603604081101561094557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061274a565b005b34801561098b57600080fd5b50610a58600480360360408110156109a257600080fd5b81019080803590602001906401000000008111156109bf57600080fd5b8201836020820111156109d157600080fd5b803590602001918460208302840111640100000000831117156109f357600080fd5b909192939192939080359060200190640100000000811115610a1457600080fd5b820183602082011115610a2657600080fd5b80359060200191846020830284011164010000000083111715610a4857600080fd5b90919293919293905050506128eb565b005b348015610a6657600080fd5b50610ab560048036036040811015610a7d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612a14565b005b348015610ac357600080fd5b50610af060048036036020811015610ada57600080fd5b8101908080359060200190929190505050612b80565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b24612bb3565b005b348015610b3257600080fd5b50610bf460048036036080811015610b4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610bb057600080fd5b820183602082011115610bc257600080fd5b80359060200191846001830284011164010000000083111715610be457600080fd5b9091929391929390505050612ece565b005b348015610c0257600080fd5b50610c2f60048036036020811015610c1957600080fd5b8101908080359060200190929190505050612f84565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c6f578082015181840152602081019050610c54565b50505050905090810190601f168015610c9c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cb657600080fd5b50610cf960048036036020811015610ccd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613084565b60405180821515815260200191505060405180910390f35b348015610d1d57600080fd5b50610d6a60048036036040811015610d3457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506130da565b005b348015610d7857600080fd5b50610ddb60048036036040811015610d8f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131a7565b60405180821515815260200191505060405180910390f35b348015610dff57600080fd5b50610e6260048036036040811015610e1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061323b565b60405180821515815260200191505060405180910390f35b348015610e8657600080fd5b50610ed360048036036040811015610e9d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061326a565b005b348015610ee157600080fd5b50610f2460048036036020811015610ef857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133d4565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ff157507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061100157506110008261351b565b5b9050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110a05780601f10611075576101008083540402835291602001916110a0565b820191906000526020600020905b81548152906001019060200180831161108357829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f1d602c913960400191505060405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611217575061121681336131a7565b5b61126c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180613e926038913960400191505060405180910390fd5b6112768383613585565b505050565b6000600354905090565b61128f3382613669565b6112e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613f726031913960400191505060405180910390fd5b6112ef838383613881565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b8383600491906113c4929190613d96565b508181600591906113d6929190613d96565b5050505050565b60608167ffffffffffffffff811180156113f657600080fd5b506040519080825280602002602001820160405280156114255781602001602082028036833780820191505090505b509050600080600190505b600354811115801561144157508382105b156114d8578473ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114cd57808383806001019450815181106114c057fe5b6020026020010181815250505b806001019050611430565b505092915050565b6114ea3382613669565b61153f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613f726031913960400191505060405180910390fd5b61154a838383613881565b505050565b601060009054906101000a900460ff166115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4d494e545f4f464600000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073369156da04b6f313b532f7ae08e661e402b1c2f273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561164e57600080fd5b505afa158015611662573d6000803e3d6000fd5b505050506040513d602081101561167857600080fd5b8101908080519060200190929190505050118061174a575060007391cc3844b8271337679f8c00cb2d238886917d4073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561170d57600080fd5b505afa158015611721573d6000803e3d6000fd5b505050506040513d602081101561173757600080fd5b8101908080519060200190929190505050115b8061180a575060007321ae791a447c7eec28c40bba0b297b00d7d0e8f473ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117cd57600080fd5b505afa1580156117e1573d6000803e3d6000fd5b505050506040513d60208110156117f757600080fd5b8101908080519060200190929190505050115b61187c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e4f545f504152544e45525f484f4c444552000000000000000000000000000081525060200191505060405180910390fd5b600067058d15e176280000348161188f57fe5b0614611903576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f57524f4e475f56414c554500000000000000000000000000000000000000000081525060200191505060405180910390fd5b600067058d15e176280000348161191657fe5b049050600b81600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055106119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f555345525f4d494e545f4c494d49545f5245414348454400000000000000000081525060200191505060405180910390fd5b6119e43382613b17565b6106f260035410611a5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b50565b600e60009054906101000a900460ff16611ae2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4d494e545f4f464600000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073219b8ab790decc32444a6600971c7c371825253973ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611b5f57600080fd5b505afa158015611b73573d6000803e3d6000fd5b505050506040513d6020811015611b8957600080fd5b81019080805190602001909291905050501180611c5b5750600073f1268733c6fb05ef6be9cf23d24436dcd6e0b35e73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c1e57600080fd5b505afa158015611c32573d6000803e3d6000fd5b505050506040513d6020811015611c4857600080fd5b8101908080519060200190929190505050115b80611d1b57506000735df340b5d1618c543ac81837da1c2d2b17b3b5d873ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cde57600080fd5b505afa158015611cf2573d6000803e3d6000fd5b505050506040513d6020811015611d0857600080fd5b8101908080519060200190929190505050115b80611ddb57506000739ee36cd3e78badcaf0cbed71c824bd8c5cb65a8c73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d9e57600080fd5b505afa158015611db2573d6000803e3d6000fd5b505050506040513d6020811015611dc857600080fd5b8101908080519060200190929190505050115b80611e9b57506000733a4ca1c1bb243d299032753fdd75e8fec1f0d58573ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e5e57600080fd5b505afa158015611e72573d6000803e3d6000fd5b505050506040513d6020811015611e8857600080fd5b8101908080519060200190929190505050115b80611f5b5750600073f3114dd5c5b50a573e66596563d15a630ed359b473ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d6020811015611f4857600080fd5b8101908080519060200190929190505050115b611fcd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e4f545f504152544e45525f484f4c444552000000000000000000000000000081525060200191505060405180910390fd5b60006704db7325476300003481611fe057fe5b0614612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f57524f4e475f56414c554500000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006704db732547630000348161206757fe5b049050600281600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190551061212b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f555345525f4d494e545f4c494d49545f5245414348454400000000000000000081525060200191505060405180910390fd5b61037981600d600082825401925050819055106121b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b6121ba3382613b17565b6106f260035410612233576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b50565b6000806006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613ef46029913960400191505060405180910390fd5b80915050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b82600b60006101000a81548160ff02191690831515021790555081600e60006101000a81548160ff02191690831515021790555080601060006101000a81548160ff021916908315150217905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613eca602a913960400191505060405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661259d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b8181600291906125ae929190613d96565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126745780601f1061264957610100808354040283529160200191612674565b820191906000526020600020905b81548152906001019060200180831161265757829003601f168201915b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661273d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b6127478134613b17565b50565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b600084849050905060005b81811015612a0c57612a018686838181106129cc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168585848181106129f557fe5b90506020020135613b17565b8060010190506129b5565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f4d533a204e4f545f4f574e455200000000000000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea102868260405180821515815260200191505060405180910390a25050565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff16612c35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4d494e545f4f464600000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4e4f545f484f4c4445520000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006703782dace9d900003481612cfd57fe5b0614612d71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f57524f4e475f56414c554500000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006703782dace9d900003481612d8457fe5b049050600b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905510612e48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f555345525f4d494e545f4c494d49545f5245414348454400000000000000000081525060200191505060405180910390fd5b612e523382613b17565b6106f260035410612ecb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d494e545f4c494d49545f52454143484544000000000000000000000000000081525060200191505060405180910390fd5b50565b612ed83384613669565b612f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613f726031913960400191505060405180910390fd5b612f7d85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613c4b565b5050505050565b60606002612f9183613c5c565b6040516020018083805460018160011615610100020316600290048015612fef5780601f10612fcd576101008083540402835291820191612fef565b820191906000526020600020905b815481529060010190602001808311612fdb575b505082805190602001908083835b602083106130205780518252602082019150602081019050602083039250612ffd565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600501925050506040516020818303038152906040529050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b6131a38282613b17565b5050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60096020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613329576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f4d533a204d4f545f4d414e414745520000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050506133d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4f4d533a2049535355455f53454e44494e475f46554e4453000000000000000081525060200191505060405180910390fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f4d533a204e4f545f4f574e455200000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fdfc39691aec87dc6aa51ff70c0e592f260c54d2ed6c64e8c4c2306da0eec872b60405160405180910390a250565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e66602c913960400191505060405180910390fd5b60006006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806137f357508373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80613804575061380381856131a7565b5b613876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f7420617070726f766564206f72206f776e657200000081525060200191505060405180910390fd5b600191505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613938576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613f496029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156139be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e426024913960400191505060405180910390fd5b6139c9600082613585565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600354905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508160036000828254019250508190555060005b82811015613c4557836006600084600101945084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4806001019050613b7e565b50505050565b613c56848484613881565b50505050565b60606000821415613ca4576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613d91565b600082905060005b60008214613cce578080600101915050600a8281613cc657fe5b049150613cac565b60008167ffffffffffffffff81118015613ce757600080fd5b506040519080825280601f01601f191660200182016040528015613d1a5781602001600182028036833780820191505090505b5090505b60008514613d8a57600182039150600a8581613d3657fe5b0660300160f81b818381518110613d4957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8581613d8257fe5b049450613d1e565b8093505050505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613dcc5760008555613e13565b82601f10613de557803560ff1916838001178555613e13565b82800160010185558215613e13579182015b82811115613e12578235825591602001919060010190613df7565b5b509050613e209190613e24565b5090565b5b80821115613e3d576000816000905550600101613e25565b509056fe4552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a264697066735822122098533235b3c104e16cb56a31a6f8c845f8ca4ff7e5464dfbff4cb56f971ba5a064736f6c63430007060033
Deployed Bytecode Sourcemap
11230:3537:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5058:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5801:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6287:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8048:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6009:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8657:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7287:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6688:301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8909:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13612:841;;;:::i;:::-;;12267:1225;;;:::i;:::-;;5560:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14461:298;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5350:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7180:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3565:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5901:96;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7544:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8368:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7647:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4050:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4744:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11563:540;;;:::i;:::-;;9163:279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6099:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3652:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7436:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6524:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4801:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4224:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3921:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5058:284;5152:4;5191:25;5176:40;;;:11;:40;;;;:105;;;;5248:33;5233:48;;;:11;:48;;;;5176:105;:158;;;;5298:36;5322:11;5298:23;:36::i;:::-;5176:158;5169:165;;5058:284;;;:::o;5801:92::-;5847:13;5880:5;5873:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:92;:::o;6287:229::-;6357:7;6413:1;6385:30;;:7;:16;6393:7;6385:16;;;;;;;;;;;;;;;;;;;;;:30;;;;6377:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6484:15;:24;6500:7;6484:24;;;;;;;;;;;;;;;;;;;;;6477:31;;6287:229;;;:::o;8048:312::-;8123:13;8139:7;:16;8147:7;8139:16;;;;;;;;;;;;;;;;;;;;;8123:32;;8190:5;8176:19;;:10;:19;;;:58;;;;8199:35;8216:5;8223:10;8199:16;:35::i;:::-;8176:58;8168:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8331:21;8340:2;8344:7;8331:8;:21::i;:::-;8048:312;;;:::o;6009:82::-;6061:7;6077:12;;6070:19;;6009:82;:::o;8657:244::-;8759:39;8778:10;8790:7;8759:18;:39::i;:::-;8751:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8865:28;8875:4;8881:2;8885:7;8865:9;:28::i;:::-;8657:244;;;:::o;7287:141::-;3340:8;:20;3349:10;3340:20;;;;;;;;;;;;;;;;;;;;;;;;;3332:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7389:4:::1;;7381:5;:12;;;;;;;:::i;:::-;;7414:6;;7404:7;:16;;;;;;;:::i;:::-;;7287:141:::0;;;;:::o;6688:301::-;6757:21;6812:5;6798:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6791:27;;6829:13;6859:9;6869:1;6859:11;;6855:127;6877:12;;6872:1;:17;;:34;;;;;6901:5;6893;:13;6872:34;6855:127;;;6945:4;6931:18;;:7;:10;6939:1;6931:10;;;;;;;;;;;;;;;;;;;;;:18;;;6928:43;;;6968:1;6952:4;6957:7;;;;;;6952:13;;;;;;;;;;;;;:17;;;;;6928:43;6908:3;;;;;6855:127;;;;6688:301;;;;;:::o;8909:246::-;9015:39;9034:10;9046:7;9015:18;:39::i;:::-;9007:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9119:28;9129:4;9135:2;9139:7;9119:9;:28::i;:::-;8909:246;;;:::o;13612:841::-;13676:25;;;;;;;;;;;13668:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13823:1;13755:42;13747:61;;;13809:10;13747:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;:171;;;;13917:1;13849:42;13841:61;;;13903:10;13841:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;13747:171;:265;;;;14011:1;13943:42;13935:61;;;13997:10;13935:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;13747:265;13725:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14109:1;14087:18;14075:9;:30;;;;;;:35;14067:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14139:14;14168:18;14156:9;:30;;;;;;14139:47;;14256:2;14246:6;14206:24;:36;14231:10;14206:36;;;;;;;;;;;;;;;;:46;;;;;;;;;;14205:53;14197:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14330:25;14336:10;14348:6;14330:5;:25::i;:::-;14391:4;14376:12;;:19;14368:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13612:841;:::o;12267:1225::-;12328:22;;;;;;;;;;;12320:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12472:1;12404:42;12396:61;;;12458:10;12396:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;:171;;;;12566:1;12498:42;12490:61;;;12552:10;12490:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;12396:171;:265;;;;12660:1;12592:42;12584:61;;;12646:10;12584:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;12396:265;:359;;;;12754:1;12686:42;12678:61;;;12740:10;12678:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;12396:359;:453;;;;12848:1;12780:42;12772:61;;;12834:10;12772:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;12396:453;:547;;;;12942:1;12874:42;12866:61;;;12928:10;12866:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;12396:547;12374:602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13031:1;13009:18;12997:9;:30;;;;;;:35;12989:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13061:14;13090:18;13078:9;:30;;;;;;13061:47;;13175:1;13165:6;13128:21;:33;13150:10;13128:33;;;;;;;;;;;;;;;;:43;;;;;;;;;;13127:49;13119:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13295:3;13285:6;13254:27;;:37;;;;;;;;;;13253:45;13245:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13369:25;13375:10;13387:6;13369:5;:25::i;:::-;13430:4;13415:12;;:19;13407:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12267:1225;:::o;5560:233::-;5626:7;5646:13;5662:7;:16;5670:7;5662:16;;;;;;;;;;;;;;;;;;;;;5646:32;;5714:1;5697:19;;:5;:19;;;;5689:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5780:5;5773:12;;;5560:233;;;:::o;14461:298::-;3340:8;:20;3349:10;3340:20;;;;;;;;;;;;;;;;;;;;;;;;;3332:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14613:18:::1;14591:19;;:40;;;;;;;;;;;;;;;;;;14667:21;14642:22;;:46;;;;;;;;;;;;;;;;;;14727:24;14699:25;;:52;;;;;;;;;;;;;;;;;;14461:298:::0;;;:::o;5350:202::-;5416:7;5461:1;5444:19;;:5;:19;;;;5436:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5528:9;:16;5538:5;5528:16;;;;;;;;;;;;;;;;5521:23;;5350:202;;;:::o;7180:99::-;3340:8;:20;3349:10;3340:20;;;;;;;;;;;;;;;;;;;;;;;;;3332:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7265:6:::1;;7255:7;:16;;;;;;;:::i;:::-;;7180:99:::0;;:::o;3565:79::-;3603:7;3630:6;;;;;;;;;;;3623:13;;3565:79;:::o;5901:96::-;5949:13;5982:7;5975:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5901:96;:::o;7544:95::-;3340:8;:20;3349:10;3340:20;;;;;;;;;;;;;;;;;;;;;;;;;3332:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7611:20:::1;7617:2;7621:9;7611:5;:20::i;:::-;7544:95:::0;:::o;8368:281::-;8475:10;8463:22;;:8;:22;;;;8455:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8571:8;8528:18;:30;8547:10;8528:30;;;;;;;;;;;;;;;:40;8559:8;8528:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;8622:8;8595:46;;8610:10;8595:46;;;8632:8;8595:46;;;;;;;;;;;;;;;;;;;;8368:281;;:::o;7647:221::-;3340:8;:20;3349:10;3340:20;;;;;;;;;;;;;;;;;;;;;;;;;3332:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7744:12:::1;7759:2;;:9;;7744:24;;7785:9;7781:80;7800:4;7796:1;:8;7781:80;;;7826:23;7832:2;;7835:1;7832:5;;;;;;;;;;;;;;;7839:6;;7846:1;7839:9;;;;;;;;;;;;;7826:5;:23::i;:::-;7806:3;;;;;7781:80;;;;3390:1;7647:221:::0;;;;:::o;4050:141::-;3249:6;;;;;;;;;;3235:20;;:10;:20;;;3227:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4139:5:::1;4122:8;:14;4131:4;4122:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;4171:4;4160:23;;;4177:5;4160:23;;;;;;;;;;;;;;;;;;;;4050:141:::0;;:::o;4744:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;11563:540::-;11621:19;;;;;;;;;;;11613:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11696:1;11672:9;:21;11682:10;11672:21;;;;;;;;;;;;;;;;:25;11664:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11765:1;11743:18;11731:9;:30;;;;;;:35;11723:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11795:14;11824:18;11812:9;:30;;;;;;11795:47;;11906:2;11896:6;11862:18;:30;11881:10;11862:30;;;;;;;;;;;;;;;;:40;;;;;;;;;;11861:47;11853:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11980:25;11986:10;11998:6;11980:5;:25::i;:::-;12041:4;12026:12;;:19;12018:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11563:540;:::o;9163:279::-;9291:39;9310:10;9322:7;9291:18;:39::i;:::-;9283:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9395:39;9409:4;9415:2;9419:7;9428:5;;9395:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:39::i;:::-;9163:279;;;;;:::o;6099:180::-;6174:13;6231:7;6240:18;:7;:16;:18::i;:::-;6214:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6200:69;;6099:180;;;:::o;3652:99::-;3705:4;3729:8;:14;3738:4;3729:14;;;;;;;;;;;;;;;;;;;;;;;;;3722:21;;3652:99;;;:::o;7436:100::-;3340:8;:20;3349:10;3340:20;;;;;;;;;;;;;;;;;;;;;;;;;3332:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7511:17:::1;7517:2;7521:6;7511:5;:17::i;:::-;7436:100:::0;;:::o;6524:156::-;6613:4;6637:18;:25;6656:5;6637:25;;;;;;;;;;;;;;;:35;6663:8;6637:35;;;;;;;;;;;;;;;;;;;;;;;;;6630:42;;6524:156;;;;:::o;4801:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4224:140::-;3340:8;:20;3349:10;3340:20;;;;;;;;;;;;;;;;;;;;;;;;;3332:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4313:2:::1;:7;;:14;4321:5;4313:14;;;;;;;;;;;;;;;;;;;;;;;4305:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;4224:140:::0;;:::o;3921:121::-;3249:6;;;;;;;;;;3235:20;;:10;:20;;;3227:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3991:4:::1;3982:6;::::0;:13:::1;;;;;;;;;;;;;;;;;;4029:4;4011:23;;;;;;;;;;;;3921:121:::0;:::o;1870:157::-;1955:4;1994:25;1979:40;;;:11;:40;;;;1972:47;;1870:157;;;:::o;10679:159::-;10773:2;10746:15;:24;10762:7;10746:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;10822:7;10818:2;10791:39;;10800:7;:16;10808:7;10800:16;;;;;;;;;;;;;;;;;;;;;10791:39;;;;;;;;;;;;10679:159;;:::o;9776:406::-;9861:4;9914:1;9886:30;;:7;:16;9894:7;9886:16;;;;;;;;;;;;;;;;;;;;;:30;;;;9878:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9976:13;9992:7;:16;10000:7;9992:16;;;;;;;;;;;;;;;;;;;;;9976:32;;10038:5;10027:16;;:7;:16;;;:55;;;;10075:7;10047:35;;:15;:24;10063:7;10047:24;;;;;;;;;;;;;;;;;;;;;:35;;;10027:55;:91;;;;10086:32;10103:5;10110:7;10086:16;:32::i;:::-;10027:91;10019:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10170:4;10163:11;;;9776:406;;;;:::o;10194:477::-;10304:4;10284:24;;:7;:16;10292:7;10284:16;;;;;;;;;;;;;;;;;;;;;:24;;;10276:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10387:1;10373:16;;:2;:16;;;;10365:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10495:29;10512:1;10516:7;10495:8;:29::i;:::-;10556:1;10537:9;:15;10547:4;10537:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;10585:1;10568:9;:13;10578:2;10568:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;10616:2;10597:7;:16;10605:7;10597:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10655:7;10651:2;10636:27;;10645:4;10636:27;;;;;;;;;;;;10194:477;;;:::o;10846:375::-;10911:15;10929:12;;10911:30;;10973:6;10954:9;:15;10964:4;10954:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;11006:6;10990:12;;:22;;;;;;;;;;;11037:9;11033:171;11052:6;11048:1;:10;11033:171;;;11115:4;11094:7;:18;11102:9;;;;;;11094:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;11184:7;11178:4;11157:35;;11174:1;11157:35;;;;;;;;;;;;11060:3;;;;;11033:171;;;;10846:375;;;:::o;9626:142::-;9732:28;9742:4;9748:2;9752:7;9732:9;:28::i;:::-;9626:142;;;;:::o;2059:532::-;2115:13;2154:1;2145:5;:10;2141:53;;;2172:10;;;;;;;;;;;;;;;;;;;;;2141:53;2204:12;2219:5;2204:20;;2235:14;2260:78;2275:1;2267:4;:9;2260:78;;2293:8;;;;;;;2324:2;2316:10;;;;;;;;;2260:78;;;2348:19;2380:6;2370:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2348:39;;2398:154;2414:1;2405:5;:10;2398:154;;2442:1;2432:11;;;;2509:2;2501:5;:10;;;;;;2488:2;:24;2475:39;;2458:6;2465;2458:14;;;;;;;;;;;:56;;;;;;;;;;;2538:2;2529:11;;;;;;;;;2398:154;;;2576:6;2562:21;;;;;2059:532;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://98533235b3c104e16cb56a31a6f8c845f8ca4ff7e5464dfbff4cb56f971ba5a0
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.