Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
UpgradeDelegate
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-06-27 */ pragma solidity >=0.4.11 <0.5.0; /** * @title NMRSafeMath * @dev Unsigned math operations with safety checks that revert on error. */ library NMRSafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } /* WARNING: This implementation is outdated and insecure */ /// @title Shareable /// @notice Multisig contract to manage access control contract Shareable { // TYPES // struct for the status of a pending operation. struct PendingState { uint yetNeeded; uint ownersDone; uint index; } // FIELDS // the number of owners that must confirm the same operation before it is run. uint public required; // list of owners address[256] owners; uint constant c_maxOwners = 250; // index on the list of owners to allow reverse lookup mapping(address => uint) ownerIndex; // the ongoing operations. mapping(bytes32 => PendingState) pendings; bytes32[] pendingsIndex; // EVENTS // this contract only has six types of events: it can accept a confirmation, in which case // we record owner and operation (hash) alongside it. event Confirmation(address owner, bytes32 operation); event Revoke(address owner, bytes32 operation); // MODIFIERS address thisContract = this; // simple single-sig function modifier. modifier onlyOwner { if (isOwner(msg.sender)) _; } // multi-sig function modifier: the operation must have an intrinsic hash in order // that later attempts can be realised as the same underlying operation and // thus count as confirmations. modifier onlyManyOwners(bytes32 _operation) { if (confirmAndCheck(_operation)) _; } // CONSTRUCTOR // constructor is given number of sigs required to do protected "onlymanyowners" transactions // as well as the selection of addresses capable of confirming them. function Shareable(address[] _owners, uint _required) { owners[1] = msg.sender; ownerIndex[msg.sender] = 1; for (uint i = 0; i < _owners.length; ++i) { owners[2 + i] = _owners[i]; ownerIndex[_owners[i]] = 2 + i; } if (required > owners.length) throw; required = _required; } // new multisig is given number of sigs required to do protected "onlymanyowners" transactions // as well as the selection of addresses capable of confirming them. // take all new owners as an array /* WARNING: This function contains a security vulnerability. This method does not clear the `owners` array and the `ownerIndex` mapping before updating the owner addresses. If the new array of owner addresses is shorter than the existing array of owner addresses, some of the existing owners will retain ownership. The fix implemented in NumeraireDelegateV2 successfully mitigates this bug by allowing new owners to remove the old owners from the `ownerIndex` mapping using a special transaction. Note that the old owners are not be removed from the `owners` array and that if the special transaction is incorectly crafted, it may result in fatal error to the multisig functionality. */ function changeShareable(address[] _owners, uint _required) onlyManyOwners(sha3(msg.data)) { for (uint i = 0; i < _owners.length; ++i) { owners[1 + i] = _owners[i]; ownerIndex[_owners[i]] = 1 + i; } if (required > owners.length) throw; required = _required; } // METHODS // Revokes a prior confirmation of the given operation function revoke(bytes32 _operation) external { uint index = ownerIndex[msg.sender]; // make sure they're an owner if (index == 0) return; uint ownerIndexBit = 2**index; var pending = pendings[_operation]; if (pending.ownersDone & ownerIndexBit > 0) { pending.yetNeeded++; pending.ownersDone -= ownerIndexBit; Revoke(msg.sender, _operation); } } // Gets an owner by 0-indexed position (using numOwners as the count) function getOwner(uint ownerIndex) external constant returns (address) { return address(owners[ownerIndex + 1]); } function isOwner(address _addr) constant returns (bool) { return ownerIndex[_addr] > 0; } function hasConfirmed(bytes32 _operation, address _owner) constant returns (bool) { var pending = pendings[_operation]; uint index = ownerIndex[_owner]; // make sure they're an owner if (index == 0) return false; // determine the bit to set for this owner. uint ownerIndexBit = 2**index; return !(pending.ownersDone & ownerIndexBit == 0); } // INTERNAL METHODS function confirmAndCheck(bytes32 _operation) internal returns (bool) { // determine what index the present sender is: uint index = ownerIndex[msg.sender]; // make sure they're an owner if (index == 0) return; var pending = pendings[_operation]; // if we're not yet working on this operation, switch over and reset the confirmation status. if (pending.yetNeeded == 0) { // reset count of confirmations needed. pending.yetNeeded = required; // reset which owners have confirmed (none) - set our bitmap to 0. pending.ownersDone = 0; pending.index = pendingsIndex.length++; pendingsIndex[pending.index] = _operation; } // determine the bit to set for this owner. uint ownerIndexBit = 2**index; // make sure we (the message sender) haven't confirmed this operation previously. if (pending.ownersDone & ownerIndexBit == 0) { Confirmation(msg.sender, _operation); // ok - check if count is enough to go ahead. if (pending.yetNeeded <= 1) { // enough confirmations: reset and run interior. delete pendingsIndex[pendings[_operation].index]; delete pendings[_operation]; return true; } else { // not enough: record that this owner in particular confirmed. pending.yetNeeded--; pending.ownersDone |= ownerIndexBit; } } } function clearPending() internal { uint length = pendingsIndex.length; for (uint i = 0; i < length; ++i) if (pendingsIndex[i] != 0) delete pendings[pendingsIndex[i]]; delete pendingsIndex; } } /// @title Safe /// @notice Utility functions for safe data manipulations contract Safe { /// @dev Add two numbers without overflow /// @param a Uint number /// @param b Uint number /// @return result function safeAdd(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c >= a && c >= b); return c; } /// @dev Substract two numbers without underflow /// @param a Uint number /// @param b Uint number /// @return result function safeSubtract(uint a, uint b) internal returns (uint) { uint c = a - b; assert(b <= a && c <= a); return c; } /// @dev Multiply two numbers without overflow /// @param a Uint number /// @param b Uint number /// @return result function safeMultiply(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || (c / a) == b); return c; } /// @dev Convert uint256 to uint128 without concatenating /// @param a Uint number /// @return result function shrink128(uint a) internal returns (uint128) { assert(a < 0x100000000000000000000000000000000); return uint128(a); } /// @dev Prevent short address attack /// @param numWords Uint length of calldata in bytes32 words modifier onlyPayloadSize(uint numWords) { assert(msg.data.length == numWords * 32 + 4); _; } /// @dev Fallback function to allow ETH to be received function () payable { } } /// @title StoppableShareable /// @notice Extend the Shareable multisig with ability to pause desired functions contract StoppableShareable is Shareable { bool public stopped; bool public stoppable = true; modifier stopInEmergency { if (!stopped) _; } modifier onlyInEmergency { if (stopped) _; } function StoppableShareable(address[] _owners, uint _required) Shareable(_owners, _required) { } /// @notice Trigger paused state /// @dev Can only be called by an owner function emergencyStop() external onlyOwner { assert(stoppable); stopped = true; } /// @notice Return to unpaused state /// @dev Can only be called by the multisig function release() external onlyManyOwners(sha3(msg.data)) { assert(stoppable); stopped = false; } /// @notice Disable ability to pause the contract /// @dev Can only be called by the multisig function disableStopping() external onlyManyOwners(sha3(msg.data)) { stoppable = false; } } /// @title NumeraireShared /// @notice Token and tournament storage layout contract NumeraireShared is Safe { address public numerai = this; // Cap the total supply and the weekly supply uint256 public supply_cap = 21000000e18; // 21 million uint256 public weekly_disbursement = 96153846153846153846153; uint256 public initial_disbursement; uint256 public deploy_time; uint256 public total_minted; // ERC20 requires totalSupply, balanceOf, and allowance uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; mapping (uint => Tournament) public tournaments; // tournamentID struct Tournament { uint256 creationTime; uint256[] roundIDs; mapping (uint256 => Round) rounds; // roundID } struct Round { uint256 creationTime; uint256 endTime; uint256 resolutionTime; mapping (address => mapping (bytes32 => Stake)) stakes; // address of staker } // The order is important here because of its packing characteristics. // Particularly, `amount` and `confidence` are in the *same* word, so // Solidity can update both at the same time (if the optimizer can figure // out that you're updating both). This makes `stake()` cheap. struct Stake { uint128 amount; // Once the stake is resolved, this becomes 0 uint128 confidence; bool successful; bool resolved; } // Generates a public event on the blockchain to notify clients event Mint(uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event Staked(address indexed staker, bytes32 tag, uint256 totalAmountStaked, uint256 confidence, uint256 indexed tournamentID, uint256 indexed roundID); event RoundCreated(uint256 indexed tournamentID, uint256 indexed roundID, uint256 endTime, uint256 resolutionTime); event TournamentCreated(uint256 indexed tournamentID); event StakeDestroyed(uint256 indexed tournamentID, uint256 indexed roundID, address indexed stakerAddress, bytes32 tag); event StakeReleased(uint256 indexed tournamentID, uint256 indexed roundID, address indexed stakerAddress, bytes32 tag, uint256 etherReward); /// @notice Get the amount of NMR which can be minted /// @return uint256 Amount of NMR in wei function getMintable() constant returns (uint256) { return safeSubtract( safeAdd(initial_disbursement, safeMultiply(weekly_disbursement, safeSubtract(block.timestamp, deploy_time)) / 1 weeks), total_minted); } } /// @title UpgradeDelegate /// @notice Delegate contract used to execute final token upgrade /// @dev This contract could optionally hardcode the address of the multisig /// wallet before deployment - it is currently supplied as a function argument. /// @dev Deployed at address /// @dev Set in tx /// @dev Retired in tx contract UpgradeDelegate is StoppableShareable, NumeraireShared { address public delegateContract; bool public contractUpgradable; address[] public previousDelegates; string public standard; string public name; string public symbol; uint256 public decimals; event DelegateChanged(address oldAddress, address newAddress); using NMRSafeMath for uint256; // set the address of the tournament contract as a constant. address private constant _TOURNAMENT = address( 0x9DCe896DdC20BA883600176678cbEe2B8BA188A9 ); /// @dev Constructor called on deployment to initialize the delegate /// contract multisig (even though it is an implementation contract, /// just in case) and to confirm that the deployment address of the /// contract matches the expected deployment address. /// @param _owners Array of owner address to control multisig /// @param _num_required Uint number of owners required for multisig transaction constructor(address[] _owners, uint256 _num_required) public StoppableShareable(_owners, _num_required) { require( address(this) == address(0x3361F79f0819fD5feaA37bea44C8a33d98b2A1cd), "incorrect deployment address - check submitting account & nonce." ); } /// @dev Used to execute the token upgrade. The new tournament must first be // initialized. Can only be called by the dedicated deployment address. /// @dev Executes the following steps: /// 1) Burn any NMR at the token contract's address and the null address. /// 2) Mint the remaining NMR supply to the designated multisig. /// 3) Transfer the remaining ETH balance to the designated multisig. /// 4) Clear the stake data, round data, and tournament data of tournament 0 /// 5) Set new totalSupply and supply_cap values to 11 million NMR /// 6) Designate new delegate contract as NumeraireDelegateV3 /// 7) Permanently disable freezing /// 8) Clear all existing owners function numeraiTransfer(address multiSig, uint256) public returns (bool ok) { // only the deployment address can call this function require(msg.sender == address(0x249e479b571Fea3DE01F186cF22383a79b21ca7F)); // define the delegate address using the expected hardcoded address address delegateV3 = address(0x29F709e42C95C604BA76E73316d325077f8eB7b2); // zero out the NMR balance of the token contract and adjust totalSupply _burn(address(this), balanceOf[address(this)]); // zero out the NMR balance of the null address and adjust totalSupply _burn(address(0), balanceOf[address(0)]); // clear tournament 0 stakes (should cause totalSupply == sum(balances)) uint8[87] memory roundIds = [ uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000006), uint8(0x0000000000000000000000000000000000000000000000000000000000000007), uint8(0x0000000000000000000000000000000000000000000000000000000000000008), uint8(0x0000000000000000000000000000000000000000000000000000000000000009), uint8(0x000000000000000000000000000000000000000000000000000000000000000b), uint8(0x000000000000000000000000000000000000000000000000000000000000000c), uint8(0x000000000000000000000000000000000000000000000000000000000000000d), uint8(0x0000000000000000000000000000000000000000000000000000000000000011), uint8(0x0000000000000000000000000000000000000000000000000000000000000012), uint8(0x0000000000000000000000000000000000000000000000000000000000000013), uint8(0x0000000000000000000000000000000000000000000000000000000000000014), uint8(0x0000000000000000000000000000000000000000000000000000000000000015), uint8(0x0000000000000000000000000000000000000000000000000000000000000016), uint8(0x0000000000000000000000000000000000000000000000000000000000000017), uint8(0x0000000000000000000000000000000000000000000000000000000000000018), uint8(0x000000000000000000000000000000000000000000000000000000000000000e), uint8(0x000000000000000000000000000000000000000000000000000000000000000f), uint8(0x0000000000000000000000000000000000000000000000000000000000000010), uint8(0x0000000000000000000000000000000000000000000000000000000000000019), uint8(0x000000000000000000000000000000000000000000000000000000000000001a), uint8(0x000000000000000000000000000000000000000000000000000000000000001b), uint8(0x000000000000000000000000000000000000000000000000000000000000001c), uint8(0x000000000000000000000000000000000000000000000000000000000000001d), uint8(0x0000000000000000000000000000000000000000000000000000000000000036), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x000000000000000000000000000000000000000000000000000000000000000a), uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000002), uint8(0x0000000000000000000000000000000000000000000000000000000000000003), uint8(0x0000000000000000000000000000000000000000000000000000000000000004), uint8(0x0000000000000000000000000000000000000000000000000000000000000011), uint8(0x0000000000000000000000000000000000000000000000000000000000000012), uint8(0x0000000000000000000000000000000000000000000000000000000000000013), uint8(0x000000000000000000000000000000000000000000000000000000000000001e), uint8(0x000000000000000000000000000000000000000000000000000000000000001f), uint8(0x0000000000000000000000000000000000000000000000000000000000000020), uint8(0x0000000000000000000000000000000000000000000000000000000000000021), uint8(0x0000000000000000000000000000000000000000000000000000000000000022), uint8(0x0000000000000000000000000000000000000000000000000000000000000023), uint8(0x0000000000000000000000000000000000000000000000000000000000000024), uint8(0x0000000000000000000000000000000000000000000000000000000000000025), uint8(0x0000000000000000000000000000000000000000000000000000000000000014), uint8(0x0000000000000000000000000000000000000000000000000000000000000015), uint8(0x0000000000000000000000000000000000000000000000000000000000000016), uint8(0x0000000000000000000000000000000000000000000000000000000000000017), uint8(0x0000000000000000000000000000000000000000000000000000000000000018), uint8(0x0000000000000000000000000000000000000000000000000000000000000019), uint8(0x000000000000000000000000000000000000000000000000000000000000001a), uint8(0x000000000000000000000000000000000000000000000000000000000000001b), uint8(0x000000000000000000000000000000000000000000000000000000000000001c), uint8(0x000000000000000000000000000000000000000000000000000000000000001d), uint8(0x0000000000000000000000000000000000000000000000000000000000000026), uint8(0x0000000000000000000000000000000000000000000000000000000000000027), uint8(0x0000000000000000000000000000000000000000000000000000000000000028), uint8(0x0000000000000000000000000000000000000000000000000000000000000029), uint8(0x000000000000000000000000000000000000000000000000000000000000002a), uint8(0x0000000000000000000000000000000000000000000000000000000000000035), uint8(0x000000000000000000000000000000000000000000000000000000000000002b), uint8(0x000000000000000000000000000000000000000000000000000000000000002c), uint8(0x000000000000000000000000000000000000000000000000000000000000002d), uint8(0x000000000000000000000000000000000000000000000000000000000000002e), uint8(0x000000000000000000000000000000000000000000000000000000000000002f), uint8(0x0000000000000000000000000000000000000000000000000000000000000030), uint8(0x0000000000000000000000000000000000000000000000000000000000000031), uint8(0x0000000000000000000000000000000000000000000000000000000000000032), uint8(0x0000000000000000000000000000000000000000000000000000000000000033), uint8(0x0000000000000000000000000000000000000000000000000000000000000034), uint8(0x0000000000000000000000000000000000000000000000000000000000000005) ]; address[87] memory stakers = [ address(0x00000000000000000000000000000000000000000000000000000000000007e0), address(0x0000000000000000000000000000000000000000000000000000000000004c4c), address(0x00000000000000000000000000000000000000000000000000000000000007e0), address(0x00000000000000000000000000000000000000000000000000000000000007e0), address(0x0000000000000000000000000000000000000000000000000000000000004ab4), address(0x0000000000000000000000000000000000000000000000000000000000004ab4), address(0x0000000000000000000000000000000000000000000000000000000000004ab4), address(0x0000000000000000000000000000000000000000000000000000000000004ab9), address(0x0000000000000000000000000000000000000000000000000000000000004ab9), address(0x0000000000000000000000000000000000000000000000000000000000004c4c), address(0x0000000000000000000000000000000000000000000000000000000000004ab6), address(0x0000000000000000000000000000000000000000000000000000000000004ab6), address(0x0000000000000000000000000000000000000000000000000000000000004ab6), address(0x0000000000000000000000000000000000000000000000000000000000004c4c), address(0x0000000000000000000000000000000000000000000000000000000000004ab9), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x000000000000000000000000000000000000000000000000000000000001cb71), address(0x0000000000000000000000004b3a0d73454b74172fe61b5a3eac2f34c0675546), address(0x0000000000000000000000004b3a0d73454b74172fe61b5a3eac2f34c0675546), address(0x0000000000000000000000004b3a0d73454b74172fe61b5a3eac2f34c0675546), address(0x00000000000000000000000000000000000000000000000000000000000010f2), address(0x0000000000000000000000000000000000000000000000000000000000005164), address(0x0000000000000000000000000000000000000000000000000000000000005164), address(0x0000000000000000000000000000000000000000000000000000000000005164), address(0x0000000000000000000000000000000000000000000000000000000000004ab5), address(0x0000000000000000000000000000000000000000000000000000000000004ab5), address(0x0000000000000000000000000000000000000000000000000000000000004ab5), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001f909), address(0x000000000000000000000000000000000000000000000000000000000001ee9d) ]; bytes32[87] memory tags = [ bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x616e736f6e616900000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x626c757500000000000000000000000000000000000000000000000000000000), bytes32(0x0000000000000000000000000000000000000000000000000000000000000000) ]; uint256 totalStakeAmount; for (uint256 i = 0; i < roundIds.length; i++) { uint256 roundID = uint256(roundIds[i]); uint256 stakeAmount = uint256(tournaments[0].rounds[roundID].stakes[stakers[i]][tags[i]].amount); totalStakeAmount = totalStakeAmount.add(stakeAmount); delete tournaments[0].rounds[roundID].stakes[stakers[i]][tags[i]]; } // clear tournament 0 stakes totalSupply = totalSupply.sub(totalStakeAmount); // clear tournament 0 rounds for (uint256 j = 1; j <= 54; j++) { delete tournaments[0].rounds[j]; } // clear tournament 0 delete tournaments[0]; // premine the difference between 11 million and totalSupply to multisig /* NOTE: Must be the final balance manipulation */ supply_cap = 11e24; _mint(multiSig); totalSupply = supply_cap; // Set minting variables initial_disbursement = 11e24; weekly_disbursement = 0; total_minted = 11e24; // Set delegateV3 previousDelegates.push(delegateContract); emit DelegateChanged(delegateContract, delegateV3); delegateContract = delegateV3; // Unfreeze and disable freezing stopped = false; stoppable = false; // Clear ownership - BE SURE THAT ownerIndex IS CLEARED PROPERLY! clearPending(); for (uint256 z = 0; z < owners.length; z++) { if (owners[z] != address(0)) { delete ownerIndex[owners[z]]; delete owners[z]; } } delete ownerIndex[address(0)]; // just in case... // Double check all previous owners have been cleared address[28] memory previousOwners = [ address(0x9608010323ed882a38ede9211d7691102b4f0ba0), address(0xb4207031bb146e90cab72230e0030823e02b923b), address(0x0387f0f731b518590433cd0b37e5b3eb9d3aef98), address(0x8ad69ae99804935d56704162e3f6a6f442d2ed4a), address(0x16e7115f6595668ca34f0cae8e76196274c14ff7), address(0xdc6997b078c709327649443d0765bcaa8e37aa6c), address(0x257988b95ee87c30844abec7736ff8a7d0be2eb1), address(0x70153f8f89f6869037fba270233409844f1f2e2e), address(0xae0338fefd533129694345659da36c4fe144e350), address(0x444ab8ad5c74f82fada4765f4a4e595109903f11), address(0x54479be2ca140163031efec1b7608b9759ec897a), address(0x193b78eb3668982f17862181d083ff2e2a4dcc39), address(0x6833b2469e80ef0c72aa784e27b2666ab43568f5), address(0x1d68938194004722b814f00003d3eca19357344a), address(0x54479be2ca140163031efec1b7608b9759ec897a), address(0x9608010323ed882a38ede9211d7691102b4f0ba0), address(0x638141cfe7c64fe9a22400e7d9f682d5f7b3a99b), address(0x769c72349aa599e7f63102cd3e4576fd8f306697), address(0xe6a2be73d9f8eb7a56f27276e748b05f7d6d7500), address(0x707ad29e43f053d267854478642e278e78243666), address(0x193b78eb3668982f17862181d083ff2e2a4dcc39), address(0x6833b2469e80ef0c72aa784e27b2666ab43568f5), address(0x1d68938194004722b814f00003d3eca19357344a), address(0x22926dd58213ab6601addfa9083b3d01b9e20fe8), address(0x769c72349aa599e7f63102cd3e4576fd8f306697), address(0xe6a2be73d9f8eb7a56f27276e748b05f7d6d7500), address(0x638141cfe7c64fe9a22400e7d9f682d5f7b3a99b), address(0x707ad29e43f053d267854478642e278e78243666) ]; for (uint256 y = 0; y < previousOwners.length; y++) { delete ownerIndex[previousOwners[y]]; } // transfer all ETH on the token contract to multisig multiSig.transfer(address(this).balance); return true; } /// @dev Used for clearing active round data from the old tournament /// contract. Can only be called by the new tournament address. function createRound(uint256 _tournamentID, uint256 _numRounds, uint256, uint256) public returns (bool ok) { // only the tournament can call this function. require(msg.sender == _TOURNAMENT); // validate number of rounds wont underflow require(_numRounds <= tournaments[_tournamentID].roundIDs.length); // iterate over each round and delete it. for (uint256 i = 1; i <= _numRounds; i++) { // get new array length reference uint256 newLength = tournaments[_tournamentID].roundIDs.length; // determine the last round ID. uint256 roundID = tournaments[_tournamentID].roundIDs[newLength - 1]; // delete the round. delete tournaments[_tournamentID].rounds[roundID]; // reduce the roundIDs array. tournaments[_tournamentID].roundIDs.length--; } return true; } /// @dev Used for clearing active stakes from the old tournament contract. /// Can only be called by the new tournament address. function destroyStake(address _staker, bytes32 _tag, uint256 _tournamentID, uint256 _roundID) public returns (bool ok) { // only the tournament can call this function. require(msg.sender == _TOURNAMENT); delete tournaments[_tournamentID].rounds[_roundID].stakes[_staker][_tag]; return true; } /// @dev Used to credit new tournament with active stake balances once /// intialization is completed and before performing the upgrade. /// Can only be called by the new tournament address. function withdraw(address, address, uint256 _stakeAmt) public returns (bool ok) { // only the tournament can call this function. require(msg.sender == _TOURNAMENT); // prevent from being called twice require(balanceOf[_TOURNAMENT] < _stakeAmt); balanceOf[_TOURNAMENT] = balanceOf[_TOURNAMENT].add(_stakeAmt); return true; } /// @dev Disabled function no longer used function mint(uint256) public pure returns (bool) { revert(); } /// @dev Disabled function no longer used function releaseStake(address, bytes32, uint256, uint256, uint256, bool) public pure returns (bool) { revert(); } /// @dev Disabled function no longer used function stake(uint256, bytes32, uint256, uint256, uint256) public pure returns (bool) { revert(); } /// @dev Disabled function no longer used function stakeOnBehalf(address, uint256, bytes32, uint256, uint256, uint256) public pure returns (bool) { revert(); } /// @dev Disabled function no longer used function createTournament(uint256) public pure returns (bool) { revert(); } //////////////////////// // Internal Functions // //////////////////////// function _burn(address _account, uint256 _value) internal { totalSupply = totalSupply.sub(_value); balanceOf[_account] = balanceOf[_account].sub(_value); emit Transfer(_account, address(0), _value); } function _mint(address multiSig) internal { uint256 mintAmount = supply_cap.sub(totalSupply); balanceOf[multiSig] = balanceOf[multiSig].add(mintAmount); emit Transfer(address(0), multiSig, mintAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numerai","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"delegateContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tournamentID","type":"uint256"},{"name":"_numRounds","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"createRound","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"}],"name":"releaseStake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"emergencyStop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"bytes32"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"stakeOnBehalf","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tournaments","outputs":[{"name":"creationTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"name":"changeShareable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contractUpgradable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"multiSig","type":"address"},{"name":"","type":"uint256"}],"name":"numeraiTransfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"initial_disbursement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"bytes32"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"stake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weekly_disbursement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_staker","type":"address"},{"name":"_tag","type":"bytes32"},{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"}],"name":"destroyStake","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deploy_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operation","type":"bytes32"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stoppable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total_minted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_operation","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"hasConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ownerIndex","type":"uint256"}],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableStopping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"},{"name":"_stakeAmt","type":"uint256"}],"name":"withdraw","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"createTournament","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supply_cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMintable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"previousDelegates","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_num_required","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldAddress","type":"address"},{"indexed":false,"name":"newAddress","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"staker","type":"address"},{"indexed":false,"name":"tag","type":"bytes32"},{"indexed":false,"name":"totalAmountStaked","type":"uint256"},{"indexed":false,"name":"confidence","type":"uint256"},{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"},{"indexed":false,"name":"resolutionTime","type":"uint256"}],"name":"RoundCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"}],"name":"TournamentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"stakerAddress","type":"address"},{"indexed":false,"name":"tag","type":"bytes32"}],"name":"StakeDestroyed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"stakerAddress","type":"address"},{"indexed":false,"name":"tag","type":"bytes32"},{"indexed":false,"name":"etherReward","type":"uint256"}],"name":"StakeReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Revoke","type":"event"}]
Contract Creation Code
60806040526101048054750100000000000000000000000000000000000000000030600160a060020a0319928316811760a860020a60ff02191691909117909255610105805490911690911790556a115eec47f6cf7e350000006101065569145c82ac800328189d89610107553480156200007957600080fd5b506040516200342438038062003424833981016040908152815160208084015160028054600160a060020a0319163390811790915560009081526101019092529281206001905592019182908290829082905b82518110156200016a578281815181101515620000e557fe5b6020908102909101015160016002830161010081106200010157fe5b0160006101000a815481600160a060020a030219169083600160a060020a0316021790555080600201610101600085848151811015156200013e57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002055600101620000cc565b61010060005411156200017c57600080fd5b50600055505030733361f79f0819fd5feaa37bea44c8a33d98b2a1cd1490506200022d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602481018290527f696e636f7272656374206465706c6f796d656e742061646472657373202d206360448201527f6865636b207375626d697474696e67206163636f756e742026206e6f6e63652e606482015290519081900360840190fd5b50506131e5806200023f6000396000f3006080604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101d957806318160ddd14610263578063296849071461028a5780632f54bf6e146102bb578063313ce567146102f05780633c2b0725146103055780635a3b7e421461031a5780635bc91b2f1461032f5780635c251cbf1461035057806363a599a41461038257806363ff195d1461039757806370a08231146103c75780637503e1b7146103e857806375f12b2114610400578063788023ff1461041557806378b150bd1461046c5780637c8d56b81461048157806386d1a69f146104a55780638b1d67f9146104ba5780638b93d3fc146104cf57806395d89b41146104f35780639e20afdf14610508578063a0712d681461051d578063a425b75214610535578063a5d8cdf21461055f578063b75c7dc614610574578063bb4872de1461058c578063be17be5d146105a1578063c2cf7326146105b6578063c41a360a146105da578063d08b89f3146105f2578063d9caed1214610607578063dc8452cd14610631578063dd20a53e1461051d578063dd62ed3e14610646578063eaac77ea1461066d578063f698bceb14610682578063fbd2dbad14610697575b005b3480156101e557600080fd5b506101ee6106af565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610228578181015183820152602001610210565b50505050905090810190601f1680156102555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026f57600080fd5b5061027861073e565b60408051918252519081900360200190f35b34801561029657600080fd5b5061029f610745565b60408051600160a060020a039092168252519081900360200190f35b3480156102c757600080fd5b506102dc600160a060020a0360043516610755565b604080519115158252519081900360200190f35b3480156102fc57600080fd5b50610278610772565b34801561031157600080fd5b5061029f610779565b34801561032657600080fd5b506101ee610789565b34801561033b57600080fd5b506102dc6004356024356044356064356107e5565b34801561035c57600080fd5b506102dc600160a060020a036004351660243560443560643560843560a43515156108c7565b34801561038e57600080fd5b506101d76108ce565b3480156103a357600080fd5b506102dc600160a060020a036004351660243560443560643560843560a4356108c7565b3480156103d357600080fd5b50610278600160a060020a036004351661093d565b3480156103f457600080fd5b50610278600435610950565b34801561040c57600080fd5b506102dc610963565b34801561042157600080fd5b50604080516020600480358082013583810280860185019096528085526101d79536959394602494938501929182918501908490808284375094975050933594506109859350505050565b34801561047857600080fd5b506102dc610a6f565b34801561048d57600080fd5b506102dc600160a060020a0360043516602435610a91565b3480156104b157600080fd5b506101d76128fb565b3480156104c657600080fd5b50610278612972565b3480156104db57600080fd5b506102dc6004356024356044356064356084356108c7565b3480156104ff57600080fd5b506101ee612979565b34801561051457600080fd5b506102786129d5565b34801561052957600080fd5b506102dc6004356108c7565b34801561054157600080fd5b506102dc600160a060020a03600435166024356044356064356129dc565b34801561056b57600080fd5b50610278612a51565b34801561058057600080fd5b506101d7600435612a58565b34801561059857600080fd5b506102dc612aef565b3480156105ad57600080fd5b50610278612b12565b3480156105c257600080fd5b506102dc600435600160a060020a0360243516612b19565b3480156105e657600080fd5b5061029f600435612b6e565b3480156105fe57600080fd5b506101d7612b91565b34801561061357600080fd5b506102dc600160a060020a0360043581169060243516604435612be0565b34801561063d57600080fd5b50610278612ce7565b34801561065257600080fd5b50610278600160a060020a0360043581169060243516612ced565b34801561067957600080fd5b50610278612d0b565b34801561068e57600080fd5b50610278612d12565b3480156106a357600080fd5b5061029f600435612d59565b610112805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107365780601f1061070b57610100808354040283529160200191610736565b820191906000526020600020905b81548152906001019060200180831161071957829003601f168201915b505050505081565b61010b5481565b61010554600160a060020a031681565b600160a060020a0316600090815261010160205260408120541190565b6101145481565b61010f54600160a060020a031681565b610111805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107365780601f1061070b57610100808354040283529160200191610736565b600080808033739dce896ddc20ba883600176678cbee2b8ba188a91461080a57600080fd5b600088815261010e602052604090206001015487111561082957600080fd5b600192505b8683116108b957600088815261010e6020526040902060010180549250600019830183811061085957fe5b60009182526020808320909101548a835261010e80835260408085208386526002808201865291862086815560018082018890559201869055948d90529252910180549192506108ad906000198301613118565b5060019092019161082e565b506001979650505050505050565b6000806000fd5b6108d733610755565b1561093b57610104547501000000000000000000000000000000000000000000900460ff16151561090457fe5b610104805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790555b565b61010c6020526000908152604090205481565b61010e6020526000908152604090205481565b6101045474010000000000000000000000000000000000000000900460ff1681565b600080366040518083838082843782019150509250505060405180910390206109ad81612d82565b15610a6957600091505b8351821015610a525783828151811015156109ce57fe5b60209081029091010151600183810161010081106109e857fe5b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508160010161010160008685815181101515610a2457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020556001909101906109b7565b6101006000541115610a6357600080fd5b60008390555b50505050565b61010f5474010000000000000000000000000000000000000000900460ff1681565b600080610a9c613141565b610aa4613141565b610aac613141565b600080600080600080610abd613161565b60003373249e479b571fea3de01f186cf22383a79b21ca7f14610adf57600080fd5b30600081815261010c60205260409020547329f709e42c95c604ba76e73316d325077f8eb7b29d50610b119190612ece565b600080805261010c6020527e37b9de465899ac5dfe32533f89054c09ae507e4a60054394436a626dc3060e54610b479190612ece565b610ae060405190810160405280600260ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600360ff1660ff168152602001600260ff1660ff168152602001600660ff1660ff168152602001600760ff1660ff168152602001600860ff1660ff168152602001600960ff1660ff168152602001600b60ff1660ff168152602001600c60ff1660ff168152602001600d60ff1660ff168152602001601160ff1660ff168152602001601260ff1660ff168152602001601360ff1660ff168152602001601460ff1660ff168152602001601560ff1660ff168152602001601660ff1660ff168152602001601760ff1660ff168152602001601860ff1660ff168152602001600e60ff1660ff168152602001600f60ff1660ff168152602001601060ff1660ff168152602001601960ff1660ff168152602001601a60ff1660ff168152602001601b60ff1660ff168152602001601c60ff1660ff168152602001601d60ff1660ff168152602001603660ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600a60ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001601160ff1660ff168152602001601260ff1660ff168152602001601360ff1660ff168152602001601e60ff1660ff168152602001601f60ff1660ff168152602001602060ff1660ff168152602001602160ff1660ff168152602001602260ff1660ff168152602001602360ff1660ff168152602001602460ff1660ff168152602001602560ff1660ff168152602001601460ff1660ff168152602001601560ff1660ff168152602001601660ff1660ff168152602001601760ff1660ff168152602001601860ff1660ff168152602001601960ff1660ff168152602001601a60ff1660ff168152602001601b60ff1660ff168152602001601c60ff1660ff168152602001601d60ff1660ff168152602001602660ff1660ff168152602001602760ff1660ff168152602001602860ff1660ff168152602001602960ff1660ff168152602001602a60ff1660ff168152602001603560ff1660ff168152602001602b60ff1660ff168152602001602c60ff1660ff168152602001602d60ff1660ff168152602001602e60ff1660ff168152602001602f60ff1660ff168152602001603060ff1660ff168152602001603160ff1660ff168152602001603260ff1660ff168152602001603360ff1660ff168152602001603460ff1660ff168152602001600560ff1660ff168152509a50610ae0604051908101604052806107e0600160a060020a0316600160a060020a03168152602001614c4c600160a060020a0316600160a060020a031681526020016107e0600160a060020a0316600160a060020a031681526020016107e0600160a060020a0316600160a060020a03168152602001614ab4600160a060020a0316600160a060020a03168152602001614ab4600160a060020a0316600160a060020a03168152602001614ab4600160a060020a0316600160a060020a03168152602001614ab9600160a060020a0316600160a060020a03168152602001614ab9600160a060020a0316600160a060020a03168152602001614c4c600160a060020a0316600160a060020a03168152602001614ab6600160a060020a0316600160a060020a03168152602001614ab6600160a060020a0316600160a060020a03168152602001614ab6600160a060020a0316600160a060020a03168152602001614c4c600160a060020a0316600160a060020a03168152602001614ab9600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a03168152602001734b3a0d73454b74172fe61b5a3eac2f34c0675546600160a060020a0316600160a060020a03168152602001734b3a0d73454b74172fe61b5a3eac2f34c0675546600160a060020a0316600160a060020a03168152602001734b3a0d73454b74172fe61b5a3eac2f34c0675546600160a060020a0316600160a060020a031681526020016110f2600160a060020a0316600160a060020a03168152602001615164600160a060020a0316600160a060020a03168152602001615164600160a060020a0316600160a060020a03168152602001615164600160a060020a0316600160a060020a03168152602001614ab5600160a060020a0316600160a060020a03168152602001614ab5600160a060020a0316600160a060020a03168152602001614ab5600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201ee9d600160a060020a0316600160a060020a03168152509950610ae06040519081016040528060006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c75750260010260001916600019168152602001600060010260001916600019168152509850600096505b6057871015612333578a87605781106121c857fe5b6020908102919091015160ff1660008181527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077c90925260408220909750600301908b896057811061221557fe5b6020020151600160a060020a0316600160a060020a0316815260200190815260200160002060008a8960578110151561224a57fe5b602090810291909101518252810191909152604001600020546fffffffffffffffffffffffffffffffff169450612287888663ffffffff612f6816565b60008781527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077c602052604081209199506003909101908b89605781106122c957fe5b6020020151600160a060020a0316600160a060020a0316815260200190815260200160002060008a896057811015156122fe57fe5b60209081029190910151825281019190915260400160009081209081556001908101805461ffff1916905596909601956121b3565b61010b54612347908963ffffffff612f8116565b61010b55600193505b603684116123a25760008481527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077c60205260408120818155600180820183905560029091019190915590930192612350565b600080805261010e6020527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077a818155906123fc7f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077b82613181565b50506a09195731e2ce35eb000000610106556124178f612f98565b6101065461010b556a09195731e2ce35eb000000610108819055600061010781905561010a9190915561010f8054610110805460018101825593527fc992a4f4c614c6258b392474376b00c403ba311ad1b24c06537a7c109387f977909201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0393841617905554604080519183168252918e16602082015281517fef9fc1dee6010109e6e3b21e51d44028e246dbad8a5a71ea192a30b19e1f457f929181900390910190a161010f805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038e16179055610104805475ffff00000000000000000000000000000000000000001916905561252d613039565b600092505b6101008310156125c3576000600184610100811061254c57fe5b0154600160a060020a0316146125b8576101016000600185610100811061256f57fe5b0154600160a060020a031681526020810191909152604001600090812055600183610100811061259b57fe5b01805473ffffffffffffffffffffffffffffffffffffffff191690555b600190920191612532565b5050600080805261010160209081527f0cdd55771c7d27dcc6a0e4e270b6c2288741ffbaa23147ee33eabaa4ce4aa59f8290556040805161038081018252739608010323ed882a38ede9211d7691102b4f0ba080825273b4207031bb146e90cab72230e0030823e02b923b93820193909352730387f0f731b518590433cd0b37e5b3eb9d3aef9891810191909152738ad69ae99804935d56704162e3f6a6f442d2ed4a60608201527316e7115f6595668ca34f0cae8e76196274c14ff7608082015273dc6997b078c709327649443d0765bcaa8e37aa6c60a082015273257988b95ee87c30844abec7736ff8a7d0be2eb160c08201527370153f8f89f6869037fba270233409844f1f2e2e60e082015273ae0338fefd533129694345659da36c4fe144e35061010082015273444ab8ad5c74f82fada4765f4a4e595109903f116101208201527354479be2ca140163031efec1b7608b9759ec897a610140820181905273193b78eb3668982f17862181d083ff2e2a4dcc396101608301819052736833b2469e80ef0c72aa784e27b2666ab43568f56101808401819052731d68938194004722b814f00003d3eca19357344a6101a085018190526101c08501939093526101e084019490945273638141cfe7c64fe9a22400e7d9f682d5f7b3a99b610200840181905273769c72349aa599e7f63102cd3e4576fd8f306697610220850181905273e6a2be73d9f8eb7a56f27276e748b05f7d6d7500610240860181905273707ad29e43f053d267854478642e278e7824366661026087018190526102808701949094526102a08601969096526102c08501939093527322926dd58213ab6601addfa9083b3d01b9e20fe86102e0850152610300840192909252610320830193909352610340820152610360810191909152905b601c8110156128a25761010160008383601c811061287657fe5b60209081029190910151600160a060020a0316825281019190915260400160009081205560010161285c565b8e600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501580156128e5573d6000803e3d6000fd5b5060019f9e505050505050505050505050505050565b60003660405180838380828437820191505092505050604051809103902061292281612d82565b1561296f57610104547501000000000000000000000000000000000000000000900460ff16151561294f57fe5b610104805474ff0000000000000000000000000000000000000000191690555b50565b6101085481565b610113805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107365780601f1061070b57610100808354040283529160200191610736565b6101075481565b600033739dce896ddc20ba883600176678cbee2b8ba188a9146129fe57600080fd5b50600082815261010e602090815260408083208484526002018252808320600160a060020a0388168452600301825280832086845290915281209081556001908101805461ffff19169055949350505050565b6101095481565b33600090815261010160205260408120549080821515612a7757610a69565b50506000828152610102602052604081206001810154600284900a929083161115610a6957805460019081018255810180548390039055604080513381526020810186905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a150505050565b610104547501000000000000000000000000000000000000000000900460ff1681565b61010a5481565b600082815261010260209081526040808320600160a060020a038516845261010190925282205482811515612b515760009350612b65565b8160020a9050808360010154166000141593505b50505092915050565b600060018281016101008110612b8057fe5b0154600160a060020a031692915050565b600036604051808383808284378201915050925050506040518091039020612bb881612d82565b1561296f57610104805475ff0000000000000000000000000000000000000000001916905550565b600033739dce896ddc20ba883600176678cbee2b8ba188a914612c0257600080fd5b739dce896ddc20ba883600176678cbee2b8ba188a960005261010c6020527f2cc7b3acff12d09482d165d76c732c7ad6e3385966917f781b502658d7fd6869548211612c4d57600080fd5b739dce896ddc20ba883600176678cbee2b8ba188a960005261010c6020527f2cc7b3acff12d09482d165d76c732c7ad6e3385966917f781b502658d7fd686954612c9d908363ffffffff612f6816565b739dce896ddc20ba883600176678cbee2b8ba188a960005261010c6020527f2cc7b3acff12d09482d165d76c732c7ad6e3385966917f781b502658d7fd6869555060019392505050565b60005481565b61010d60209081526000928352604080842090915290825290205481565b6101065481565b6000612d53612d4a6101085462093a80612d3b61010754612d3642610109546130c0565b6130dd565b811515612d4457fe5b046130fe565b61010a546130c0565b90505b90565b610110805482908110612d6857fe5b600091825260209091200154600160a060020a0316905081565b33600090815261010160205260408120548180821515612da157612ec6565b60008581526101026020526040902080549092501515612e0057600080548355600180840191909155610103805491612ddc91908301613118565b6002830181905561010380548792908110612df357fe5b6000918252602090912001555b8260020a90508082600101541660001415612ec657604080513381526020810187905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18154600110612eb3576000858152610102602052604090206002015461010380549091908110612e7c57fe5b6000918252602080832090910182905586825261010290526040812081815560018082018390556002909101919091559350612ec6565b8154600019018255600182018054821790555b505050919050565b61010b54612ee2908263ffffffff612f8116565b61010b55600160a060020a038216600090815261010c6020526040902054612f10908263ffffffff612f8116565b600160a060020a038316600081815261010c60209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600082820183811015612f7a57600080fd5b9392505050565b60008083831115612f9157600080fd5b5050900390565b6000612fb361010b5461010654612f8190919063ffffffff16565b600160a060020a038316600090815261010c6020526040902054909150612fe0908263ffffffff612f6816565b600160a060020a038316600081815261010c602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6101035460005b818110156130af5761010380548290811061305757fe5b600091825260209091200154156130a75761010260006101038381548110151561307d57fe5b60009182526020808320909101548352820192909252604001812081815560018101829055600201555b600101613040565b6130bc6101036000613181565b5050565b60008183038383118015906130d55750838111155b1515612f7a57fe5b60008282028315806130d557508284828115156130f657fe5b0414612f7a57fe5b60008282018381108015906130d5575082811015612f7a57fe5b81548183558181111561313c5760008381526020902061313c91810190830161319b565b505050565b610ae0604051908101604052806057906020820280388339509192915050565b61038060405190810160405280601c906020820280388339509192915050565b508054600082559060005260206000209081019061296f91905b612d5691905b808211156131b557600081556001016131a1565b50905600a165627a7a72305820e7fe788a6e1fe03280665929aa5af9080126dbc414f9b60fb58a97fa46aa6fbd0029000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000257988b95ee87c30844abec7736ff8a7d0be2eb100000000000000000000000070153f8f89f6869037fba270233409844f1f2e2e000000000000000000000000ae0338fefd533129694345659da36c4fe144e350000000000000000000000000444ab8ad5c74f82fada4765f4a4e595109903f11
Deployed Bytecode
0x6080604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101d957806318160ddd14610263578063296849071461028a5780632f54bf6e146102bb578063313ce567146102f05780633c2b0725146103055780635a3b7e421461031a5780635bc91b2f1461032f5780635c251cbf1461035057806363a599a41461038257806363ff195d1461039757806370a08231146103c75780637503e1b7146103e857806375f12b2114610400578063788023ff1461041557806378b150bd1461046c5780637c8d56b81461048157806386d1a69f146104a55780638b1d67f9146104ba5780638b93d3fc146104cf57806395d89b41146104f35780639e20afdf14610508578063a0712d681461051d578063a425b75214610535578063a5d8cdf21461055f578063b75c7dc614610574578063bb4872de1461058c578063be17be5d146105a1578063c2cf7326146105b6578063c41a360a146105da578063d08b89f3146105f2578063d9caed1214610607578063dc8452cd14610631578063dd20a53e1461051d578063dd62ed3e14610646578063eaac77ea1461066d578063f698bceb14610682578063fbd2dbad14610697575b005b3480156101e557600080fd5b506101ee6106af565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610228578181015183820152602001610210565b50505050905090810190601f1680156102555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026f57600080fd5b5061027861073e565b60408051918252519081900360200190f35b34801561029657600080fd5b5061029f610745565b60408051600160a060020a039092168252519081900360200190f35b3480156102c757600080fd5b506102dc600160a060020a0360043516610755565b604080519115158252519081900360200190f35b3480156102fc57600080fd5b50610278610772565b34801561031157600080fd5b5061029f610779565b34801561032657600080fd5b506101ee610789565b34801561033b57600080fd5b506102dc6004356024356044356064356107e5565b34801561035c57600080fd5b506102dc600160a060020a036004351660243560443560643560843560a43515156108c7565b34801561038e57600080fd5b506101d76108ce565b3480156103a357600080fd5b506102dc600160a060020a036004351660243560443560643560843560a4356108c7565b3480156103d357600080fd5b50610278600160a060020a036004351661093d565b3480156103f457600080fd5b50610278600435610950565b34801561040c57600080fd5b506102dc610963565b34801561042157600080fd5b50604080516020600480358082013583810280860185019096528085526101d79536959394602494938501929182918501908490808284375094975050933594506109859350505050565b34801561047857600080fd5b506102dc610a6f565b34801561048d57600080fd5b506102dc600160a060020a0360043516602435610a91565b3480156104b157600080fd5b506101d76128fb565b3480156104c657600080fd5b50610278612972565b3480156104db57600080fd5b506102dc6004356024356044356064356084356108c7565b3480156104ff57600080fd5b506101ee612979565b34801561051457600080fd5b506102786129d5565b34801561052957600080fd5b506102dc6004356108c7565b34801561054157600080fd5b506102dc600160a060020a03600435166024356044356064356129dc565b34801561056b57600080fd5b50610278612a51565b34801561058057600080fd5b506101d7600435612a58565b34801561059857600080fd5b506102dc612aef565b3480156105ad57600080fd5b50610278612b12565b3480156105c257600080fd5b506102dc600435600160a060020a0360243516612b19565b3480156105e657600080fd5b5061029f600435612b6e565b3480156105fe57600080fd5b506101d7612b91565b34801561061357600080fd5b506102dc600160a060020a0360043581169060243516604435612be0565b34801561063d57600080fd5b50610278612ce7565b34801561065257600080fd5b50610278600160a060020a0360043581169060243516612ced565b34801561067957600080fd5b50610278612d0b565b34801561068e57600080fd5b50610278612d12565b3480156106a357600080fd5b5061029f600435612d59565b610112805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107365780601f1061070b57610100808354040283529160200191610736565b820191906000526020600020905b81548152906001019060200180831161071957829003601f168201915b505050505081565b61010b5481565b61010554600160a060020a031681565b600160a060020a0316600090815261010160205260408120541190565b6101145481565b61010f54600160a060020a031681565b610111805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107365780601f1061070b57610100808354040283529160200191610736565b600080808033739dce896ddc20ba883600176678cbee2b8ba188a91461080a57600080fd5b600088815261010e602052604090206001015487111561082957600080fd5b600192505b8683116108b957600088815261010e6020526040902060010180549250600019830183811061085957fe5b60009182526020808320909101548a835261010e80835260408085208386526002808201865291862086815560018082018890559201869055948d90529252910180549192506108ad906000198301613118565b5060019092019161082e565b506001979650505050505050565b6000806000fd5b6108d733610755565b1561093b57610104547501000000000000000000000000000000000000000000900460ff16151561090457fe5b610104805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790555b565b61010c6020526000908152604090205481565b61010e6020526000908152604090205481565b6101045474010000000000000000000000000000000000000000900460ff1681565b600080366040518083838082843782019150509250505060405180910390206109ad81612d82565b15610a6957600091505b8351821015610a525783828151811015156109ce57fe5b60209081029091010151600183810161010081106109e857fe5b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508160010161010160008685815181101515610a2457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020556001909101906109b7565b6101006000541115610a6357600080fd5b60008390555b50505050565b61010f5474010000000000000000000000000000000000000000900460ff1681565b600080610a9c613141565b610aa4613141565b610aac613141565b600080600080600080610abd613161565b60003373249e479b571fea3de01f186cf22383a79b21ca7f14610adf57600080fd5b30600081815261010c60205260409020547329f709e42c95c604ba76e73316d325077f8eb7b29d50610b119190612ece565b600080805261010c6020527e37b9de465899ac5dfe32533f89054c09ae507e4a60054394436a626dc3060e54610b479190612ece565b610ae060405190810160405280600260ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600360ff1660ff168152602001600260ff1660ff168152602001600660ff1660ff168152602001600760ff1660ff168152602001600860ff1660ff168152602001600960ff1660ff168152602001600b60ff1660ff168152602001600c60ff1660ff168152602001600d60ff1660ff168152602001601160ff1660ff168152602001601260ff1660ff168152602001601360ff1660ff168152602001601460ff1660ff168152602001601560ff1660ff168152602001601660ff1660ff168152602001601760ff1660ff168152602001601860ff1660ff168152602001600e60ff1660ff168152602001600f60ff1660ff168152602001601060ff1660ff168152602001601960ff1660ff168152602001601a60ff1660ff168152602001601b60ff1660ff168152602001601c60ff1660ff168152602001601d60ff1660ff168152602001603660ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600a60ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001600260ff1660ff168152602001600360ff1660ff168152602001600460ff1660ff168152602001601160ff1660ff168152602001601260ff1660ff168152602001601360ff1660ff168152602001601e60ff1660ff168152602001601f60ff1660ff168152602001602060ff1660ff168152602001602160ff1660ff168152602001602260ff1660ff168152602001602360ff1660ff168152602001602460ff1660ff168152602001602560ff1660ff168152602001601460ff1660ff168152602001601560ff1660ff168152602001601660ff1660ff168152602001601760ff1660ff168152602001601860ff1660ff168152602001601960ff1660ff168152602001601a60ff1660ff168152602001601b60ff1660ff168152602001601c60ff1660ff168152602001601d60ff1660ff168152602001602660ff1660ff168152602001602760ff1660ff168152602001602860ff1660ff168152602001602960ff1660ff168152602001602a60ff1660ff168152602001603560ff1660ff168152602001602b60ff1660ff168152602001602c60ff1660ff168152602001602d60ff1660ff168152602001602e60ff1660ff168152602001602f60ff1660ff168152602001603060ff1660ff168152602001603160ff1660ff168152602001603260ff1660ff168152602001603360ff1660ff168152602001603460ff1660ff168152602001600560ff1660ff168152509a50610ae0604051908101604052806107e0600160a060020a0316600160a060020a03168152602001614c4c600160a060020a0316600160a060020a031681526020016107e0600160a060020a0316600160a060020a031681526020016107e0600160a060020a0316600160a060020a03168152602001614ab4600160a060020a0316600160a060020a03168152602001614ab4600160a060020a0316600160a060020a03168152602001614ab4600160a060020a0316600160a060020a03168152602001614ab9600160a060020a0316600160a060020a03168152602001614ab9600160a060020a0316600160a060020a03168152602001614c4c600160a060020a0316600160a060020a03168152602001614ab6600160a060020a0316600160a060020a03168152602001614ab6600160a060020a0316600160a060020a03168152602001614ab6600160a060020a0316600160a060020a03168152602001614c4c600160a060020a0316600160a060020a03168152602001614ab9600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a031681526020016201cb71600160a060020a0316600160a060020a03168152602001734b3a0d73454b74172fe61b5a3eac2f34c0675546600160a060020a0316600160a060020a03168152602001734b3a0d73454b74172fe61b5a3eac2f34c0675546600160a060020a0316600160a060020a03168152602001734b3a0d73454b74172fe61b5a3eac2f34c0675546600160a060020a0316600160a060020a031681526020016110f2600160a060020a0316600160a060020a03168152602001615164600160a060020a0316600160a060020a03168152602001615164600160a060020a0316600160a060020a03168152602001615164600160a060020a0316600160a060020a03168152602001614ab5600160a060020a0316600160a060020a03168152602001614ab5600160a060020a0316600160a060020a03168152602001614ab5600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201f909600160a060020a0316600160a060020a031681526020016201ee9d600160a060020a0316600160a060020a03168152509950610ae06040519081016040528060006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160c860020a66616e736f6e6169026001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160006001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c7575026001026000191660001916815260200160e060020a63626c75750260010260001916600019168152602001600060010260001916600019168152509850600096505b6057871015612333578a87605781106121c857fe5b6020908102919091015160ff1660008181527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077c90925260408220909750600301908b896057811061221557fe5b6020020151600160a060020a0316600160a060020a0316815260200190815260200160002060008a8960578110151561224a57fe5b602090810291909101518252810191909152604001600020546fffffffffffffffffffffffffffffffff169450612287888663ffffffff612f6816565b60008781527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077c602052604081209199506003909101908b89605781106122c957fe5b6020020151600160a060020a0316600160a060020a0316815260200190815260200160002060008a896057811015156122fe57fe5b60209081029190910151825281019190915260400160009081209081556001908101805461ffff1916905596909601956121b3565b61010b54612347908963ffffffff612f8116565b61010b55600193505b603684116123a25760008481527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077c60205260408120818155600180820183905560029091019190915590930192612350565b600080805261010e6020527f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077a818155906123fc7f051c66a1c4e909f3cc567677acb4ca5f35058ebb68a694a555c82499353d077b82613181565b50506a09195731e2ce35eb000000610106556124178f612f98565b6101065461010b556a09195731e2ce35eb000000610108819055600061010781905561010a9190915561010f8054610110805460018101825593527fc992a4f4c614c6258b392474376b00c403ba311ad1b24c06537a7c109387f977909201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0393841617905554604080519183168252918e16602082015281517fef9fc1dee6010109e6e3b21e51d44028e246dbad8a5a71ea192a30b19e1f457f929181900390910190a161010f805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038e16179055610104805475ffff00000000000000000000000000000000000000001916905561252d613039565b600092505b6101008310156125c3576000600184610100811061254c57fe5b0154600160a060020a0316146125b8576101016000600185610100811061256f57fe5b0154600160a060020a031681526020810191909152604001600090812055600183610100811061259b57fe5b01805473ffffffffffffffffffffffffffffffffffffffff191690555b600190920191612532565b5050600080805261010160209081527f0cdd55771c7d27dcc6a0e4e270b6c2288741ffbaa23147ee33eabaa4ce4aa59f8290556040805161038081018252739608010323ed882a38ede9211d7691102b4f0ba080825273b4207031bb146e90cab72230e0030823e02b923b93820193909352730387f0f731b518590433cd0b37e5b3eb9d3aef9891810191909152738ad69ae99804935d56704162e3f6a6f442d2ed4a60608201527316e7115f6595668ca34f0cae8e76196274c14ff7608082015273dc6997b078c709327649443d0765bcaa8e37aa6c60a082015273257988b95ee87c30844abec7736ff8a7d0be2eb160c08201527370153f8f89f6869037fba270233409844f1f2e2e60e082015273ae0338fefd533129694345659da36c4fe144e35061010082015273444ab8ad5c74f82fada4765f4a4e595109903f116101208201527354479be2ca140163031efec1b7608b9759ec897a610140820181905273193b78eb3668982f17862181d083ff2e2a4dcc396101608301819052736833b2469e80ef0c72aa784e27b2666ab43568f56101808401819052731d68938194004722b814f00003d3eca19357344a6101a085018190526101c08501939093526101e084019490945273638141cfe7c64fe9a22400e7d9f682d5f7b3a99b610200840181905273769c72349aa599e7f63102cd3e4576fd8f306697610220850181905273e6a2be73d9f8eb7a56f27276e748b05f7d6d7500610240860181905273707ad29e43f053d267854478642e278e7824366661026087018190526102808701949094526102a08601969096526102c08501939093527322926dd58213ab6601addfa9083b3d01b9e20fe86102e0850152610300840192909252610320830193909352610340820152610360810191909152905b601c8110156128a25761010160008383601c811061287657fe5b60209081029190910151600160a060020a0316825281019190915260400160009081205560010161285c565b8e600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501580156128e5573d6000803e3d6000fd5b5060019f9e505050505050505050505050505050565b60003660405180838380828437820191505092505050604051809103902061292281612d82565b1561296f57610104547501000000000000000000000000000000000000000000900460ff16151561294f57fe5b610104805474ff0000000000000000000000000000000000000000191690555b50565b6101085481565b610113805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107365780601f1061070b57610100808354040283529160200191610736565b6101075481565b600033739dce896ddc20ba883600176678cbee2b8ba188a9146129fe57600080fd5b50600082815261010e602090815260408083208484526002018252808320600160a060020a0388168452600301825280832086845290915281209081556001908101805461ffff19169055949350505050565b6101095481565b33600090815261010160205260408120549080821515612a7757610a69565b50506000828152610102602052604081206001810154600284900a929083161115610a6957805460019081018255810180548390039055604080513381526020810186905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a150505050565b610104547501000000000000000000000000000000000000000000900460ff1681565b61010a5481565b600082815261010260209081526040808320600160a060020a038516845261010190925282205482811515612b515760009350612b65565b8160020a9050808360010154166000141593505b50505092915050565b600060018281016101008110612b8057fe5b0154600160a060020a031692915050565b600036604051808383808284378201915050925050506040518091039020612bb881612d82565b1561296f57610104805475ff0000000000000000000000000000000000000000001916905550565b600033739dce896ddc20ba883600176678cbee2b8ba188a914612c0257600080fd5b739dce896ddc20ba883600176678cbee2b8ba188a960005261010c6020527f2cc7b3acff12d09482d165d76c732c7ad6e3385966917f781b502658d7fd6869548211612c4d57600080fd5b739dce896ddc20ba883600176678cbee2b8ba188a960005261010c6020527f2cc7b3acff12d09482d165d76c732c7ad6e3385966917f781b502658d7fd686954612c9d908363ffffffff612f6816565b739dce896ddc20ba883600176678cbee2b8ba188a960005261010c6020527f2cc7b3acff12d09482d165d76c732c7ad6e3385966917f781b502658d7fd6869555060019392505050565b60005481565b61010d60209081526000928352604080842090915290825290205481565b6101065481565b6000612d53612d4a6101085462093a80612d3b61010754612d3642610109546130c0565b6130dd565b811515612d4457fe5b046130fe565b61010a546130c0565b90505b90565b610110805482908110612d6857fe5b600091825260209091200154600160a060020a0316905081565b33600090815261010160205260408120548180821515612da157612ec6565b60008581526101026020526040902080549092501515612e0057600080548355600180840191909155610103805491612ddc91908301613118565b6002830181905561010380548792908110612df357fe5b6000918252602090912001555b8260020a90508082600101541660001415612ec657604080513381526020810187905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18154600110612eb3576000858152610102602052604090206002015461010380549091908110612e7c57fe5b6000918252602080832090910182905586825261010290526040812081815560018082018390556002909101919091559350612ec6565b8154600019018255600182018054821790555b505050919050565b61010b54612ee2908263ffffffff612f8116565b61010b55600160a060020a038216600090815261010c6020526040902054612f10908263ffffffff612f8116565b600160a060020a038316600081815261010c60209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600082820183811015612f7a57600080fd5b9392505050565b60008083831115612f9157600080fd5b5050900390565b6000612fb361010b5461010654612f8190919063ffffffff16565b600160a060020a038316600090815261010c6020526040902054909150612fe0908263ffffffff612f6816565b600160a060020a038316600081815261010c602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6101035460005b818110156130af5761010380548290811061305757fe5b600091825260209091200154156130a75761010260006101038381548110151561307d57fe5b60009182526020808320909101548352820192909252604001812081815560018101829055600201555b600101613040565b6130bc6101036000613181565b5050565b60008183038383118015906130d55750838111155b1515612f7a57fe5b60008282028315806130d557508284828115156130f657fe5b0414612f7a57fe5b60008282018381108015906130d5575082811015612f7a57fe5b81548183558181111561313c5760008381526020902061313c91810190830161319b565b505050565b610ae0604051908101604052806057906020820280388339509192915050565b61038060405190810160405280601c906020820280388339509192915050565b508054600082559060005260206000209081019061296f91905b612d5691905b808211156131b557600081556001016131a1565b50905600a165627a7a72305820e7fe788a6e1fe03280665929aa5af9080126dbc414f9b60fb58a97fa46aa6fbd0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000257988b95ee87c30844abec7736ff8a7d0be2eb100000000000000000000000070153f8f89f6869037fba270233409844f1f2e2e000000000000000000000000ae0338fefd533129694345659da36c4fe144e350000000000000000000000000444ab8ad5c74f82fada4765f4a4e595109903f11
-----Decoded View---------------
Arg [0] : _owners (address[]): 0x257988B95EE87c30844aBEc7736Ff8a7D0bE2EB1,0x70153f8F89F6869037FBA270233409844F1F2E2e,0xaE0338Fefd533129694345659dA36C4fe144e350,0x444ab8aD5C74f82fada4765F4a4E595109903f11
Arg [1] : _num_required (uint256): 4
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 000000000000000000000000257988b95ee87c30844abec7736ff8a7d0be2eb1
Arg [4] : 00000000000000000000000070153f8f89f6869037fba270233409844f1f2e2e
Arg [5] : 000000000000000000000000ae0338fefd533129694345659da36c4fe144e350
Arg [6] : 000000000000000000000000444ab8ad5c74f82fada4765f4a4e595109903f11
Deployed Bytecode Sourcemap
13907:33889:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14129:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14129:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14129:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11178:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11178:26:0;;;;;;;;;;;;;;;;;;;;10786:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10786:29:0;;;;;;;;-1:-1:-1;;;;;10786:29:0;;;;;;;;;;;;;;5881:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5881:97:0;-1:-1:-1;;;;;5881:97:0;;;;;;;;;;;;;;;;;;;;;;;14181:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14181:23:0;;;;13980:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13980:31:0;;;;14098:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14098:22:0;;;;44364:950;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;44364:950:0;;;;;;;;;;;46592:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;46592:127:0;-1:-1:-1;;;;;46592:127:0;;;;;;;;;;;;;;;;;10154:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10154:95:0;;;;46943:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;46943:131:0;-1:-1:-1;;;;;46943:131:0;;;;;;;;;;;;;;;11211:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11211:45:0;-1:-1:-1;;;;;11211:45:0;;;;;11338:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11338:47:0;;;;;9812:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9812:19:0;;;;4895:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4895:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4895:296:0;;-1:-1:-1;;4895:296:0;;;-1:-1:-1;4895:296:0;;-1:-1:-1;;;;4895:296:0;14018:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14018:30:0;;;;16012:28196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16012:28196:0;-1:-1:-1;;;;;16012:28196:0;;;;;;;10342:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10342:111:0;;;;11004:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11004:35:0;;;;46774:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;46774:114:0;;;;;;;;;;;;;14154:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14154:20:0;;;;10935:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10935:60:0;;;;46460:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;46460:77:0;;;;;45466:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;45466:333:0;-1:-1:-1;;;;;45466:333:0;;;;;;;;;;;11046:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11046:26:0;;;;5271:403;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5271:403:0;;;;;9836:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9836:28:0;;;;11081:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11081:27:0;;;;5984:382;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5984:382:0;;;-1:-1:-1;;;;;5984:382:0;;;;;5753:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5753:122:0;;;;;10559:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10559:97:0;;;;46023:382;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;46023:382:0;-1:-1:-1;;;;;46023:382:0;;;;;;;;;;;;2371:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2371:20:0;;;;11263:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11263:66:0;-1:-1:-1;;;;;11263:66:0;;;;;;;;;;10875:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10875:39:0;;;;13227:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13227:337:0;;;;14055:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14055:34:0;;;;;14129:18;;;;;;;;;;;;;;;-1:-1:-1;;14129:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11178:26::-;;;;:::o;10786:29::-;;;-1:-1:-1;;;;;10786:29:0;;:::o;5881:97::-;-1:-1:-1;;;;;5951:17:0;5931:4;5951:17;;;:10;:17;;;;;;:21;;5881:97::o;14181:23::-;;;;:::o;13980:31::-;;;-1:-1:-1;;;;;13980:31:0;;:::o;14098:22::-;;;;;;;;;;;;;;;-1:-1:-1;;14098:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44364:950;44462:7;;;;44546:10;14444:42;44546:25;44538:34;;;;;;44660:26;;;;:11;:26;;;;;:35;;:42;44646:56;;;44638:65;;;;;;44784:1;44772:13;;44767:516;44787:15;;;44767:516;;44893:26;;;;:11;:26;;;;;:35;;:42;;;-1:-1:-1;;;45051:13:0;;45015:50;;;;;;;;;;;;;;;;;;;45123:26;;;:11;:26;;;;;;;:42;;;:33;;;;:42;;;;;45116:49;;;;;;;;;;;;;;;45225:26;;;;;;:35;;:44;;45015:50;;-1:-1:-1;45225:44:0;;-1:-1:-1;;45225:44:0;;;:::i;:::-;-1:-1:-1;44804:3:0;;;;;44767:516;;;-1:-1:-1;45302:4:0;;44364:950;-1:-1:-1;;;;;;;44364:950:0:o;46592:127::-;46686:4;46703:8;;;10154:95;3088:19;3096:10;3088:7;:19::i;:::-;3084:33;;;10212:9;;;;;;;10205:17;;;;;;10229:7;:14;;-1:-1:-1;;10229:14:0;;;;;3084:33;10154:95::o;11211:45::-;;;;;;;;;;;;;:::o;11338:47::-;;;;;;;;;;;;;:::o;9812:19::-;;;;;;;;;:::o;4895:296::-;4998:6;4975:8;;4970:14;;;;;;;;;;;;;;;;;;;;;;;;;3384:27;3400:10;3384:15;:27::i;:::-;3380:41;;;5007:1;4998:10;;4993:124;5014:7;:14;5010:1;:18;4993:124;;;5060:7;5068:1;5060:10;;;;;;;;;;;;;;;;;;;5044:6;5051:5;;;5044:13;;;;;;;;;:26;;;;;-1:-1:-1;;;;;5044:26:0;;;;;-1:-1:-1;;;;;5044:26:0;;;;;;5108:1;5104;:5;5079:10;:22;5090:7;5098:1;5090:10;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:22:0;;;;;;;;;;;-1:-1:-1;5079:22:0;:30;5030:3;;;;;4993:124;;;5138:13;5127:8;;:24;5123:35;;;5153:5;;;5123:35;5165:8;:20;;;3380:41;4895:296;;;;:::o;14018:30::-;;;;;;;;;:::o;16012:28196::-;16080:7;16327:18;16768:25;;:::i;:::-;24474:26;;:::i;:::-;32355:23;;:::i;:::-;40235:24;40275:9;40331:15;40384:19;40792:9;41714;42040:33;;:::i;:::-;43951:9;16171:10;16193:42;16171:65;16163:74;;;;;;16508:4;16515:24;;;;:9;:24;;;;;;16356:42;;-1:-1:-1;16494:46:0;;16508:4;16494:5;:46::i;:::-;16647:1;16651:21;;;:9;:21;;;;16633:40;;16647:1;16633:5;:40::i;:::-;16768:7695;;;;;;;;;16817:66;16768:7695;;;;;;;;16905:66;16768:7695;;;;;;;;16993:66;16768:7695;;;;;;;;17081:66;16768:7695;;;;;;;;17169:66;16768:7695;;;;;;;;17257:66;16768:7695;;;;;;;;17345:66;16768:7695;;;;;;;;17433:66;16768:7695;;;;;;;;17521:66;16768:7695;;;;;;;;17609:66;16768:7695;;;;;;;;17697:66;16768:7695;;;;;;;;17785:66;16768:7695;;;;;;;;17873:66;16768:7695;;;;;;;;17961:66;16768:7695;;;;;;;;18049:66;16768:7695;;;;;;;;18137:66;16768:7695;;;;;;;;18225:66;16768:7695;;;;;;;;18313:66;16768:7695;;;;;;;;18401:66;16768:7695;;;;;;;;18489:66;16768:7695;;;;;;;;18577:66;16768:7695;;;;;;;;18665:66;16768:7695;;;;;;;;18753:66;16768:7695;;;;;;;;18841:66;16768:7695;;;;;;;;18929:66;16768:7695;;;;;;;;19017:66;16768:7695;;;;;;;;19105:66;16768:7695;;;;;;;;19193:66;16768:7695;;;;;;;;19281:66;16768:7695;;;;;;;;19369:66;16768:7695;;;;;;;;19457:66;16768:7695;;;;;;;;19545:66;16768:7695;;;;;;;;19633:66;16768:7695;;;;;;;;19721:66;16768:7695;;;;;;;;19809:66;16768:7695;;;;;;;;19897:66;16768:7695;;;;;;;;19985:66;16768:7695;;;;;;;;20073:66;16768:7695;;;;;;;;20161:66;16768:7695;;;;;;;;20249:66;16768:7695;;;;;;;;20337:66;16768:7695;;;;;;;;20425:66;16768:7695;;;;;;;;20513:66;16768:7695;;;;;;;;20601:66;16768:7695;;;;;;;;20689:66;16768:7695;;;;;;;;20777:66;16768:7695;;;;;;;;20865:66;16768:7695;;;;;;;;20953:66;16768:7695;;;;;;;;21041:66;16768:7695;;;;;;;;21129:66;16768:7695;;;;;;;;21217:66;16768:7695;;;;;;;;21305:66;16768:7695;;;;;;;;21393:66;16768:7695;;;;;;;;21481:66;16768:7695;;;;;;;;21569:66;16768:7695;;;;;;;;21657:66;16768:7695;;;;;;;;21745:66;16768:7695;;;;;;;;21833:66;16768:7695;;;;;;;;21921:66;16768:7695;;;;;;;;22009:66;16768:7695;;;;;;;;22097:66;16768:7695;;;;;;;;22185:66;16768:7695;;;;;;;;22273:66;16768:7695;;;;;;;;22361:66;16768:7695;;;;;;;;22449:66;16768:7695;;;;;;;;22537:66;16768:7695;;;;;;;;22625:66;16768:7695;;;;;;;;22713:66;16768:7695;;;;;;;;22801:66;16768:7695;;;;;;;;22889:66;16768:7695;;;;;;;;22977:66;16768:7695;;;;;;;;23065:66;16768:7695;;;;;;;;23153:66;16768:7695;;;;;;;;23241:66;16768:7695;;;;;;;;23329:66;16768:7695;;;;;;;;23417:66;16768:7695;;;;;;;;23505:66;16768:7695;;;;;;;;23593:66;16768:7695;;;;;;;;23681:66;16768:7695;;;;;;;;23769:66;16768:7695;;;;;;;;23857:66;16768:7695;;;;;;;;23945:66;16768:7695;;;;;;;;24033:66;16768:7695;;;;;;;;24121:66;16768:7695;;;;;;;;24209:66;16768:7695;;;;;;;;24297:66;16768:7695;;;;;;;;24385:66;16768:7695;;;;;;;;;24474:7870;;;;;;;;;24526:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;24616:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;24706:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;24796:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;24886:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;24976:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25066:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25156:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25246:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25336:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25426:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25516:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25606:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25696:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25786:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25876:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;25966:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26056:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26146:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26236:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26326:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26416:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26506:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26596:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26686:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26776:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26866:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;26956:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27046:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27136:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27226:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27316:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27406:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27496:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27586:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27676:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27766:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27856:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;27946:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28036:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28126:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28216:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28306:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28396:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28486:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28576:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28666:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28756:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28846:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;28936:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29026:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29116:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29206:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29296:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29386:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29476:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29566:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29656:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29746:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29836:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;29926:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30016:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30106:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30196:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30286:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30376:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30466:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30556:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30646:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30736:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30826:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;30916:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31006:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31096:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31186:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31276:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31366:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31456:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31546:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31636:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31726:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31816:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31906:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;31996:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;32086:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;32176:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;32266:66;-1:-1:-1;;;;;24474:7870:0;-1:-1:-1;;;;;24474:7870:0;;;;;;32355:7867;;;;;;;;;32404:66;32396:75;;32355:7867;;;;;;;;;;32494:66;32486:75;;32355:7867;;;;;;;;;;32584:66;32576:75;;32355:7867;;;;;;;;;;32674:66;32666:75;;32355:7867;;;;;;;;;;32764:66;32756:75;;32355:7867;;;;;;;;;;32854:66;32846:75;;32355:7867;;;;;;;;;;32944:66;32936:75;;32355:7867;;;;;;;;;;33034:66;33026:75;;32355:7867;;;;;;;;;;33124:66;33116:75;;32355:7867;;;;;;;;;;33214:66;33206:75;;32355:7867;;;;;;;;;;33304:66;33296:75;;32355:7867;;;;;;;;;;33394:66;33386:75;;32355:7867;;;;;;;;;;33484:66;33476:75;;32355:7867;;;;;;;;;;33574:66;33566:75;;32355:7867;;;;;;;;;;33664:66;33656:75;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;33746:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;33836:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;33926:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34016:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34106:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34196:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34286:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34376:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34466:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34556:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34646:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34736:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34826:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;34916:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35006:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35096:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35186:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35276:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35366:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35456:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35546:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35636:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35726:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;35816:75:0;;32355:7867;;;;;;;;;;35914:66;35906:75;;32355:7867;;;;;;;;;;36004:66;35996:75;;32355:7867;;;;;;;;;;36094:66;36086:75;;32355:7867;;;;;;;;;;36184:66;36176:75;;32355:7867;;;;;;;;;;36274:66;36266:75;;32355:7867;;;;;;;;;;36364:66;36356:75;;32355:7867;;;;;;;;;;36454:66;36446:75;;32355:7867;;;;;;;;;;36544:66;36536:75;;32355:7867;;;;;;;;;;36634:66;36626:75;;32355:7867;;;;;;;;;;36724:66;36716:75;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;36806:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;36896:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;36986:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37076:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37166:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37256:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37346:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37436:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37526:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37616:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37706:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37796:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37886:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;37976:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38066:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38156:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38246:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38336:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38426:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38516:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38606:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38696:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38786:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38876:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;38966:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39056:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39146:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39236:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39326:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39416:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39506:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39596:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39686:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39776:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39866:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;39956:75:0;;32355:7867;;;;;;;;;;-1:-1:-1;;;;;40046:75:0;;32355:7867;;;;;;;;;;40144:66;40136:75;;32355:7867;;;;;;;;;;;40287:1;40275:13;;40270:369;40294:15;40290:1;:19;40270:369;;;40357:8;40366:1;40357:11;;;;;;;;;;;;;;;;40349:20;;40414:14;:30;;;:21;:30;;;:14;:30;;40349:20;;-1:-1:-1;40414:37:0;;;40452:7;40460:1;40452:10;;;;;;;;;;;-1:-1:-1;;;;;40414:49:0;-1:-1:-1;;;;;40414:49:0;;;;;;;;;;;;:58;40464:4;40469:1;40464:7;;;;;;;;;;;;;;;;;;40414:58;;;;;;;;;;;;:65;;;;-1:-1:-1;40514:33:0;:16;40414:65;40514:33;:20;:33;:::i;:::-;40569:14;:30;;;:21;:14;:30;:14;:30;;40495:52;;-1:-1:-1;40569:37:0;;;;;40607:7;40615:1;40607:10;;;;;;;;;;;-1:-1:-1;;;;;40569:49:0;-1:-1:-1;;;;;40569:49:0;;;;;;;;;;;;:58;40619:4;40624:1;40619:7;;;;;;;;;;;;;;;;;;40569:58;;;;;;;;;;;;;;40562:65;;;;;;;;;-1:-1:-1;;40562:65:0;;;40311:3;;;;;40270:369;;;40703:11;;:33;;40719:16;40703:33;:15;:33;:::i;:::-;40689:11;:47;40804:1;;-1:-1:-1;40787:92:0;40812:2;40807:7;;40787:92;;40843:14;:24;;;:21;:14;:24;:14;:24;;40836:31;;;;;;;;;;40843:21;40836:31;;;;;;;40816:3;;;;40787:92;;;40929:14;;;;:11;:14;;;40922:21;;;40929:14;40922:21;;40929:14;40922:21;:::i;:::-;-1:-1:-1;;41111:5:0;41098:10;:18;41127:15;41133:8;41127:5;:15::i;:::-;41167:10;;41153:11;:24;41247:5;41224:20;:28;;;-1:-1:-1;41263:19:0;:23;;;41297:12;:20;;;;41380:16;;;41357:17;27:10:-1;;-1:-1;23:18;;45:23;;41357:40:0;;;;;;;;-1:-1:-1;;41357:40:0;-1:-1:-1;;;;;41380:16:0;;;41357:40;;;41429:16;41413:45;;;41429:16;;;41413:45;;;;;41357:40;41413:45;;;;;;;;;;;;;;;;41469:16;:29;;-1:-1:-1;;41469:29:0;-1:-1:-1;;;;;41469:29:0;;;;;41553:7;:15;;-1:-1:-1;;41579:17:0;;;41684:14;:12;:14::i;:::-;41726:1;41714:13;;41709:197;41733:13;41729:1;:17;41709:197;;;41793:1;41772:6;41779:1;41772:9;;;;;;;;;-1:-1:-1;;;;;41772:9:0;:23;41768:127;;41823:10;:21;41834:6;41841:1;41834:9;;;;;;;;;-1:-1:-1;;;;;41834:9:0;41823:21;;;;;;;;;;;41834:9;41823:21;;;41816:28;41834:9;41877:1;41834:9;41870;;;;;;;41863:16;;-1:-1:-1;;41863:16:0;;;41768:127;41748:3;;;;;41709:197;;;-1:-1:-1;;41923:22:0;;;;:10;:22;;;;;41916:29;;;41923:22;42040:1895;;;;;;;42099:42;42040:1895;;;42165:42;42040:1895;;;;;;;42231:42;42040:1895;;;;;;;42297:42;42040:1895;;;;42363:42;42040:1895;;;;42429:42;42040:1895;;;;42495:42;42040:1895;;;;42561:42;42040:1895;;;;42627:42;42040:1895;;;;42693:42;42040:1895;;;;42759:42;42040:1895;;;;;;42825:42;42040:1895;;;;;;42891:42;42040:1895;;;;;;42957:42;42040:1895;;;;;;;;;;;;;;;;;;;;43155:42;42040:1895;;;;;;43221:42;42040:1895;;;;;;43287:42;42040:1895;;;;;;43353:42;42040:1895;;;;;;;;;;;;;;;;;;;;;;;;;;;43617:42;42040:1895;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43946:115;43970:21;43966:1;:25;43946:115;;;44020:10;:29;44031:14;44046:1;44031:17;;;;;;;;;;;;;;;;-1:-1:-1;;;;;44020:29:0;;;;;;;;;;;-1:-1:-1;44020:29:0;;;44013:36;43993:3;;43946:115;;;44136:8;-1:-1:-1;;;;;44136:17:0;:40;44162:4;-1:-1:-1;;;;;44154:21:0;;44136:40;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;44196:4:0;;16012:28196;-1:-1:-1;;;;;;;;;;;;;;;16012:28196:0:o;10342:111::-;10390:8;;10385:14;;;;;;;;;;;;;;;;;;;;;;;;;3384:27;3400:10;3384:15;:27::i;:::-;3380:41;;;10415:9;;;;;;;10408:17;;;;;;10432:7;:15;;-1:-1:-1;;10432:15:0;;;3380:41;10342:111;:::o;11004:35::-;;;;:::o;14154:20::-;;;;;;;;;;;;;;;-1:-1:-1;;14154:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10935:60;;;;:::o;45466:333::-;45576:7;45660:10;14444:42;45660:25;45652:34;;;;;;-1:-1:-1;45704:26:0;;;;:11;:26;;;;;;;;:43;;;:33;;:43;;;;;-1:-1:-1;;;;;45704:59:0;;;;:50;;:59;;;;;:65;;;;;;;;45697:72;;;;;;;;;-1:-1:-1;;45697:72:0;;;45466:333;;;;;;:::o;11046:26::-;;;;:::o;5271:403::-;5347:10;5323;5336:22;;;:10;:22;;;;;;;5323:10;5404;;5400:23;;;5416:7;;5400:23;-1:-1:-1;;5479:20:0;;;;:8;:20;;;;;5510:18;;;;5450:1;:8;;;;5510:34;;;:38;5506:163;;;5559:19;;;;;;;;5587:18;;:35;;;;;;;5631:30;;;5638:10;5631:30;;;;;;;;;;;;;;;;;;;;;5271:403;;;;:::o;9836:28::-;;;;;;;;;:::o;11081:27::-;;;;:::o;5984:382::-;6060:4;6087:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;6127:18:0;;;;:10;:18;;;;;;6060:4;6193:10;;6189:28;;;6212:5;6205:12;;;;6189:28;6299:5;6296:1;:8;6275:29;;6341:13;6320:7;:18;;;:34;6358:1;6320:39;6318:42;6311:49;;5984:382;;;;;;;;:::o;5753:122::-;5815:7;5846:6;5853:14;;;5846:22;;;;;;;;;-1:-1:-1;;;;;5846:22:0;;5753:122;-1:-1:-1;;5753:122:0:o;10559:97::-;10615:8;;10610:14;;;;;;;;;;;;;;;;;;;;;;;;;3384:27;3400:10;3384:15;:27::i;:::-;3380:41;;;10633:9;:17;;-1:-1:-1;;10633:17:0;;;10559:97;:::o;46023:382::-;46094:7;46178:10;14444:42;46178:25;46170:34;;;;;;14444:42;46267:22;;:9;:22;;;;:34;-1:-1:-1;46259:43:0;;;;;;14444:42;46338:22;;:9;:22;;;;:37;;46365:9;46338:37;:26;:37;:::i;:::-;14444:42;46313:22;;:9;:22;;;:62;-1:-1:-1;46393:4:0;46023:382;;;;;:::o;2371:20::-;;;;:::o;11263:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;10875:39::-;;;;:::o;13227:337::-;13268:7;13308:248;13339:185;13347:20;;13516:7;13390:102;13403:19;;13449:42;13462:15;13479:11;;13449:12;:42::i;:::-;13390:12;:102::i;:::-;:133;;;;;;;;13339:7;:185::i;:::-;13543:12;;13308;:248::i;:::-;13288:268;;13227:337;;:::o;14055:34::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14055:34:0;;-1:-1:-1;14055:34:0;:::o;6397:1443::-;6549:10;6460:4;6538:22;;;:10;:22;;;;;;6460:4;;6606:10;;6602:23;;;6618:7;;6602:23;6647:20;;;;:8;:20;;;;;6777:17;;6647:20;;-1:-1:-1;6777:22:0;6773:322;;;6877:8;;;6857:28;;6968:18;;;;:22;;;;7015:13;:22;;;;;:13;:22;;;:::i;:::-;6999:13;;;:38;;;7046:13;:28;;7077:10;;6999:38;7046:28;;;;;;;;;;;;;;;:41;6773:322;7174:5;7171:1;:8;7150:29;;7298:13;7277:7;:18;;;:34;7315:1;7277:39;7273:562;;;7327:36;;;7340:10;7327:36;;;;;;;;;;;;;;;;;;;;;7429:17;;7450:1;-1:-1:-1;7425:403:0;;7543:20;;;;:8;:20;;;;;:26;;;7529:13;:41;;:13;;7543:26;7529:41;;;;;;;;;;;;;;;;;7522:48;;;7588:20;;;:8;:20;;;;;7581:27;;;;;;;;;;;;;;;;;;;-1:-1:-1;7619:11:0;;7425:403;7749:19;;-1:-1:-1;;7749:19:0;;;;7781:18;;:35;;;;;;7425:403;6397:1443;;;;;;:::o;47318:232::-;47401:11;;:23;;47417:6;47401:23;:15;:23;:::i;:::-;47387:11;:37;-1:-1:-1;;;;;47457:19:0;;;;;;:9;:19;;;;;;:31;;47481:6;47457:31;:23;:31;:::i;:::-;-1:-1:-1;;;;;47435:19:0;;;;;;:9;:19;;;;;;;;:53;;;;47504:38;;;;;;;47435:19;;47504:38;;;;;;;;;;;47318:232;;:::o;1504:150::-;1562:7;1594:5;;;1618:6;;;;1610:15;;;;;;1645:1;1504:150;-1:-1:-1;;;1504:150:0:o;1266:::-;1324:7;;1352:6;;;;1344:15;;;;;;-1:-1:-1;;1382:5:0;;;1266:150::o;47558:235::-;47611:18;47632:27;47647:11;;47632:10;;:14;;:27;;;;:::i;:::-;-1:-1:-1;;;;;47692:19:0;;;;;;:9;:19;;;;;;47611:48;;-1:-1:-1;47692:35:0;;47611:48;47692:35;:23;:35;:::i;:::-;-1:-1:-1;;;;;47670:19:0;;;;;;:9;:19;;;;;;;;:57;;;;47743:42;;;;;;;47670:19;;;;47743:42;;;;;;;;;;47558:235;;:::o;7846:220::-;7900:13;:20;7886:11;7927:106;7948:6;7944:1;:10;7927:106;;;7970:13;:16;;7984:1;;7970:16;;;;;;;;;;;;;;;;:21;7966:67;;8007:8;:26;8016:13;8030:1;8016:16;;;;;;;;;;;;;;;;;;;;;;8007:26;;;;;;;;;;;;8000:33;;;;;;;;;;;;7966:67;7956:3;;7927:106;;;8040:20;8047:13;;8040:20;:::i;:::-;7846:220;;:::o;8597:149::-;8653:4;8679:5;;;8702:6;;;;;;:16;;;8717:1;8712;:6;;8702:16;8695:24;;;;;8890:155;8946:4;8972:5;;;8995:6;;;:22;;;9016:1;9010;9006;:5;;;;;;;;9005:12;8988:30;;;8307:144;8358:4;8384:5;;;8407:6;;;;;;:16;;-1:-1:-1;8417:6:0;;;;8400:24;;;13907:33889;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;13907:33889:0;;;-1:-1:-1;;13907:33889:0:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;13907:33889:0;;;-1:-1:-1;;13907:33889:0:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://e7fe788a6e1fe03280665929aa5af9080126dbc414f9b60fb58a97fa46aa6fbd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.