Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 168 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Register Forge P... | 10448567 | 2064 days ago | IN | 0 ETH | 0.00937443 | ||||
| Unregister Forge... | 10448565 | 2064 days ago | IN | 0 ETH | 0.00238513 | ||||
| Register Forge P... | 10448475 | 2064 days ago | IN | 0 ETH | 0.00937487 | ||||
| Register Forge P... | 10448456 | 2064 days ago | IN | 0 ETH | 0.00937443 | ||||
| Unregister Forge... | 10448431 | 2064 days ago | IN | 0 ETH | 0.00225641 | ||||
| Unregister Forge... | 10448416 | 2064 days ago | IN | 0 ETH | 0.0022562 | ||||
| Register Forge P... | 10273558 | 2091 days ago | IN | 0 ETH | 0.00709545 | ||||
| Register Forge P... | 10273548 | 2091 days ago | IN | 0 ETH | 0.00709293 | ||||
| Register Forge P... | 10273528 | 2091 days ago | IN | 0 ETH | 0.00717108 | ||||
| Register Forge P... | 10273520 | 2091 days ago | IN | 0 ETH | 0.00717288 | ||||
| Register Forge P... | 10273509 | 2091 days ago | IN | 0 ETH | 0.00717324 | ||||
| Register Forge P... | 10273499 | 2091 days ago | IN | 0 ETH | 0.00717648 | ||||
| Register Forge P... | 10273494 | 2091 days ago | IN | 0 ETH | 0.00717504 | ||||
| Register Forge P... | 10273483 | 2091 days ago | IN | 0 ETH | 0.00717684 | ||||
| Register Forge P... | 10273475 | 2091 days ago | IN | 0 ETH | 0.00717432 | ||||
| Register Forge P... | 10273460 | 2091 days ago | IN | 0 ETH | 0.00774924 | ||||
| Register Forge P... | 10273441 | 2091 days ago | IN | 0 ETH | 0.00769572 | ||||
| Register Forge P... | 10273416 | 2091 days ago | IN | 0 ETH | 0.00846727 | ||||
| Register Forge P... | 10273396 | 2091 days ago | IN | 0 ETH | 0.00846766 | ||||
| Register Forge P... | 10273382 | 2091 days ago | IN | 0 ETH | 0.00847123 | ||||
| Register Forge P... | 10273374 | 2091 days ago | IN | 0 ETH | 0.00846964 | ||||
| Register Forge P... | 10273348 | 2091 days ago | IN | 0 ETH | 0.00847162 | ||||
| Register Forge P... | 10273330 | 2091 days ago | IN | 0 ETH | 0.00846885 | ||||
| Register Forge P... | 10273312 | 2091 days ago | IN | 0 ETH | 0.00846766 | ||||
| Register Forge P... | 10273287 | 2091 days ago | IN | 0 ETH | 0.00846687 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ForgePathCatalogCombined
Compiler Version
v0.5.0+commit.1d4f565a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-03-04
*/
// File: openzeppelin-solidity/contracts/ownership/Ownable.sol
pragma solidity ^0.5.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be aplied to your functions to restrict their use to
* the owner.
*/
contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
_owner = msg.sender;
emit OwnershipTransferred(address(0), _owner);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner() public view returns (bool) {
return msg.sender == _owner;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* > Note: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// File: contracts/ERC721/el/forging/ForgePathCatalog.sol
pragma solidity 0.5.0;
contract ForgePathCatalog is Ownable {
// Forge Types
// 1 - EL Gen 1 Token + EL Gen 1 Token = EL Gen 1 Token
// 2 - ERC721 Address + ERC721 Address = EL Gen 1 Token
// 3 - ERC721 Address + EL Gen 1 Token = EL Gen 1 Token
// 4 - ERC1155 Token + ERC1155 Token = EL Gen 1 Token
// 5 - ERC1155 Token + EL Gen 1 Token = EL Gen 1 Token
// 6 - ERC1155 Token + ERC721 Address = EL Gen 1 Token
struct ForgePathDataCommon {
uint8 forgeType;
uint256 weiCost;
uint256 elementeumCost;
uint256 forgedItem;
}
uint256 private nextForgePathIndex = 0;
string[] public forgePathNames;
mapping (uint256 => uint256) private forgePathIndexMap;
mapping (string => uint256) private forgePathNameIdMap;
mapping (uint256 => string) private forgePathIdNameMap;
mapping (uint256 => ForgePathDataCommon) internal forgePathMapCommon;
constructor() public
Ownable()
{
}
function() external payable {
revert("Fallback function is not permitted.");
}
function destroyContract() external {
_requireOnlyOwner();
address payable payableOwner = address(uint160(owner()));
selfdestruct(payableOwner);
}
function hasPathDefinitionByName(string calldata pathName) external view returns (bool) {
return _hasPathDefinitionByName(pathName);
}
function hasPathDefinition(uint256 pathId) external view returns (bool) {
return _hasPathDefinition(pathId);
}
function getNumberOfPathDefinitions() external view returns (uint256) {
return forgePathNames.length;
}
function getForgePathId(string memory pathName) public view returns (uint256) {
require(_hasPathDefinitionByName(pathName), "path not defined");
return forgePathNameIdMap[pathName];
}
function getForgePathNameAtIndex(uint256 index) external view returns (string memory) {
require(index < forgePathNames.length, "Index Out Of Range");
string memory pathName = forgePathNames[index];
require(_hasPathDefinitionByName(pathName), "path not defined");
return pathName;
}
function getForgePathIdAtIndex(uint256 index) external view returns (uint256) {
require(index < forgePathNames.length, "Index Out Of Range");
string memory pathName = forgePathNames[index];
require(_hasPathDefinitionByName(pathName), "path not defined");
return forgePathNameIdMap[pathName];
}
function getForgeType(uint256 pathId) external view returns (uint8) {
return _getForgeType(pathId);
}
function getForgePathDetailsCommon(uint256 pathId) external view returns (uint256, uint256, uint256) {
ForgePathDataCommon memory forgePathDataCommon = _getForgePathDataCommon(pathId);
return
(
forgePathDataCommon.weiCost,
forgePathDataCommon.elementeumCost,
forgePathDataCommon.forgedItem
);
}
function _hasPathDefinitionByName(string memory pathName) internal view returns (bool) {
return forgePathNameIdMap[pathName] != 0;
}
function _hasPathDefinition(uint256 pathId) internal view returns (bool) {
bytes memory tempEmptyStringTest = bytes(forgePathIdNameMap[pathId]);
return tempEmptyStringTest.length != 0;
}
function _getForgePathNameAtIndex(uint256 pathIndex) internal view returns (string memory) {
return forgePathNames[pathIndex];
}
function _getForgeType(uint256 pathId) internal view returns (uint8) {
require(_hasPathDefinition(pathId), "path not defined");
return forgePathMapCommon[pathId].forgeType;
}
function registerForgePathCommon(string memory pathName, uint8 forgeType, uint256 weiCost, uint256 elementeumCost, uint256 forgedItem) internal {
_requireOnlyOwner();
require(!_hasPathDefinitionByName(pathName), "path already defined");
require(bytes(pathName).length < 32, "path name may not exceed 31 characters");
nextForgePathIndex++;
forgePathIndexMap[nextForgePathIndex] = forgePathNames.length;
forgePathNameIdMap[pathName] = nextForgePathIndex;
forgePathIdNameMap[nextForgePathIndex] = pathName;
forgePathNames.push(pathName);
forgePathMapCommon[nextForgePathIndex].forgeType = forgeType;
forgePathMapCommon[nextForgePathIndex].weiCost = weiCost;
forgePathMapCommon[nextForgePathIndex].elementeumCost = elementeumCost;
forgePathMapCommon[nextForgePathIndex].forgedItem = forgedItem;
}
function unregisterForgePathCommon(string memory pathName) internal {
_requireOnlyOwner();
require(_hasPathDefinitionByName(pathName), "path not defined");
uint256 pathId = forgePathNameIdMap[pathName];
uint256 pathIndex = forgePathIndexMap[pathId];
delete forgePathIndexMap[pathId];
delete forgePathNameIdMap[pathName];
delete forgePathIdNameMap[pathId];
delete forgePathMapCommon[pathId];
string memory tmp = _getForgePathNameAtIndex(pathIndex);
string memory priorLastPathName = _getForgePathNameAtIndex(forgePathNames.length - 1);
uint256 priorLastPathId = forgePathNameIdMap[priorLastPathName];
forgePathNames[pathIndex] = forgePathNames[forgePathNames.length - 1];
forgePathNames[forgePathNames.length - 1] = tmp;
forgePathIndexMap[priorLastPathId] = pathIndex;
delete forgePathNames[forgePathNames.length - 1];
forgePathNames.length--;
}
function _getForgePathDataCommon(uint256 pathId) internal view returns (ForgePathDataCommon memory) {
require(_hasPathDefinition(pathId), "path not defined");
return forgePathMapCommon[pathId];
}
function _requireOnlyOwner() internal view {
require(isOwner(), "Ownable: caller is not the owner");
}
}
// File: contracts/ERC721/el/forging/IForgePathCatalogCombined.sol
pragma solidity 0.5.0;
interface IForgePathCatalogCombined {
function getNumberOfPathDefinitions() external view returns (uint256);
function getForgePathNameAtIndex(uint256 index) external view returns (string memory);
function getForgePathIdAtIndex(uint256 index) external view returns (uint256);
function getForgeType(uint256 pathId) external view returns (uint8);
function getForgePathDetailsCommon(uint256 pathId) external view returns (uint256, uint256, uint256);
function getForgePathDetailsTwoGen1Tokens(uint256 pathId) external view returns (uint256, uint256, bool, bool);
function getForgePathDetailsTwoERC721Addresses(uint256 pathId) external view returns (address, address);
function getForgePathDetailsERC721AddressWithGen1Token(uint256 pathId) external view returns (address, uint256, bool);
function getForgePathDetailsTwoERC1155Tokens(uint256 pathId) external view returns (uint256, uint256, bool, bool, bool, bool);
function getForgePathDetailsERC1155WithGen1Token(uint256 pathId) external view returns (uint256, uint256, bool, bool, bool);
function getForgePathDetailsERC1155WithERC721Address(uint256 pathId) external view returns (uint256, address, bool, bool);
}
// File: contracts/ERC721/el/forging/ForgePathCatalogCombined.sol
pragma solidity 0.5.0;
contract ForgePathCatalogCombined is IForgePathCatalogCombined, ForgePathCatalog {
struct ForgePathDataTwoGen1Tokens {
uint256 material1;
uint256 material2;
bool burnMaterial1;
bool burnMaterial2;
}
struct ForgePathDataTwoERC721Addresses {
address material1;
address material2;
}
struct ForgePathDataERC721AddressWithGen1Token {
address material1;
uint256 material2;
bool burnMaterial2;
}
struct ForgePathDataTwoERC1155Tokens {
uint256 material1;
uint256 material2;
bool meltMaterial1;
bool meltMaterial2;
bool material1IsNonFungible;
bool material2IsNonFungible;
}
struct ForgePathDataERC1155WithGen1Token {
uint256 material1;
uint256 material2;
bool meltMaterial1;
bool burnMaterial2;
bool material1IsNonFungible;
}
struct ForgePathDataERC1155WithERC721Address {
uint256 material1;
address material2;
bool meltMaterial1;
bool material1IsNonFungible;
}
mapping (uint256 => ForgePathDataTwoGen1Tokens) private forgePathMapTwoGen1Tokens;
mapping (uint256 => ForgePathDataTwoERC721Addresses) private forgePathMapTwoERC721Addresses;
mapping (uint256 => ForgePathDataERC721AddressWithGen1Token) private forgePathMapERC721AddressWithGen1Token;
mapping (uint256 => ForgePathDataTwoERC1155Tokens) private forgePathMapTwoERC1155Tokens;
mapping (uint256 => ForgePathDataERC1155WithGen1Token) private forgePathMapERC1155WithGen1Token;
mapping (uint256 => ForgePathDataERC1155WithERC721Address) private forgePathMapERC1155WithERC721Address;
constructor() public
ForgePathCatalog()
{
}
function unregisterForgePath(string calldata pathName) external {
uint256 forgePathId = getForgePathId(pathName);
uint8 forgeType = _getForgeType(forgePathId);
unregisterForgePathCommon(pathName);
if(forgeType == 1) {
delete forgePathMapTwoGen1Tokens[forgePathId];
} else if(forgeType == 2) {
delete forgePathMapTwoERC721Addresses[forgePathId];
} else if(forgeType == 3) {
delete forgePathMapERC721AddressWithGen1Token[forgePathId];
} else if(forgeType == 4) {
delete forgePathMapTwoERC1155Tokens[forgePathId];
} else if(forgeType == 5) {
delete forgePathMapERC1155WithGen1Token[forgePathId];
} else if(forgeType == 6) {
delete forgePathMapERC1155WithERC721Address[forgePathId];
} else {
revert("Non-existent forge type");
}
}
function registerForgePathTwoGen1Tokens(
string calldata pathName,
uint256 weiCost,
uint256 elementeumCost,
uint256 forgedItem,
uint256 material1,
uint256 material2,
bool burnMaterial1,
bool burnMaterial2)
external {
registerForgePathCommon(pathName, 1, weiCost, elementeumCost, forgedItem);
uint256 forgePathId = getForgePathId(pathName);
forgePathMapTwoGen1Tokens[forgePathId].material1 = material1;
forgePathMapTwoGen1Tokens[forgePathId].material2 = material2;
forgePathMapTwoGen1Tokens[forgePathId].burnMaterial1 = burnMaterial1;
forgePathMapTwoGen1Tokens[forgePathId].burnMaterial2 = burnMaterial2;
}
function getForgePathDetailsTwoGen1Tokens(uint256 pathId) external view returns (uint256, uint256, bool, bool) {
require(_hasPathDefinition(pathId), "path not defined");
ForgePathDataTwoGen1Tokens memory forgePathData = forgePathMapTwoGen1Tokens[pathId];
return
(
forgePathData.material1,
forgePathData.material2,
forgePathData.burnMaterial1,
forgePathData.burnMaterial2
);
}
function registerForgePathTwoERC721Addresses(
string calldata pathName,
uint256 weiCost,
uint256 elementeumCost,
uint256 forgedItem,
address material1,
address material2)
external {
registerForgePathCommon(pathName, 2, weiCost, elementeumCost, forgedItem);
uint256 forgePathId = getForgePathId(pathName);
forgePathMapTwoERC721Addresses[forgePathId].material1 = material1;
forgePathMapTwoERC721Addresses[forgePathId].material2 = material2;
}
function getForgePathDetailsTwoERC721Addresses(uint256 pathId) external view returns (address, address) {
require(_hasPathDefinition(pathId), "path not defined");
ForgePathDataTwoERC721Addresses memory forgePathData = forgePathMapTwoERC721Addresses[pathId];
return
(
forgePathData.material1,
forgePathData.material2
);
}
function registerForgePathERC721AddressWithGen1Token(
string calldata pathName,
uint256 weiCost,
uint256 elementeumCost,
uint256 forgedItem,
address material1,
uint256 material2,
bool burnMaterial2)
external {
registerForgePathCommon(pathName, 3, weiCost, elementeumCost, forgedItem);
uint256 forgePathId = getForgePathId(pathName);
forgePathMapERC721AddressWithGen1Token[forgePathId].material1 = material1;
forgePathMapERC721AddressWithGen1Token[forgePathId].material2 = material2;
forgePathMapERC721AddressWithGen1Token[forgePathId].burnMaterial2 = burnMaterial2;
}
function getForgePathDetailsERC721AddressWithGen1Token(uint256 pathId) external view returns (address, uint256, bool) {
require(_hasPathDefinition(pathId), "path not defined");
ForgePathDataERC721AddressWithGen1Token memory forgePathData = forgePathMapERC721AddressWithGen1Token[pathId];
return
(
forgePathData.material1,
forgePathData.material2,
forgePathData.burnMaterial2
);
}
function registerForgePathTwoERC1155Tokens(
string calldata pathName,
uint256 weiCost,
uint256 elementeumCost,
uint256 forgedItem,
uint256 material1,
uint256 material2,
bool meltMaterial1,
bool meltMaterial2,
bool material1IsNonFungible,
bool material2IsNonFungible)
external {
registerForgePathCommon(pathName, 4, weiCost, elementeumCost, forgedItem);
uint256 forgePathId = getForgePathId(pathName);
forgePathMapTwoERC1155Tokens[forgePathId].material1 = material1;
forgePathMapTwoERC1155Tokens[forgePathId].material2 = material2;
forgePathMapTwoERC1155Tokens[forgePathId].meltMaterial1 = meltMaterial1;
forgePathMapTwoERC1155Tokens[forgePathId].meltMaterial2 = meltMaterial2;
forgePathMapTwoERC1155Tokens[forgePathId].material1IsNonFungible = material1IsNonFungible;
forgePathMapTwoERC1155Tokens[forgePathId].material2IsNonFungible = material2IsNonFungible;
}
function getForgePathDetailsTwoERC1155Tokens(uint256 pathId) external view returns (uint256, uint256, bool, bool, bool, bool) {
require(_hasPathDefinition(pathId), "path not defined");
ForgePathDataTwoERC1155Tokens memory forgePathData = forgePathMapTwoERC1155Tokens[pathId];
return
(
forgePathData.material1,
forgePathData.material2,
forgePathData.meltMaterial1,
forgePathData.meltMaterial2,
forgePathData.material1IsNonFungible,
forgePathData.material2IsNonFungible
);
}
function registerForgePathERC1155WithGen1Token(
string calldata pathName,
uint256 weiCost,
uint256 elementeumCost,
uint256 forgedItem,
uint256 material1,
uint256 material2,
bool meltMaterial1,
bool burnMaterial2,
bool material1IsNonFungible)
external {
registerForgePathCommon(pathName, 5, weiCost, elementeumCost, forgedItem);
uint256 forgePathId = getForgePathId(pathName);
forgePathMapERC1155WithGen1Token[forgePathId].material1 = material1;
forgePathMapERC1155WithGen1Token[forgePathId].material2 = material2;
forgePathMapERC1155WithGen1Token[forgePathId].meltMaterial1 = meltMaterial1;
forgePathMapERC1155WithGen1Token[forgePathId].burnMaterial2 = burnMaterial2;
forgePathMapERC1155WithGen1Token[forgePathId].material1IsNonFungible = material1IsNonFungible;
}
function getForgePathDetailsERC1155WithGen1Token(uint256 pathId) external view returns (uint256, uint256, bool, bool, bool) {
require(_hasPathDefinition(pathId), "path not defined");
ForgePathDataERC1155WithGen1Token memory forgePathData = forgePathMapERC1155WithGen1Token[pathId];
return
(
forgePathData.material1,
forgePathData.material2,
forgePathData.meltMaterial1,
forgePathData.burnMaterial2,
forgePathData.material1IsNonFungible
);
}
function registerForgePathERC1155WithERC721Address(
string calldata pathName,
uint256 weiCost,
uint256 elementeumCost,
uint256 forgedItem,
uint256 material1,
address material2,
bool meltMaterial1,
bool material1IsNonFungible)
external {
registerForgePathCommon(pathName, 6, weiCost, elementeumCost, forgedItem);
uint256 forgePathId = getForgePathId(pathName);
forgePathMapERC1155WithERC721Address[forgePathId].material1 = material1;
forgePathMapERC1155WithERC721Address[forgePathId].material2 = material2;
forgePathMapERC1155WithERC721Address[forgePathId].meltMaterial1 = meltMaterial1;
forgePathMapERC1155WithERC721Address[forgePathId].material1IsNonFungible = material1IsNonFungible;
}
function getForgePathDetailsERC1155WithERC721Address(uint256 pathId) external view returns (uint256, address, bool, bool) {
require(_hasPathDefinition(pathId), "path not defined");
ForgePathDataERC1155WithERC721Address memory forgePathData = forgePathMapERC1155WithERC721Address[pathId];
return
(
forgePathData.material1,
forgePathData.material2,
forgePathData.meltMaterial1,
forgePathData.material1IsNonFungible
);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"destroyContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pathName","type":"string"}],"name":"unregisterForgePath","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"forgePathNames","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pathName","type":"string"}],"name":"getForgePathId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNumberOfPathDefinitions","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pathName","type":"string"},{"name":"weiCost","type":"uint256"},{"name":"elementeumCost","type":"uint256"},{"name":"forgedItem","type":"uint256"},{"name":"material1","type":"uint256"},{"name":"material2","type":"uint256"},{"name":"burnMaterial1","type":"bool"},{"name":"burnMaterial2","type":"bool"}],"name":"registerForgePathTwoGen1Tokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgePathDetailsTwoERC721Addresses","outputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pathName","type":"string"}],"name":"hasPathDefinitionByName","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgePathDetailsERC721AddressWithGen1Token","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pathName","type":"string"},{"name":"weiCost","type":"uint256"},{"name":"elementeumCost","type":"uint256"},{"name":"forgedItem","type":"uint256"},{"name":"material1","type":"address"},{"name":"material2","type":"uint256"},{"name":"burnMaterial2","type":"bool"}],"name":"registerForgePathERC721AddressWithGen1Token","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgePathDetailsERC1155WithGen1Token","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pathName","type":"string"},{"name":"weiCost","type":"uint256"},{"name":"elementeumCost","type":"uint256"},{"name":"forgedItem","type":"uint256"},{"name":"material1","type":"uint256"},{"name":"material2","type":"uint256"},{"name":"meltMaterial1","type":"bool"},{"name":"meltMaterial2","type":"bool"},{"name":"material1IsNonFungible","type":"bool"},{"name":"material2IsNonFungible","type":"bool"}],"name":"registerForgePathTwoERC1155Tokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgeType","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pathName","type":"string"},{"name":"weiCost","type":"uint256"},{"name":"elementeumCost","type":"uint256"},{"name":"forgedItem","type":"uint256"},{"name":"material1","type":"address"},{"name":"material2","type":"address"}],"name":"registerForgePathTwoERC721Addresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgePathDetailsTwoERC1155Tokens","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgePathDetailsTwoGen1Tokens","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getForgePathIdAtIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pathName","type":"string"},{"name":"weiCost","type":"uint256"},{"name":"elementeumCost","type":"uint256"},{"name":"forgedItem","type":"uint256"},{"name":"material1","type":"uint256"},{"name":"material2","type":"address"},{"name":"meltMaterial1","type":"bool"},{"name":"material1IsNonFungible","type":"bool"}],"name":"registerForgePathERC1155WithERC721Address","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgePathDetailsCommon","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getForgePathNameAtIndex","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pathName","type":"string"},{"name":"weiCost","type":"uint256"},{"name":"elementeumCost","type":"uint256"},{"name":"forgedItem","type":"uint256"},{"name":"material1","type":"uint256"},{"name":"material2","type":"uint256"},{"name":"meltMaterial1","type":"bool"},{"name":"burnMaterial2","type":"bool"},{"name":"material1IsNonFungible","type":"bool"}],"name":"registerForgePathERC1155WithGen1Token","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"getForgePathDetailsERC1155WithERC721Address","outputs":[{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"bool"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pathId","type":"uint256"}],"name":"hasPathDefinition","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
6080604052600060015534801561001557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3613c6e806100e16000396000f3fe60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063092a5cce146101f35780630c0092f71461020a57806314fe9b461461029057806317ecc1a5146103445780631a5a1b48146104205780632bd2bbb91461044b57806337e304391461051c5780634b1f9d62146105ca5780634b6f6279146106685780634da18763146106f557806360b2a8e7146107cf57806363ab5c5b1461084657806367aec4c51461092f57806367c3f7c214610984578063715018a614610a685780637198459a14610a7f57806379f127c414610b015780638da5cb5b14610b6d5780638f32d59b14610bc4578063b132a82d14610bf3578063c20e3fbc14610c42578063c88d1d7914610d29578063c9de718914610d86578063d8bede0314610e3a578063de4a73a414610f17578063f2fde38b14610faf578063f4e8558014611000575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f46616c6c6261636b2066756e6374696f6e206973206e6f74207065726d69747481526020017f65642e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3480156101ff57600080fd5b50610208611053565b005b34801561021657600080fd5b5061028e6004803603602081101561022d57600080fd5b810190808035906020019064010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184600183028401116401000000008311171561027e57600080fd5b9091929391929390505050611080565b005b34801561029c57600080fd5b506102c9600480360360208110156102b357600080fd5b810190808035906020019092919050505061145a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103095780820151818401526020810190506102ee565b50505050905090810190601f1680156103365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035057600080fd5b5061040a6004803603602081101561036757600080fd5b810190808035906020019064010000000081111561038457600080fd5b82018360208201111561039657600080fd5b803590602001918460018302840111640100000000831117156103b857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611515565b6040518082815260200191505060405180910390f35b34801561042c57600080fd5b50610435611607565b6040518082815260200191505060405180910390f35b34801561045757600080fd5b5061051a600480360361010081101561046f57600080fd5b810190808035906020019064010000000081111561048c57600080fd5b82018360208201111561049e57600080fd5b803590602001918460018302840111640100000000831117156104c057600080fd5b90919293919293908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803515159060200190929190803515159060200190929190505050611614565b005b34801561052857600080fd5b506105556004803603602081101561053f57600080fd5b8101908080359060200190929190505050611755565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156105d657600080fd5b5061064e600480360360208110156105ed57600080fd5b810190808035906020019064010000000081111561060a57600080fd5b82018360208201111561061c57600080fd5b8035906020019184600183028401116401000000008311171561063e57600080fd5b90919293919293905050506118bd565b604051808215151515815260200191505060405180910390f35b34801561067457600080fd5b506106a16004803603602081101561068b57600080fd5b8101908080359060200190929190505050611914565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b34801561070157600080fd5b506107cd600480360360e081101561071857600080fd5b810190808035906020019064010000000081111561073557600080fd5b82018360208201111561074757600080fd5b8035906020019184600183028401116401000000008311171561076957600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050611a57565b005b3480156107db57600080fd5b50610808600480360360208110156107f257600080fd5b8101908080359060200190929190505050611ba3565b604051808681526020018581526020018415151515815260200183151515158152602001821515151581526020019550505050505060405180910390f35b34801561085257600080fd5b5061092d600480360361014081101561086a57600080fd5b810190808035906020019064010000000081111561088757600080fd5b82018360208201111561089957600080fd5b803590602001918460018302840111640100000000831117156108bb57600080fd5b90919293919293908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803515159060200190929190803515159060200190929190803515159060200190929190803515159060200190929190505050611ce3565b005b34801561093b57600080fd5b506109686004803603602081101561095257600080fd5b8101908080359060200190929190505050611e82565b604051808260ff1660ff16815260200191505060405180910390f35b34801561099057600080fd5b50610a66600480360360c08110156109a757600080fd5b81019080803590602001906401000000008111156109c457600080fd5b8201836020820111156109d657600080fd5b803590602001918460018302840111640100000000831117156109f857600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e94565b005b348015610a7457600080fd5b50610a7d611feb565b005b348015610a8b57600080fd5b50610ab860048036036020811015610aa257600080fd5b8101908080359060200190929190505050612126565b6040518087815260200186815260200185151515158152602001841515151581526020018315151515815260200182151515158152602001965050505050505060405180910390f35b348015610b0d57600080fd5b50610b3a60048036036020811015610b2457600080fd5b8101908080359060200190929190505050612289565b60405180858152602001848152602001831515151581526020018215151515815260200194505050505060405180910390f35b348015610b7957600080fd5b50610b826123a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bd057600080fd5b50610bd96123cc565b604051808215151515815260200191505060405180910390f35b348015610bff57600080fd5b50610c2c60048036036020811015610c1657600080fd5b8101908080359060200190929190505050612423565b6040518082815260200191505060405180910390f35b348015610c4e57600080fd5b50610d276004803603610100811015610c6657600080fd5b8101908080359060200190640100000000811115610c8357600080fd5b820183602082011115610c9557600080fd5b80359060200191846001830284011164010000000083111715610cb757600080fd5b909192939192939080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803515159060200190929190505050612648565b005b348015610d3557600080fd5b50610d6260048036036020811015610d4c57600080fd5b81019080803590602001909291905050506127c3565b60405180848152602001838152602001828152602001935050505060405180910390f35b348015610d9257600080fd5b50610dbf60048036036020811015610da957600080fd5b81019080803590602001909291905050506127f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e4657600080fd5b50610f156004803603610120811015610e5e57600080fd5b8101908080359060200190640100000000811115610e7b57600080fd5b820183602082011115610e8d57600080fd5b80359060200191846001830284011164010000000083111715610eaf57600080fd5b909192939192939080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035151590602001909291908035151590602001909291908035151590602001909291905050506129b2565b005b348015610f2357600080fd5b50610f5060048036036020811015610f3a57600080fd5b8101908080359060200190929190505050612b22565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001831515151581526020018215151515815260200194505050505060405180910390f35b348015610fbb57600080fd5b50610ffe60048036036020811015610fd257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c88565b005b34801561100c57600080fd5b506110396004803603602081101561102357600080fd5b8101908080359060200190929190505050612d10565b604051808215151515815260200191505060405180910390f35b61105b612d22565b60006110656123a3565b90508073ffffffffffffffffffffffffffffffffffffffff16ff5b60006110cf83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905060006110dc82612da0565b905061112b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e4a565b60018160ff16141561118a576007600083815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690556002820160016101000a81549060ff02191690555050611454565b60028160ff1614156111ff5760086000838152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050611453565b60038160ff1614156112695760096000838152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160006101000a81549060ff02191690555050611452565b60048160ff1614156112f057600a600083815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690556002820160016101000a81549060ff02191690556002820160026101000a81549060ff02191690556002820160036101000a81549060ff02191690555050611451565b60058160ff16141561136357600b600083815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690556002820160016101000a81549060ff02191690556002820160026101000a81549060ff02191690555050611450565b60068160ff1614156113e157600c60008381526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff02191690556001820160156101000a81549060ff0219169055505061144f565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f6e2d6578697374656e7420666f726765207479706500000000000000000081525060200191505060405180910390fd5b5b5b5b5b5b50505050565b60028181548110151561146957fe5b906000526020600020016000915090508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b505050505081565b6000611520826131c3565b1515611594576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6004826040518082805190602001908083835b6020831015156115cc57805182526020820191506020810190506020830392506115a7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b6000600280549050905090565b61166689898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600189898961323b565b60006116b58a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b9050846007600083815260200190815260200160002060000181905550836007600083815260200190815260200160002060010181905550826007600083815260200190815260200160002060020160006101000a81548160ff021916908315150217905550816007600083815260200190815260200160002060020160016101000a81548160ff02191690831515021790555050505050505050505050565b600080611761836134fb565b15156117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6117dd6138e5565b600860008581526020019081526020016000206040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806000015181602001519250925050915091565b600061190c83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506131c3565b905092915050565b6000806000611922846134fb565b1515611996576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b61199e61392b565b60096000868152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820160009054906101000a900460ff1615151515815250509050806000015181602001518260400151935093509350509193909250565b611aa988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600388888861323b565b6000611af889898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b9050836009600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826009600083815260200190815260200160002060010181905550816009600083815260200190815260200160002060020160006101000a81548160ff021916908315150217905550505050505050505050565b6000806000806000611bb4866134fb565b1515611c28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b611c30613965565b600b600088815260200190815260200160002060a0604051908101604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff161515151581526020016002820160019054906101000a900460ff161515151581526020016002820160029054906101000a900460ff161515151581525050905080600001518160200151826040015183606001518460800151955095509550955095505091939590929450565b611d358b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060048b8b8b61323b565b6000611d848c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905086600a60008381526020019081526020016000206000018190555085600a60008381526020019081526020016000206001018190555084600a600083815260200190815260200160002060020160006101000a81548160ff02191690831515021790555083600a600083815260200190815260200160002060020160016101000a81548160ff02191690831515021790555082600a600083815260200190815260200160002060020160026101000a81548160ff02191690831515021790555081600a600083815260200190815260200160002060020160036101000a81548160ff021916908315150217905550505050505050505050505050565b6000611e8d82612da0565b9050919050565b611ee687878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600287878761323b565b6000611f3588888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b9050826008600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816008600083815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b611ff36123cc565b1515612067576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600080612138876134fb565b15156121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6121b461399b565b600a600089815260200190815260200160002060c0604051908101604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff161515151581526020016002820160019054906101000a900460ff161515151581526020016002820160029054906101000a900460ff161515151581526020016002820160039054906101000a900460ff1615151515815250509050806000015181602001518260400151836060015184608001518560a001519650965096509650965096505091939550919395565b600080600080612298856134fb565b151561230c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6123146139da565b600760008781526020019081526020016000206080604051908101604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff161515151581526020016002820160019054906101000a900460ff161515151581525050905080600001518160200151826040015183606001519450945094509450509193509193565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600280549050821015156124a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e646578204f7574204f662052616e6765000000000000000000000000000081525060200191505060405180910390fd5b60606002838154811015156124b257fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125505780601f1061252557610100808354040283529160200191612550565b820191906000526020600020905b81548152906001019060200180831161253357829003601f168201915b50505050509050612560816131c3565b15156125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6004816040518082805190602001908083835b60208310151561260c57805182526020820191506020810190506020830392506125e7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915050919050565b61269a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600689898961323b565b60006126e98a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905084600c60008381526020019081526020016000206000018190555083600c600083815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c600083815260200190815260200160002060010160146101000a81548160ff02191690831515021790555081600c600083815260200190815260200160002060010160156101000a81548160ff02191690831515021790555050505050505050505050565b60008060006127d0613a07565b6127d9856135bb565b9050806020015181604001518260600151935093509350509193909250565b606060028054905082101515612876576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e646578204f7574204f662052616e6765000000000000000000000000000081525060200191505060405180910390fd5b606060028381548110151561288757fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129255780601f106128fa57610100808354040283529160200191612925565b820191906000526020600020905b81548152906001019060200180831161290857829003601f168201915b50505050509050612935816131c3565b15156129a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b80915050919050565b612a048a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060058a8a8a61323b565b6000612a538b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905085600b60008381526020019081526020016000206000018190555084600b60008381526020019081526020016000206001018190555083600b600083815260200190815260200160002060020160006101000a81548160ff02191690831515021790555082600b600083815260200190815260200160002060020160016101000a81548160ff02191690831515021790555081600b600083815260200190815260200160002060020160026101000a81548160ff0219169083151502179055505050505050505050505050565b600080600080612b31856134fb565b1515612ba5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b612bad613a33565b600c600087815260200190815260200160002060806040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff161515151581526020016001820160159054906101000a900460ff161515151581525050905080600001518160200151826040015183606001519450945094509450509193509193565b612c906123cc565b1515612d04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b612d0d816136a1565b50565b6000612d1b826134fb565b9050919050565b612d2a6123cc565b1515612d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b565b6000612dab826134fb565b1515612e1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900460ff169050919050565b612e52612d22565b612e5b816131c3565b1515612ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b60006004826040518082805190602001908083835b602083101515612f095780518252602082019150602081019050602083039250612ee4565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054905060006003600083815260200190815260200160002054905060036000838152602001908152602001600020600090556004836040518082805190602001908083835b602083101515612fa65780518252602082019150602081019050602083039250612f81565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009055600560008381526020019081526020016000206000612ffc9190613a76565b60066000838152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905560028201600090556003820160009055505060606130498261382a565b9050606061305e60016002805490500361382a565b905060006004826040518082805190602001908083835b60208310151561309a5780518252602082019150602081019050602083039250613075565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054905060026001600280549050038154811015156130e757fe5b9060005260206000200160028581548110151561310057fe5b906000526020600020019080546001816001161561010002031660029004613129929190613abe565b5082600260016002805490500381548110151561314257fe5b90600052602060002001908051906020019061315f929190613b45565b50836003600083815260200190815260200160002081905550600260016002805490500381548110151561318f57fe5b9060005260206000200160006131a59190613a76565b60028054809190600190036131ba9190613bc5565b50505050505050565b6000806004836040518082805190602001908083835b6020831015156131fe57805182526020820191506020810190506020830392506131d9565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205414159050919050565b613243612d22565b61324c856131c3565b1515156132c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f7061746820616c726561647920646566696e656400000000000000000000000081525060200191505060405180910390fd5b60208551101515613360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f70617468206e616d65206d6179206e6f7420657863656564203331206368617281526020017f616374657273000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008154809291906001019190505550600280549050600360006001548152602001908152602001600020819055506001546004866040518082805190602001908083835b6020831015156133cc57805182526020820191506020810190506020830392506133a7565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555084600560006001548152602001908152602001600020908051906020019061342c929190613b45565b50600285908060018154018082558091505090600182039060005260206000200160009091929091909150908051906020019061346a929190613b45565b50508360066000600154815260200190815260200160002060000160006101000a81548160ff021916908360ff1602179055508260066000600154815260200190815260200160002060010181905550816006600060015481526020019081526020016000206002018190555080600660006001548152602001908152602001600020600301819055505050505050565b60006060600560008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135a65780601f1061357b576101008083540402835291602001916135a6565b820191906000526020600020905b81548152906001019060200180831161358957829003601f168201915b50505050509050600081511415915050919050565b6135c3613a07565b6135cc826134fb565b1515613640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b60066000838152602001908152602001600020608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561376c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060028281548110151561383b57fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156138d95780601f106138ae576101008083540402835291602001916138d9565b820191906000526020600020905b8154815290600101906020018083116138bc57829003601f168201915b50505050509050919050565b6040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000151581525090565b60a06040519081016040528060008152602001600081526020016000151581526020016000151581526020016000151581525090565b60c06040519081016040528060008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b60806040519081016040528060008152602001600081526020016000151581526020016000151581525090565b608060405190810160405280600060ff1681526020016000815260200160008152602001600081525090565b60806040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581526020016000151581525090565b50805460018160011615610100020316600290046000825580601f10613a9c5750613abb565b601f016020900490600052602060002090810190613aba9190613bf1565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613af75780548555613b34565b82800160010185558215613b3457600052602060002091601f016020900482015b82811115613b33578254825591600101919060010190613b18565b5b509050613b419190613bf1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613b8657805160ff1916838001178555613bb4565b82800160010185558215613bb4579182015b82811115613bb3578251825591602001919060010190613b98565b5b509050613bc19190613bf1565b5090565b815481835581811115613bec57818360005260206000209182019101613beb9190613c16565b5b505050565b613c1391905b80821115613c0f576000816000905550600101613bf7565b5090565b90565b613c3f91905b80821115613c3b5760008181613c329190613a76565b50600101613c1c565b5090565b9056fea165627a7a723058207bd4b4f60b1b5b274671f56de77b595229bc8f88a9e6a6890b1c88f2220d7c530029
Deployed Bytecode
0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063092a5cce146101f35780630c0092f71461020a57806314fe9b461461029057806317ecc1a5146103445780631a5a1b48146104205780632bd2bbb91461044b57806337e304391461051c5780634b1f9d62146105ca5780634b6f6279146106685780634da18763146106f557806360b2a8e7146107cf57806363ab5c5b1461084657806367aec4c51461092f57806367c3f7c214610984578063715018a614610a685780637198459a14610a7f57806379f127c414610b015780638da5cb5b14610b6d5780638f32d59b14610bc4578063b132a82d14610bf3578063c20e3fbc14610c42578063c88d1d7914610d29578063c9de718914610d86578063d8bede0314610e3a578063de4a73a414610f17578063f2fde38b14610faf578063f4e8558014611000575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f46616c6c6261636b2066756e6374696f6e206973206e6f74207065726d69747481526020017f65642e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3480156101ff57600080fd5b50610208611053565b005b34801561021657600080fd5b5061028e6004803603602081101561022d57600080fd5b810190808035906020019064010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184600183028401116401000000008311171561027e57600080fd5b9091929391929390505050611080565b005b34801561029c57600080fd5b506102c9600480360360208110156102b357600080fd5b810190808035906020019092919050505061145a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103095780820151818401526020810190506102ee565b50505050905090810190601f1680156103365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035057600080fd5b5061040a6004803603602081101561036757600080fd5b810190808035906020019064010000000081111561038457600080fd5b82018360208201111561039657600080fd5b803590602001918460018302840111640100000000831117156103b857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611515565b6040518082815260200191505060405180910390f35b34801561042c57600080fd5b50610435611607565b6040518082815260200191505060405180910390f35b34801561045757600080fd5b5061051a600480360361010081101561046f57600080fd5b810190808035906020019064010000000081111561048c57600080fd5b82018360208201111561049e57600080fd5b803590602001918460018302840111640100000000831117156104c057600080fd5b90919293919293908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803515159060200190929190803515159060200190929190505050611614565b005b34801561052857600080fd5b506105556004803603602081101561053f57600080fd5b8101908080359060200190929190505050611755565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156105d657600080fd5b5061064e600480360360208110156105ed57600080fd5b810190808035906020019064010000000081111561060a57600080fd5b82018360208201111561061c57600080fd5b8035906020019184600183028401116401000000008311171561063e57600080fd5b90919293919293905050506118bd565b604051808215151515815260200191505060405180910390f35b34801561067457600080fd5b506106a16004803603602081101561068b57600080fd5b8101908080359060200190929190505050611914565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b34801561070157600080fd5b506107cd600480360360e081101561071857600080fd5b810190808035906020019064010000000081111561073557600080fd5b82018360208201111561074757600080fd5b8035906020019184600183028401116401000000008311171561076957600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050611a57565b005b3480156107db57600080fd5b50610808600480360360208110156107f257600080fd5b8101908080359060200190929190505050611ba3565b604051808681526020018581526020018415151515815260200183151515158152602001821515151581526020019550505050505060405180910390f35b34801561085257600080fd5b5061092d600480360361014081101561086a57600080fd5b810190808035906020019064010000000081111561088757600080fd5b82018360208201111561089957600080fd5b803590602001918460018302840111640100000000831117156108bb57600080fd5b90919293919293908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803515159060200190929190803515159060200190929190803515159060200190929190803515159060200190929190505050611ce3565b005b34801561093b57600080fd5b506109686004803603602081101561095257600080fd5b8101908080359060200190929190505050611e82565b604051808260ff1660ff16815260200191505060405180910390f35b34801561099057600080fd5b50610a66600480360360c08110156109a757600080fd5b81019080803590602001906401000000008111156109c457600080fd5b8201836020820111156109d657600080fd5b803590602001918460018302840111640100000000831117156109f857600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e94565b005b348015610a7457600080fd5b50610a7d611feb565b005b348015610a8b57600080fd5b50610ab860048036036020811015610aa257600080fd5b8101908080359060200190929190505050612126565b6040518087815260200186815260200185151515158152602001841515151581526020018315151515815260200182151515158152602001965050505050505060405180910390f35b348015610b0d57600080fd5b50610b3a60048036036020811015610b2457600080fd5b8101908080359060200190929190505050612289565b60405180858152602001848152602001831515151581526020018215151515815260200194505050505060405180910390f35b348015610b7957600080fd5b50610b826123a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bd057600080fd5b50610bd96123cc565b604051808215151515815260200191505060405180910390f35b348015610bff57600080fd5b50610c2c60048036036020811015610c1657600080fd5b8101908080359060200190929190505050612423565b6040518082815260200191505060405180910390f35b348015610c4e57600080fd5b50610d276004803603610100811015610c6657600080fd5b8101908080359060200190640100000000811115610c8357600080fd5b820183602082011115610c9557600080fd5b80359060200191846001830284011164010000000083111715610cb757600080fd5b909192939192939080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803515159060200190929190505050612648565b005b348015610d3557600080fd5b50610d6260048036036020811015610d4c57600080fd5b81019080803590602001909291905050506127c3565b60405180848152602001838152602001828152602001935050505060405180910390f35b348015610d9257600080fd5b50610dbf60048036036020811015610da957600080fd5b81019080803590602001909291905050506127f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e4657600080fd5b50610f156004803603610120811015610e5e57600080fd5b8101908080359060200190640100000000811115610e7b57600080fd5b820183602082011115610e8d57600080fd5b80359060200191846001830284011164010000000083111715610eaf57600080fd5b909192939192939080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035151590602001909291908035151590602001909291908035151590602001909291905050506129b2565b005b348015610f2357600080fd5b50610f5060048036036020811015610f3a57600080fd5b8101908080359060200190929190505050612b22565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001831515151581526020018215151515815260200194505050505060405180910390f35b348015610fbb57600080fd5b50610ffe60048036036020811015610fd257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c88565b005b34801561100c57600080fd5b506110396004803603602081101561102357600080fd5b8101908080359060200190929190505050612d10565b604051808215151515815260200191505060405180910390f35b61105b612d22565b60006110656123a3565b90508073ffffffffffffffffffffffffffffffffffffffff16ff5b60006110cf83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905060006110dc82612da0565b905061112b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e4a565b60018160ff16141561118a576007600083815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690556002820160016101000a81549060ff02191690555050611454565b60028160ff1614156111ff5760086000838152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050611453565b60038160ff1614156112695760096000838152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160006101000a81549060ff02191690555050611452565b60048160ff1614156112f057600a600083815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690556002820160016101000a81549060ff02191690556002820160026101000a81549060ff02191690556002820160036101000a81549060ff02191690555050611451565b60058160ff16141561136357600b600083815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690556002820160016101000a81549060ff02191690556002820160026101000a81549060ff02191690555050611450565b60068160ff1614156113e157600c60008381526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff02191690556001820160156101000a81549060ff0219169055505061144f565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f6e2d6578697374656e7420666f726765207479706500000000000000000081525060200191505060405180910390fd5b5b5b5b5b5b50505050565b60028181548110151561146957fe5b906000526020600020016000915090508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b505050505081565b6000611520826131c3565b1515611594576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6004826040518082805190602001908083835b6020831015156115cc57805182526020820191506020810190506020830392506115a7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b6000600280549050905090565b61166689898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600189898961323b565b60006116b58a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b9050846007600083815260200190815260200160002060000181905550836007600083815260200190815260200160002060010181905550826007600083815260200190815260200160002060020160006101000a81548160ff021916908315150217905550816007600083815260200190815260200160002060020160016101000a81548160ff02191690831515021790555050505050505050505050565b600080611761836134fb565b15156117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6117dd6138e5565b600860008581526020019081526020016000206040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806000015181602001519250925050915091565b600061190c83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506131c3565b905092915050565b6000806000611922846134fb565b1515611996576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b61199e61392b565b60096000868152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820160009054906101000a900460ff1615151515815250509050806000015181602001518260400151935093509350509193909250565b611aa988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600388888861323b565b6000611af889898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b9050836009600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826009600083815260200190815260200160002060010181905550816009600083815260200190815260200160002060020160006101000a81548160ff021916908315150217905550505050505050505050565b6000806000806000611bb4866134fb565b1515611c28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b611c30613965565b600b600088815260200190815260200160002060a0604051908101604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff161515151581526020016002820160019054906101000a900460ff161515151581526020016002820160029054906101000a900460ff161515151581525050905080600001518160200151826040015183606001518460800151955095509550955095505091939590929450565b611d358b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060048b8b8b61323b565b6000611d848c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905086600a60008381526020019081526020016000206000018190555085600a60008381526020019081526020016000206001018190555084600a600083815260200190815260200160002060020160006101000a81548160ff02191690831515021790555083600a600083815260200190815260200160002060020160016101000a81548160ff02191690831515021790555082600a600083815260200190815260200160002060020160026101000a81548160ff02191690831515021790555081600a600083815260200190815260200160002060020160036101000a81548160ff021916908315150217905550505050505050505050505050565b6000611e8d82612da0565b9050919050565b611ee687878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600287878761323b565b6000611f3588888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b9050826008600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816008600083815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b611ff36123cc565b1515612067576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600080612138876134fb565b15156121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6121b461399b565b600a600089815260200190815260200160002060c0604051908101604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff161515151581526020016002820160019054906101000a900460ff161515151581526020016002820160029054906101000a900460ff161515151581526020016002820160039054906101000a900460ff1615151515815250509050806000015181602001518260400151836060015184608001518560a001519650965096509650965096505091939550919395565b600080600080612298856134fb565b151561230c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6123146139da565b600760008781526020019081526020016000206080604051908101604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff161515151581526020016002820160019054906101000a900460ff161515151581525050905080600001518160200151826040015183606001519450945094509450509193509193565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600280549050821015156124a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e646578204f7574204f662052616e6765000000000000000000000000000081525060200191505060405180910390fd5b60606002838154811015156124b257fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125505780601f1061252557610100808354040283529160200191612550565b820191906000526020600020905b81548152906001019060200180831161253357829003601f168201915b50505050509050612560816131c3565b15156125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6004816040518082805190602001908083835b60208310151561260c57805182526020820191506020810190506020830392506125e7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915050919050565b61269a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600689898961323b565b60006126e98a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905084600c60008381526020019081526020016000206000018190555083600c600083815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c600083815260200190815260200160002060010160146101000a81548160ff02191690831515021790555081600c600083815260200190815260200160002060010160156101000a81548160ff02191690831515021790555050505050505050505050565b60008060006127d0613a07565b6127d9856135bb565b9050806020015181604001518260600151935093509350509193909250565b606060028054905082101515612876576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e646578204f7574204f662052616e6765000000000000000000000000000081525060200191505060405180910390fd5b606060028381548110151561288757fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129255780601f106128fa57610100808354040283529160200191612925565b820191906000526020600020905b81548152906001019060200180831161290857829003601f168201915b50505050509050612935816131c3565b15156129a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b80915050919050565b612a048a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060058a8a8a61323b565b6000612a538b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611515565b905085600b60008381526020019081526020016000206000018190555084600b60008381526020019081526020016000206001018190555083600b600083815260200190815260200160002060020160006101000a81548160ff02191690831515021790555082600b600083815260200190815260200160002060020160016101000a81548160ff02191690831515021790555081600b600083815260200190815260200160002060020160026101000a81548160ff0219169083151502179055505050505050505050505050565b600080600080612b31856134fb565b1515612ba5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b612bad613a33565b600c600087815260200190815260200160002060806040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff161515151581526020016001820160159054906101000a900460ff161515151581525050905080600001518160200151826040015183606001519450945094509450509193509193565b612c906123cc565b1515612d04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b612d0d816136a1565b50565b6000612d1b826134fb565b9050919050565b612d2a6123cc565b1515612d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b565b6000612dab826134fb565b1515612e1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900460ff169050919050565b612e52612d22565b612e5b816131c3565b1515612ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b60006004826040518082805190602001908083835b602083101515612f095780518252602082019150602081019050602083039250612ee4565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054905060006003600083815260200190815260200160002054905060036000838152602001908152602001600020600090556004836040518082805190602001908083835b602083101515612fa65780518252602082019150602081019050602083039250612f81565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009055600560008381526020019081526020016000206000612ffc9190613a76565b60066000838152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905560028201600090556003820160009055505060606130498261382a565b9050606061305e60016002805490500361382a565b905060006004826040518082805190602001908083835b60208310151561309a5780518252602082019150602081019050602083039250613075565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054905060026001600280549050038154811015156130e757fe5b9060005260206000200160028581548110151561310057fe5b906000526020600020019080546001816001161561010002031660029004613129929190613abe565b5082600260016002805490500381548110151561314257fe5b90600052602060002001908051906020019061315f929190613b45565b50836003600083815260200190815260200160002081905550600260016002805490500381548110151561318f57fe5b9060005260206000200160006131a59190613a76565b60028054809190600190036131ba9190613bc5565b50505050505050565b6000806004836040518082805190602001908083835b6020831015156131fe57805182526020820191506020810190506020830392506131d9565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205414159050919050565b613243612d22565b61324c856131c3565b1515156132c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f7061746820616c726561647920646566696e656400000000000000000000000081525060200191505060405180910390fd5b60208551101515613360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f70617468206e616d65206d6179206e6f7420657863656564203331206368617281526020017f616374657273000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008154809291906001019190505550600280549050600360006001548152602001908152602001600020819055506001546004866040518082805190602001908083835b6020831015156133cc57805182526020820191506020810190506020830392506133a7565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555084600560006001548152602001908152602001600020908051906020019061342c929190613b45565b50600285908060018154018082558091505090600182039060005260206000200160009091929091909150908051906020019061346a929190613b45565b50508360066000600154815260200190815260200160002060000160006101000a81548160ff021916908360ff1602179055508260066000600154815260200190815260200160002060010181905550816006600060015481526020019081526020016000206002018190555080600660006001548152602001908152602001600020600301819055505050505050565b60006060600560008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135a65780601f1061357b576101008083540402835291602001916135a6565b820191906000526020600020905b81548152906001019060200180831161358957829003601f168201915b50505050509050600081511415915050919050565b6135c3613a07565b6135cc826134fb565b1515613640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f70617468206e6f7420646566696e65640000000000000000000000000000000081525060200191505060405180910390fd5b60066000838152602001908152602001600020608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561376c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060028281548110151561383b57fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156138d95780601f106138ae576101008083540402835291602001916138d9565b820191906000526020600020905b8154815290600101906020018083116138bc57829003601f168201915b50505050509050919050565b6040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000151581525090565b60a06040519081016040528060008152602001600081526020016000151581526020016000151581526020016000151581525090565b60c06040519081016040528060008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b60806040519081016040528060008152602001600081526020016000151581526020016000151581525090565b608060405190810160405280600060ff1681526020016000815260200160008152602001600081525090565b60806040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581526020016000151581525090565b50805460018160011615610100020316600290046000825580601f10613a9c5750613abb565b601f016020900490600052602060002090810190613aba9190613bf1565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613af75780548555613b34565b82800160010185558215613b3457600052602060002091601f016020900482015b82811115613b33578254825591600101919060010190613b18565b5b509050613b419190613bf1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613b8657805160ff1916838001178555613bb4565b82800160010185558215613bb4579182015b82811115613bb3578251825591602001919060010190613b98565b5b509050613bc19190613bf1565b5090565b815481835581811115613bec57818360005260206000209182019101613beb9190613c16565b5b505050565b613c1391905b80821115613c0f576000816000905550600101613bf7565b5090565b90565b613c3f91905b80821115613c3b5760008181613c329190613a76565b50600101613c1c565b5090565b9056fea165627a7a723058207bd4b4f60b1b5b274671f56de77b595229bc8f88a9e6a6890b1c88f2220d7c530029
Deployed Bytecode Sourcemap
10076:10616:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3597:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3658:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3658:178:0;;;;;;11874:956;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11874:956:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11874:956:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11874:956:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11874:956:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11874:956:0;;;;;;;;;;;;;;;3181:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3181:30:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3181:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3181:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4265:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4265:202:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4265:202:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4265:202:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4265:202:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4265:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4265:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4132:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4132:117:0;;;;;;;;;;;;;;;;;;;;;;;12842:775;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12842:775:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;12842:775:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;12842:775:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12842:775:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;12842:775:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14691:379;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14691:379:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14691:379:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3844:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3844:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3844:148:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3844:148:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3844:148:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3844:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15780:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15780:447:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15780:447:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15078:690;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15078:690:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;15078:690:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;15078:690:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15078:690:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15078:690:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18817:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18817:526:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18817:526:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16235:1045;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16235:1045:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;16235:1045:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16235:1045:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16235:1045:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;16235:1045:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5137:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5137:113:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5137:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14119:556;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14119:556:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;14119:556:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;14119:556:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14119:556:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14119:556:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1718:140:0;;;;;;17290:567;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17290:567:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17290:567:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13633:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13633:474:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13633:474:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;907:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;907:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1273:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1273:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4798:327;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4798:327:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4798:327:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19351:828;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19351:828:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;19351:828:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19351:828:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19351:828:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19351:828:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5262:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5262:355:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5262:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:315;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4475:315:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4475:315:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4475:315:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17865:936;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17865:936:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17865:936:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17865:936:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17865:936:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;17865:936:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20195:494;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20195:494:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20195:494:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2013:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2013:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2013:109:0;;;;;;;;;;;;;;;;;;;;;;4000:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4000:124:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4000:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3658:178;3705:19;:17;:19::i;:::-;3735:28;3782:7;:5;:7::i;:::-;3735:56;;3815:12;3802:26;;;11874:956;11957:19;11979:24;11994:8;;11979:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11979:24:0;;;;;;:14;:24::i;:::-;11957:46;;12014:15;12032:26;12046:11;12032:13;:26::i;:::-;12014:44;;12077:35;12103:8;;12077:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;12077:35:0;;;;;;:25;:35::i;:::-;12147:1;12134:9;:14;;;12131:692;;;12170:25;:38;12196:11;12170:38;;;;;;;;;;;;12163:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12131:692;;;12246:1;12233:9;:14;;;12230:593;;;12269:30;:43;12300:11;12269:43;;;;;;;;;;;;12262:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12230:593;;;12350:1;12337:9;:14;;;12334:489;;;12373:38;:51;12412:11;12373:51;;;;;;;;;;;;12366:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:489;;;12462:1;12449:9;:14;;;12446:377;;;12485:28;:41;12514:11;12485:41;;;;;;;;;;;;12478:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12446:377;;;12564:1;12551:9;:14;;;12548:275;;;12587:32;:45;12620:11;12587:45;;;;;;;;;;;;12580:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12548:275;;;12671:1;12658:9;:14;;;12655:168;;;12694:36;:49;12731:11;12694:49;;;;;;;;;;;;12687:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12655:168;;;12778:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12655:168;12548:275;12446:377;12334:489;12230:593;12131:692;11874:956;;;;:::o;3181:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4265:202::-;4334:7;4360:34;4385:8;4360:24;:34::i;:::-;4352:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4431:18;4450:8;4431:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4431:28:0;;;;;;;;;;;;;;;;;;;;;;4424:35;;4265:202;;;:::o;4132:117::-;4193:7;4220:14;:21;;;;4213:28;;4132:117;:::o;12842:775::-;13148:73;13172:8;;13148:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13148:73:0;;;;;;13182:1;13185:7;13194:14;13210:10;13148:23;:73::i;:::-;13232:19;13254:24;13269:8;;13254:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13254:24:0;;;;;;:14;:24::i;:::-;13232:46;;13363:9;13312:25;:38;13338:11;13312:38;;;;;;;;;;;:48;;:60;;;;13434:9;13383:25;:38;13409:11;13383:38;;;;;;;;;;;:48;;:60;;;;13509:13;13454:25;:38;13480:11;13454:38;;;;;;;;;;;:52;;;:68;;;;;;;;;;;;;;;;;;13588:13;13533:25;:38;13559:11;13533:38;;;;;;;;;;;:52;;;:68;;;;;;;;;;;;;;;;;;12842:775;;;;;;;;;;:::o;14691:379::-;14777:7;14786;14812:26;14831:6;14812:18;:26::i;:::-;14804:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14868:52;;:::i;:::-;14923:30;:38;14954:6;14923:38;;;;;;;;;;;14868:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14996:13;:23;;;15030:13;:23;;;14970:92;;;;;14691:379;;;:::o;3844:148::-;3926:4;3950:34;3975:8;;3950:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3950:34:0;;;;;;:24;:34::i;:::-;3943:41;;3844:148;;;;:::o;15780:447::-;15874:7;15883;15892:4;15915:26;15934:6;15915:18;:26::i;:::-;15907:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15971:60;;:::i;:::-;16034:38;:46;16073:6;16034:46;;;;;;;;;;;15971:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16115:13;:23;;;16149:13;:23;;;16183:13;:27;;;16089:130;;;;;;;15780:447;;;;;:::o;15078:690::-;15368:73;15392:8;;15368:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15368:73:0;;;;;;15402:1;15405:7;15414:14;15430:10;15368:23;:73::i;:::-;15452:19;15474:24;15489:8;;15474:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15474:24:0;;;;;;:14;:24::i;:::-;15452:46;;15575:9;15511:38;:51;15550:11;15511:51;;;;;;;;;;;:61;;;:73;;;;;;;;;;;;;;;;;;15659:9;15595:38;:51;15634:11;15595:51;;;;;;;;;;;:61;;:73;;;;15747:13;15679:38;:51;15718:11;15679:51;;;;;;;;;;;:65;;;:81;;;;;;;;;;;;;;;;;;15078:690;;;;;;;;;:::o;18817:526::-;18905:7;18914;18923:4;18929;18935;18958:26;18977:6;18958:18;:26::i;:::-;18950:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19014:54;;:::i;:::-;19071:32;:40;19104:6;19071:40;;;;;;;;;;;19014:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19146:13;:23;;;19180:13;:23;;;19214:13;:27;;;19252:13;:27;;;19290:13;:36;;;19120:215;;;;;;;;;;;18817:526;;;;;;;:::o;16235:1045::-;16612:73;16636:8;;16612:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16612:73:0;;;;;;16646:1;16649:7;16658:14;16674:10;16612:23;:73::i;:::-;16696:19;16718:24;16733:8;;16718:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16718:24:0;;;;;;:14;:24::i;:::-;16696:46;;16825:9;16771:28;:41;16800:11;16771:41;;;;;;;;;;;:51;;:63;;;;16899:9;16845:28;:41;16874:11;16845:41;;;;;;;;;;;:51;;:63;;;;16977:13;16919:28;:41;16948:11;16919:41;;;;;;;;;;;:55;;;:71;;;;;;;;;;;;;;;;;;17059:13;17001:28;:41;17030:11;17001:41;;;;;;;;;;;:55;;;:71;;;;;;;;;;;;;;;;;;17150:22;17083:28;:41;17112:11;17083:41;;;;;;;;;;;:64;;;:89;;;;;;;;;;;;;;;;;;17250:22;17183:28;:41;17212:11;17183:41;;;;;;;;;;;:64;;;:89;;;;;;;;;;;;;;;;;;16235:1045;;;;;;;;;;;;:::o;5137:113::-;5198:5;5221:21;5235:6;5221:13;:21::i;:::-;5214:28;;5137:113;;;:::o;14119:556::-;14362:73;14386:8;;14362:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;14362:73:0;;;;;;14396:1;14399:7;14408:14;14424:10;14362:23;:73::i;:::-;14446:19;14468:24;14483:8;;14468:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;14468:24:0;;;;;;:14;:24::i;:::-;14446:46;;14582:9;14526:30;:43;14557:11;14526:43;;;;;;;;;;;:53;;;:65;;;;;;;;;;;;;;;;;;14658:9;14602:30;:43;14633:11;14602:43;;;;;;;;;;;:53;;;:65;;;;;;;;;;;;;;;;;;14119:556;;;;;;;;:::o;1718:140::-;1119:9;:7;:9::i;:::-;1111:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1817:1;1780:40;;1801:6;;;;;;;;;;;1780:40;;;;;;;;;;;;1848:1;1831:6;;:19;;;;;;;;;;;;;;;;;;1718:140::o;17290:567::-;17374:7;17383;17392:4;17398;17404;17410;17433:26;17452:6;17433:18;:26::i;:::-;17425:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17489:50;;:::i;:::-;17542:28;:36;17571:6;17542:36;;;;;;;;;;;17489:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17613:13;:23;;;17647:13;:23;;;17681:13;:27;;;17719:13;:27;;;17757:13;:36;;;17804:13;:36;;;17587:262;;;;;;;;;;;;;17290:567;;;;;;;:::o;13633:474::-;13714:7;13723;13732:4;13738;13775:26;13794:6;13775:18;:26::i;:::-;13767:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13831:47;;:::i;:::-;13881:25;:33;13907:6;13881:33;;;;;;;;;;;13831:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13949:13;:23;;;13983:13;:23;;;14017:13;:27;;;14055:13;:27;;;13923:176;;;;;;;;;13633:474;;;;;:::o;907:79::-;945:7;972:6;;;;;;;;;;;965:13;;907:79;:::o;1273:92::-;1313:4;1351:6;;;;;;;;;;;1337:20;;:10;:20;;;1330:27;;1273:92;:::o;4798:327::-;4867:7;4901:14;:21;;;;4893:5;:29;4885:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4954:22;4979:14;4994:5;4979:21;;;;;;;;;;;;;;;;;4954:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5018:34;5043:8;5018:24;:34::i;:::-;5010:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5089:18;5108:8;5089:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5089:28:0;;;;;;;;;;;;;;;;;;;;;;5082:35;;;4798:327;;;:::o;19351:828::-;19665:73;19689:8;;19665:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19665:73:0;;;;;;19699:1;19702:7;19711:14;19727:10;19665:23;:73::i;:::-;19749:19;19771:24;19786:8;;19771:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19771:24:0;;;;;;:14;:24::i;:::-;19749:46;;19882:9;19820:36;:49;19857:11;19820:49;;;;;;;;;;;:59;;:71;;;;19964:9;19902:36;:49;19939:11;19902:49;;;;;;;;;;;:59;;;:71;;;;;;;;;;;;;;;;;;20050:13;19984:36;:49;20021:11;19984:49;;;;;;;;;;;:63;;;:79;;;;;;;;;;;;;;;;;;20149:22;20074:36;:49;20111:11;20074:49;;;;;;;;;;;:72;;;:97;;;;;;;;;;;;;;;;;;19351:828;;;;;;;;;;:::o;5262:355::-;5336:7;5345;5354;5372:46;;:::i;:::-;5421:31;5445:6;5421:23;:31::i;:::-;5372:80;;5487:19;:27;;;5525:19;:34;;;5570:19;:30;;;5461:148;;;;;;;5262:355;;;;;:::o;4475:315::-;4546:13;4586:14;:21;;;;4578:5;:29;4570:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4639:22;4664:14;4679:5;4664:21;;;;;;;;;;;;;;;;;4639:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4703:34;4728:8;4703:24;:34::i;:::-;4695:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4774:8;4767:15;;;4475:315;;;:::o;17865:936::-;18208:73;18232:8;;18208:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;18208:73:0;;;;;;18242:1;18245:7;18254:14;18270:10;18208:23;:73::i;:::-;18292:19;18314:24;18329:8;;18314:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;18314:24:0;;;;;;:14;:24::i;:::-;18292:46;;18422:9;18364:32;:45;18397:11;18364:45;;;;;;;;;;;:55;;:67;;;;18500:9;18442:32;:45;18475:11;18442:45;;;;;;;;;;;:55;;:67;;;;18582:13;18520:32;:45;18553:11;18520:45;;;;;;;;;;;:59;;;:75;;;;;;;;;;;;;;;;;;18668:13;18606:32;:45;18639:11;18606:45;;;;;;;;;;;:59;;;:75;;;;;;;;;;;;;;;;;;18763:22;18692:32;:45;18725:11;18692:45;;;;;;;;;;;:68;;;:93;;;;;;;;;;;;;;;;;;17865:936;;;;;;;;;;;:::o;20195:494::-;20287:7;20296;20305:4;20311;20334:26;20353:6;20334:18;:26::i;:::-;20326:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20390:58;;:::i;:::-;20451:36;:44;20488:6;20451:44;;;;;;;;;;;20390:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20530:13;:23;;;20564:13;:23;;;20598:13;:27;;;20636:13;:36;;;20504:177;;;;;;;;;20195:494;;;;;:::o;2013:109::-;1119:9;:7;:9::i;:::-;1111:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2086:28;2105:8;2086:18;:28::i;:::-;2013:109;:::o;4000:124::-;4066:4;4090:26;4109:6;4090:18;:26::i;:::-;4083:33;;4000:124;;;:::o;8532:114::-;8592:9;:7;:9::i;:::-;8584:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8532:114::o;6146:193::-;6208:5;6232:26;6251:6;6232:18;:26::i;:::-;6224:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6295:18;:26;6314:6;6295:26;;;;;;;;;;;:36;;;;;;;;;;;;6288:43;;6146:193;;;:::o;7264:1022::-;7343:19;:17;:19::i;:::-;7381:34;7406:8;7381:24;:34::i;:::-;7373:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7449:14;7466:18;7485:8;7466:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7466:28:0;;;;;;;;;;;;;;;;;;;;;;7449:45;;7511:17;7531;:25;7549:6;7531:25;;;;;;;;;;;;7511:45;;7576:17;:25;7594:6;7576:25;;;;;;;;;;;7569:32;;;7619:18;7638:8;7619:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7619:28:0;;;;;;;;;;;;;;;;;;;;;7612:35;;;7665:18;:26;7684:6;7665:26;;;;;;;;;;;;7658:33;;;;:::i;:::-;7709:18;:26;7728:6;7709:26;;;;;;;;;;;;7702:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7748:17;7768:35;7793:9;7768:24;:35::i;:::-;7748:55;;7820:31;7854:51;7903:1;7879:14;:21;;;;:25;7854:24;:51::i;:::-;7820:85;;7916:23;7942:18;7961:17;7942:37;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7942:37:0;;;;;;;;;;;;;;;;;;;;;;7916:63;;8024:14;8063:1;8039:14;:21;;;;:25;8024:41;;;;;;;;;;;;;;;;;7996:14;8011:9;7996:25;;;;;;;;;;;;;;;;;:69;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8120:3;8076:14;8115:1;8091:14;:21;;;;:25;8076:41;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;:::i;:::-;;8171:9;8134:17;:34;8152:15;8134:34;;;;;;;;;;;:46;;;;8198:14;8237:1;8213:14;:21;;;;:25;8198:41;;;;;;;;;;;;;;;;;;8191:48;;;;:::i;:::-;8250:14;:23;;;;;;;;;;;;:::i;:::-;;7264:1022;;;;;;:::o;5625:146::-;5706:4;5762:1;5730:18;5749:8;5730:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5730:28:0;;;;;;;;;;;;;;;;;;;;;;:33;;5723:40;;5625:146;;;:::o;6347:909::-;6502:19;:17;:19::i;:::-;6541:34;6566:8;6541:24;:34::i;:::-;6540:35;6532:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6644:2;6625:8;6619:22;:27;6611:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6702:18;;:20;;;;;;;;;;;;;6773:14;:21;;;;6733:17;:37;6751:18;;6733:37;;;;;;;;;;;:61;;;;6836:18;;6805;6824:8;6805:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6805:28:0;;;;;;;;;;;;;;;;;;;;;:49;;;;6906:8;6865:18;:38;6884:18;;6865:38;;;;;;;;;;;:49;;;;;;;;;;;;:::i;:::-;;6925:14;6945:8;6925:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6925:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7018:9;6967:18;:38;6986:18;;6967:38;;;;;;;;;;;:48;;;:60;;;;;;;;;;;;;;;;;;7087:7;7038:18;:38;7057:18;;7038:38;;;;;;;;;;;:46;;:56;;;;7161:14;7105:18;:38;7124:18;;7105:38;;;;;;;;;;;:53;;:70;;;;7238:10;7186:18;:38;7205:18;;7186:38;;;;;;;;;;;:49;;:62;;;;6347:909;;;;;:::o;5779:209::-;5846:4;5863:32;5904:18;:26;5923:6;5904:26;;;;;;;;;;;5863:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:1;5949:19;:26;:31;;5942:38;;;5779:209;;;:::o;8310:214::-;8382:26;;:::i;:::-;8427;8446:6;8427:18;:26::i;:::-;8419:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8490:18;:26;8509:6;8490:26;;;;;;;;;;;8483:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8310:214;;;:::o;2228:229::-;2322:1;2302:22;;:8;:22;;;;2294:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2412:8;2383:38;;2404:6;;;;;;;;;;;2383:38;;;;;;;;;;;;2441:8;2432:6;;:17;;;;;;;;;;;;;;;;;;2228:229;:::o;5996:142::-;6072:13;6105:14;6120:9;6105:25;;;;;;;;;;;;;;;;;6098:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5996:142;;;:::o;10076:10616::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o
Swarm Source
bzzr://7bd4b4f60b1b5b274671f56de77b595229bc8f88a9e6a6890b1c88f2220d7c53
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.