Contract Overview
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
WildMasterChef
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-12-13 */ // SPDX-License-Identifier: None pragma solidity ^0.8.0; // OpenZeppelin Contracts v4.3.2 (utils/math/SafeMath.sol) // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } // OpenZeppelin Contracts v4.3.2 (token/ERC20/IERC20.sol) /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // OpenZeppelin Contracts v4.3.2 (utils/Address.sol) /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // OpenZeppelin Contracts v4.3.2 (token/ERC20/utils/SafeERC20.sol) /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // OpenZeppelin Contracts v4.3.2 (utils/Context.sol) /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // OpenZeppelin Contracts v4.3.2 (access/Ownable.sol) /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // OpenZeppelin Contracts v4.3.2 (security/ReentrancyGuard.sol) /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // OpenZeppelin Contracts v4.3.2 (token/ERC20/extensions/IERC20Metadata.sol) /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // OpenZeppelin Contracts v4.3.2 (token/ERC20/ERC20.sol) /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // OpenZeppelin Contracts v4.3.2 (token/ERC20/extensions/ERC20Capped.sol) /** * @dev Extension of {ERC20} that adds a cap to the supply of tokens. */ abstract contract ERC20Capped is ERC20 { using SafeMath for uint256; uint256 private immutable _cap; /** * @dev Sets the value of the `cap`. This value is immutable, it can only be * set once during construction. */ constructor(uint256 cap_) { require(cap_ > 0, "ERC20Capped: cap is 0"); _cap = cap_; } /** * @dev Returns the cap on the token's total supply. */ function cap() public view virtual returns (uint256) { return _cap; } /** * @dev See {ERC20-_mint}. */ function _mint(address account, uint256 amount) internal virtual override { require( ERC20.totalSupply().add(amount) <= cap(), "ERC20Capped: cap exceeded" ); super._mint(account, amount); } } contract WildToken is ERC20Capped, Ownable, ReentrancyGuard { /** * Amount has to be the max supply desired multiply by 10 ** 18. Example: MAX_CAP_SUPPLY * (10 ** 18) */ constructor( uint256 _amount, string memory _tokenName, string memory _tokenSymbol ) ERC20Capped(_amount * (10 ** 18)) ERC20(_tokenName, _tokenSymbol) {} function mint(address _to, uint256 _amount) external onlyOwner { ERC20Capped._mint(_to, _amount); } } // MasterChef is the master of Wild. He can make Wild and he is a nice guy. // // We hope it is bug free contract WildMasterChef is Ownable, ReentrancyGuard { using SafeMath for uint256; using SafeERC20 for IERC20; // Info of each user. struct UserInfo { uint256 amount; // How many LP tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. // // We do some fancy math here. Basically, any point in time, the amount of Wilds // entitled to a user but is pending to be distributed is: // // pending reward = (user.amount * pool.accWildPerShare) - user.rewardDebt // // Whenever a user deposits or withdraws LP tokens to a pool. Here's what happens: // 1. The pool's `accWildPerShare` (and `lastRewardBlock`) gets updated. // 2. User receives the pending reward sent to his/her address. // 3. User's `amount` gets updated. // 4. User's `rewardDebt` gets updated. } // Info of each pool. struct PoolInfo { IERC20 lpToken; // Address of LP token contract. uint256 allocPoint; // How many allocation points assigned to this pool. Wilds to distribute per block. uint256 lastRewardBlock; // Last block number that Wilds distribution occurs. uint256 accWildPerShare; // Accumulated Wilds per share, times 1e18. See below. uint16 depositFeeBP; // Deposit fee in basis points uint256 lpSupply; // Pool balance } // The Wild TOKEN! WildToken public immutable Wild; // Dev address for team address public devAddress; // Project address for marketing, audits and development bills address public projectAddress; // Dividend address address public dividendAddress; // Wild tokens created per block uint256 public WildPerBlock; // Info of each Pool PoolInfo[] public poolInfo; // Info of each user that stakes LP tokens. mapping(uint256 => mapping(address => UserInfo)) public userInfo; // Total allocation points. Must be the sum of all allocation points in all pools. uint256 public totalAllocPoint = 0; // The block number when Wild mining starts. uint256 public startBlock; // Maximum WildPerBlock uint256 public constant MAX_EMISSION_RATE = 2.5 ether; // Maximum dev fees uint256 public constant MAX_DEV_EMISSION_RATE = 10; // Maximum deposit fees uint256 public constant MAX_DEPOSIT_FEES = 400; // Deposit fees divider uint256 private constant DEPOSIT_FEES_DIVIDER = 10000; // Deposit fees percentage - Project Wallet uint8 public constant PROJECT_WALLET_PERCENTAGE = 50; // Deposit fees percentage - Dev/Team Wallet uint8 public constant TEAM_WALLET_PERCENTAGE = 30; // Deposit fees percentage - Dividend Wallet uint8 public constant DIVIDEND_WALLET_PERCENTAGE = 20; mapping(IERC20 => bool) public poolExistence; modifier nonDuplicated(IERC20 _lpToken) { require(poolExistence[_lpToken] == false, "nonDuplicated: duplicated"); _; } modifier enoughAmountToWithdraw(uint256 _pid, uint256 _amount) { require( userInfo[_pid][msg.sender].amount >= _amount, "withdraw: not good" ); _; } modifier allowableEmissionRate(uint256 _WildPerBlock) { require(_WildPerBlock <= MAX_EMISSION_RATE, "Too high"); _; } event Deposit(address indexed user, uint256 indexed pid, uint256 amount); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount); event EmergencyWithdraw( address indexed user, uint256 indexed pid, uint256 amount ); event SetProjectAddress(address indexed user, address indexed newAddress); event SetDevAddress(address indexed user, address indexed newAddress); event SetDividendAddress(address indexed user, address indexed newAddress); event UpdateEmissionRate(address indexed user, uint256 WildPerBlock); event addPool( uint256 indexed pid, address lpToken, uint256 allocPoint, uint256 depositFeeBP ); event setPool( uint256 indexed pid, address lpToken, uint256 allocPoint, uint256 depositFeeBP ); event UpdateStartBlock(uint256 newStartBlock); event WildMintError(bytes reason); constructor( WildToken _Wild, address _devAddress, address _projectAddress, address _dividendAddress, uint256 _WildPerBlock, uint256 _startBlock ) { Wild = _Wild; devAddress = _devAddress; projectAddress = _projectAddress; dividendAddress = _dividendAddress; WildPerBlock = _WildPerBlock; startBlock = _startBlock; } /** * How many pools do we have in contract */ function poolLength() external view returns (uint256) { return poolInfo.length; } // Add a new lp to the pool. Can only be called by the owner. function add( uint256 _allocPoint, IERC20 _lpToken, uint16 _depositFeeBP, bool _withUpdate ) external onlyOwner nonDuplicated(_lpToken) { // valid ERC20 token _lpToken.balanceOf(address(this)); require( _depositFeeBP <= MAX_DEPOSIT_FEES, "add: invalid deposit fee basis points" ); if (_withUpdate) { massUpdatePools(); } uint256 lastRewardBlock = block.number > startBlock ? block.number : startBlock; totalAllocPoint = totalAllocPoint.add(_allocPoint); poolExistence[_lpToken] = true; poolInfo.push( PoolInfo({ lpToken: _lpToken, allocPoint: _allocPoint, lastRewardBlock: lastRewardBlock, accWildPerShare: 0, depositFeeBP: _depositFeeBP, lpSupply: 0 }) ); emit addPool( poolInfo.length - 1, address(_lpToken), _allocPoint, _depositFeeBP ); } // Update the given pool's Wild allocation point and deposit fee. Can only be called by the owner. function set( uint256 _pid, uint256 _allocPoint, uint16 _depositFeeBP, bool _withUpdate ) external onlyOwner { require( _depositFeeBP <= MAX_DEPOSIT_FEES, "set: invalid deposit fee basis points" ); if (_withUpdate) { massUpdatePools(); } totalAllocPoint = totalAllocPoint.sub(poolInfo[_pid].allocPoint).add( _allocPoint ); poolInfo[_pid].allocPoint = _allocPoint; poolInfo[_pid].depositFeeBP = _depositFeeBP; emit setPool( _pid, address(poolInfo[_pid].lpToken), _allocPoint, _depositFeeBP ); } // Returns difference over the given _from to _to block. function getMultiplier(uint256 _from, uint256 _to) public pure returns (uint256) { return _to.sub(_from); } // View function to see pending Wilds on frontend. function pendingWild(uint256 _pid, address _user) external view returns (uint256) { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 accWildPerShare = pool.accWildPerShare; if ( block.number > pool.lastRewardBlock && pool.lpSupply != 0 && totalAllocPoint > 0 ) { uint256 multiplier = getMultiplier( pool.lastRewardBlock, block.number ); uint256 WildReward = multiplier .mul(WildPerBlock) .mul(pool.allocPoint) .div(totalAllocPoint); if (Wild.totalSupply().add(WildReward) > Wild.cap()) { WildReward = Wild.cap().sub(Wild.totalSupply()); } accWildPerShare = accWildPerShare.add( WildReward.mul(1e18).div(pool.lpSupply) ); } return user.amount.mul(accWildPerShare).div(1e18).sub(user.rewardDebt); } // Update reward variables for all pools. Be careful of gas spending! function massUpdatePools() public { uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { updatePool(pid); } } // Update reward variables of the given pool to be up-to-date. function updatePool(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; if (block.number <= pool.lastRewardBlock) { return; } if (pool.lpSupply == 0 || pool.allocPoint == 0) { pool.lastRewardBlock = block.number; return; } uint256 multiplier = getMultiplier(pool.lastRewardBlock, block.number); uint256 WildReward = multiplier .mul(WildPerBlock) .mul(pool.allocPoint) .div(totalAllocPoint); uint256 devReward = WildReward.div(MAX_DEV_EMISSION_RATE); uint256 currentSupply = Wild.totalSupply(); uint256 maxSupply = Wild.cap(); uint256 totalRewards = currentSupply.add(devReward).add(WildReward); if (totalRewards <= maxSupply) { try // Mint tokens for dev address Wild.mint(devAddress, devReward) {} catch (bytes memory reason) { WildReward = 0; emit WildMintError(reason); } } else { WildReward = maxSupply.sub(currentSupply); } if (WildReward != 0) { try // Mint tokens for the masterchef to reward users Wild.mint(address(this), WildReward) {} catch (bytes memory reason) { WildReward = 0; emit WildMintError(reason); } pool.accWildPerShare = pool.accWildPerShare.add( WildReward.mul(1e18).div(pool.lpSupply) ); } pool.lastRewardBlock = block.number; } // Deposit LP tokens to MasterChef for Wild allocation. function deposit(uint256 _pid, uint256 _amount) external nonReentrant { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; updatePool(_pid); if (user.amount > 0) { uint256 pending = user .amount .mul(pool.accWildPerShare) .div(1e18) .sub(user.rewardDebt); if (pending > 0) { safeWildTransfer(msg.sender, pending); } } if (_amount > 0) { uint256 balanceBefore = pool.lpToken.balanceOf(address(this)); pool.lpToken.safeTransferFrom(msg.sender, address(this), _amount); _amount = pool.lpToken.balanceOf(address(this)).sub(balanceBefore); if (pool.depositFeeBP > 0) { uint256 depositFee = _amount.mul(pool.depositFeeBP).div( DEPOSIT_FEES_DIVIDER ); uint256 dividendWalletFeeAmount = 0; dividendWalletFeeAmount = depositFee.sub( ( depositFee.mul(PROJECT_WALLET_PERCENTAGE).div(100).add( depositFee.mul(TEAM_WALLET_PERCENTAGE).div(100) ) ) ); pool.lpToken.safeTransfer( projectAddress, depositFee.mul(PROJECT_WALLET_PERCENTAGE).div(100) ); pool.lpToken.safeTransfer( devAddress, depositFee.mul(TEAM_WALLET_PERCENTAGE).div(100) ); pool.lpToken.safeTransfer(dividendAddress, dividendWalletFeeAmount); user.amount = user.amount.add(_amount).sub(depositFee); pool.lpSupply = pool.lpSupply.add(_amount).sub(depositFee); } else { user.amount = user.amount.add(_amount); pool.lpSupply = pool.lpSupply.add(_amount); } } user.rewardDebt = user.amount.mul(pool.accWildPerShare).div(1e18); emit Deposit(msg.sender, _pid, _amount); } // Withdraw LP tokens from MasterChef. function withdraw(uint256 _pid, uint256 _amount) external enoughAmountToWithdraw(_pid, _amount) nonReentrant { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; updatePool(_pid); uint256 pending = user .amount .mul(pool.accWildPerShare) .div(1e18) .sub(user.rewardDebt); if (pending > 0) { safeWildTransfer(msg.sender, pending); } if (_amount > 0) { user.amount = user.amount.sub(_amount); pool.lpToken.safeTransfer(msg.sender, _amount); pool.lpSupply = pool.lpSupply.sub(_amount); } user.rewardDebt = user.amount.mul(pool.accWildPerShare).div(1e18); emit Withdraw(msg.sender, _pid, _amount); } // Withdraw without caring about rewards. EMERGENCY ONLY. function emergencyWithdraw(uint256 _pid) external nonReentrant { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; uint256 amount = user.amount; user.amount = 0; user.rewardDebt = 0; pool.lpToken.safeTransfer(msg.sender, amount); if (pool.lpSupply >= amount) { pool.lpSupply = pool.lpSupply.sub(amount); } else { pool.lpSupply = 0; } emit EmergencyWithdraw(msg.sender, _pid, amount); } // Safe Wild transfer function, just in case if rounding error causes pool to not have enough Wilds. function safeWildTransfer(address _to, uint256 _amount) internal { uint256 WildBalance = Wild.balanceOf(address(this)); bool transferSuccess = false; if (_amount > WildBalance) { transferSuccess = Wild.transfer(_to, WildBalance); } else { transferSuccess = Wild.transfer(_to, _amount); } require(transferSuccess, "safeWildTransfer: transfer failed"); } // Update dev address. function setDevAddress(address _devAddress) external { require(msg.sender == devAddress, "dev: wut?"); require(_devAddress != address(0), "!nonzero"); devAddress = _devAddress; emit SetDevAddress(msg.sender, _devAddress); } function setProjectAddress(address _projectAddress) external { require(msg.sender == projectAddress, "setProjectAddress: FORBIDDEN"); require(_projectAddress != address(0), "!nonzero"); projectAddress = _projectAddress; emit SetProjectAddress(msg.sender, _projectAddress); } function setDividendAddress(address _dividendAddress) external { require(msg.sender == dividendAddress, "setDividendAddress: FORBIDDEN"); require(_dividendAddress != address(0), "!nonzero"); dividendAddress = _dividendAddress; emit SetDividendAddress(msg.sender, _dividendAddress); } // Updating Emssion Rate function updateEmissionRate(uint256 _WildPerBlock) external onlyOwner allowableEmissionRate(_WildPerBlock) { massUpdatePools(); WildPerBlock = _WildPerBlock; emit UpdateEmissionRate(msg.sender, _WildPerBlock); } // Only update before start of farm function updateStartBlock(uint256 _newStartBlock) external onlyOwner { require( block.number < startBlock, "cannot change start block if farm has already started" ); require( block.number < _newStartBlock, "cannot set start block in the past" ); uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { PoolInfo storage pool = poolInfo[pid]; pool.lastRewardBlock = _newStartBlock; } startBlock = _newStartBlock; emit UpdateStartBlock(startBlock); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract WildToken","name":"_Wild","type":"address"},{"internalType":"address","name":"_devAddress","type":"address"},{"internalType":"address","name":"_projectAddress","type":"address"},{"internalType":"address","name":"_dividendAddress","type":"address"},{"internalType":"uint256","name":"_WildPerBlock","type":"uint256"},{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"SetDevAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"SetDividendAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"SetProjectAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"WildPerBlock","type":"uint256"}],"name":"UpdateEmissionRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newStartBlock","type":"uint256"}],"name":"UpdateStartBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"WildMintError","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"address","name":"lpToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"depositFeeBP","type":"uint256"}],"name":"addPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"address","name":"lpToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"depositFeeBP","type":"uint256"}],"name":"setPool","type":"event"},{"inputs":[],"name":"DIVIDEND_WALLET_PERCENTAGE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DEPOSIT_FEES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DEV_EMISSION_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_EMISSION_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROJECT_WALLET_PERCENTAGE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_WALLET_PERCENTAGE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wild","outputs":[{"internalType":"contract WildToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WildPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"uint16","name":"_depositFeeBP","type":"uint16"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_from","type":"uint256"},{"internalType":"uint256","name":"_to","type":"uint256"}],"name":"getMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingWild","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"name":"poolExistence","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accWildPerShare","type":"uint256"},{"internalType":"uint16","name":"depositFeeBP","type":"uint16"},{"internalType":"uint256","name":"lpSupply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"uint16","name":"_depositFeeBP","type":"uint16"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dividendAddress","type":"address"}],"name":"setDividendAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_projectAddress","type":"address"}],"name":"setProjectAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_WildPerBlock","type":"uint256"}],"name":"updateEmissionRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newStartBlock","type":"uint256"}],"name":"updateStartBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405260006008553480156200001657600080fd5b50604051620049583803806200495883398181016040528101906200003c91906200032a565b6200005c620000506200017460201b60201c565b6200017c60201b60201c565b600180819055508573ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160058190555080600981905550505050505050620003c6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002728262000245565b9050919050565b6000620002868262000265565b9050919050565b620002988162000279565b8114620002a457600080fd5b50565b600081519050620002b8816200028d565b92915050565b620002c98162000265565b8114620002d557600080fd5b50565b600081519050620002e981620002be565b92915050565b6000819050919050565b6200030481620002ef565b81146200031057600080fd5b50565b6000815190506200032481620002f9565b92915050565b60008060008060008060c087890312156200034a576200034962000240565b5b60006200035a89828a01620002a7565b96505060206200036d89828a01620002d8565b95505060406200038089828a01620002d8565b94505060606200039389828a01620002d8565b9350506080620003a689828a0162000313565b92505060a0620003b989828a0162000313565b9150509295509295509295565b6080516145296200042f60003960008181610dde01528181610e7101528181610f1701528181610fa6015281816111b101528181611244015281816113050152818161144801528181611cac01528181612be201528181612c880152612d2d01526145296000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c8063715018a61161011a578063cbd258b5116100ad578063e2bbb1581161007c578063e2bbb15814610599578063ec38b524146105b5578063f2fde38b146105d3578063fac2b9ba146105ef578063fce0f9281461060b57610206565b8063cbd258b514610513578063cdc16b9814610543578063d0d41fe114610561578063d96384221461057d57610206565b80638dbb1e3a116100e95780638dbb1e3a1461047657806393f1a40b146104a65780639bcc16c7146104d7578063bd81fe10146104f557610206565b8063715018a6146104145780637e1dc1bf1461041e57806384e82a331461043c5780638da5cb5b1461045857610206565b8063441a3e701161019d5780635312ea8e1161016c5780635312ea8e14610394578063546d08fe146103b057806361074418146103ce578063630b5ba1146103ec5780636c2cde8f146103f657610206565b8063441a3e701461030e57806348cd4cb11461032a5780634ec10a9c1461034857806351eb05a61461037857610206565b806317caf6f1116101d957806317caf6f1146102965780633ad10ef6146102b45780633cf96af1146102d2578063436cc3d6146102f057610206565b8063081e3eda1461020b5780630ba84cd21461022957806312912d2b146102455780631526fe2714610261575b600080fd5b610213610627565b6040516102209190613281565b60405180910390f35b610243600480360381019061023e91906132cd565b610634565b005b61025f600480360381019061025a9190613358565b61075d565b005b61027b600480360381019061027691906132cd565b6108fb565b60405161028d96959493929190613401565b60405180910390f35b61029e610975565b6040516102ab9190613281565b60405180910390f35b6102bc61097b565b6040516102c99190613471565b60405180910390f35b6102da6109a1565b6040516102e79190613471565b60405180910390f35b6102f86109c7565b6040516103059190613281565b60405180910390f35b6103286004803603810190610323919061348c565b6109d3565b005b610332610cd2565b60405161033f9190613281565b60405180910390f35b610362600480360381019061035d91906134cc565b610cd8565b60405161036f9190613281565b60405180910390f35b610392600480360381019061038d91906132cd565b6110de565b005b6103ae60048036038101906103a991906132cd565b6115a8565b005b6103b8611772565b6040516103c59190613471565b60405180910390f35b6103d6611798565b6040516103e39190613281565b60405180910390f35b6103f461179e565b005b6103fe6117d1565b60405161040b9190613281565b60405180910390f35b61041c6117d7565b005b61042661185f565b6040516104339190613281565b60405180910390f35b610456600480360381019061045191906135ae565b611864565b005b610460611c2e565b60405161046d9190613471565b60405180910390f35b610490600480360381019061048b919061348c565b611c57565b60405161049d9190613281565b60405180910390f35b6104c060048036038101906104bb91906134cc565b611c74565b6040516104ce929190613615565b60405180910390f35b6104df611ca5565b6040516104ec919061365a565b60405180910390f35b6104fd611caa565b60405161050a9190613696565b60405180910390f35b61052d600480360381019061052891906136b1565b611cce565b60405161053a91906136ed565b60405180910390f35b61054b611cee565b604051610558919061365a565b60405180910390f35b61057b60048036038101906105769190613358565b611cf3565b005b61059760048036038101906105929190613708565b611e91565b005b6105b360048036038101906105ae919061348c565b6120a8565b005b6105bd61275c565b6040516105ca919061365a565b60405180910390f35b6105ed60048036038101906105e89190613358565b612761565b005b610609600480360381019061060491906132cd565b612859565b005b61062560048036038101906106209190613358565b6129f6565b005b6000600680549050905090565b61063c612b94565b73ffffffffffffffffffffffffffffffffffffffff1661065a611c2e565b73ffffffffffffffffffffffffffffffffffffffff16146106b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a7906137cc565b60405180910390fd5b806722b1c8c1227a00008111156106fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f390613838565b60405180910390fd5b61070461179e565b816005819055503373ffffffffffffffffffffffffffffffffffffffff167fe2492e003bbe8afa53088b406f0c1cb5d9e280370fc72a74cf116ffd343c4053836040516107519190613281565b60405180910390a25050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e4906138a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490613910565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc784154ab4374570f0ee5d84f2d1a68595236c54f18be2e5cc3c920b927ab09f60405160405180910390a350565b6006818154811061090b57600080fd5b90600052602060002090600602016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040160009054906101000a900461ffff16908060050154905086565b60085481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6722b1c8c1227a000081565b8181806007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a629061397c565b60405180910390fd5b60026001541415610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa8906139e8565b60405180910390fd5b6002600181905550600060068581548110610acf57610ace613a08565b5b9060005260206000209060060201905060006007600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610b3c866110de565b6000610b898260010154610b7b670de0b6b3a7640000610b6d87600301548760000154612b9c90919063ffffffff16565b612bb290919063ffffffff16565b612bc890919063ffffffff16565b90506000811115610b9f57610b9e3382612bde565b5b6000861115610c3657610bbf868360000154612bc890919063ffffffff16565b8260000181905550610c1633878560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e129092919063ffffffff16565b610c2d868460050154612bc890919063ffffffff16565b83600501819055505b610c6b670de0b6b3a7640000610c5d85600301548560000154612b9c90919063ffffffff16565b612bb290919063ffffffff16565b8260010181905550863373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56888604051610cba9190613281565b60405180910390a35050506001808190555050505050565b60095481565b60008060068481548110610cef57610cee613a08565b5b9060005260206000209060060201905060006007600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600082600301549050826002015443118015610d7457506000836005015414155b8015610d8257506000600854115b1561108c576000610d97846002015443611c57565b90506000610dda600854610dcc8760010154610dbe60055487612b9c90919063ffffffff16565b612b9c90919063ffffffff16565b612bb290919063ffffffff16565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663355274ea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b9190613a4c565b610f0c827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190613a4c565b612e9890919063ffffffff16565b1115611044576110417f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190613a4c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663355274ea6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110339190613a4c565b612bc890919063ffffffff16565b90505b611087611078866005015461106a670de0b6b3a764000085612b9c90919063ffffffff16565b612bb290919063ffffffff16565b84612e9890919063ffffffff16565b925050505b6110d382600101546110c5670de0b6b3a76400006110b7858760000154612b9c90919063ffffffff16565b612bb290919063ffffffff16565b612bc890919063ffffffff16565b935050505092915050565b6000600682815481106110f4576110f3613a08565b5b906000526020600020906006020190508060020154431161111557506115a5565b60008160050154148061112c575060008160010154145b1561114057438160020181905550506115a5565b6000611150826002015443611c57565b90506000611193600854611185856001015461117760055487612b9c90919063ffffffff16565b612b9c90919063ffffffff16565b612bb290919063ffffffff16565b905060006111ab600a83612bb290919063ffffffff16565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123e9190613a4c565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663355274ea6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d19190613a4c565b905060006112fa856112ec8686612e9890919063ffffffff16565b612e9890919063ffffffff16565b9050818111611428577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f19600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518363ffffffff1660e01b8152600401611380929190613a79565b600060405180830381600087803b15801561139a57600080fd5b505af19250505080156113ab575060015b611422573d80600081146113db576040519150601f19603f3d011682016040523d82523d6000602084013e6113e0565b606091505b50600095507f1eb8e357ef0b2983fc31fb02a8c5a81c0316c5e32962f204e18ee31a676bc94c816040516114149190613b3b565b60405180910390a150611423565b5b61143e565b61143b8383612bc890919063ffffffff16565b94505b60008514611594577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1930876040518363ffffffff1660e01b81526004016114a1929190613a79565b600060405180830381600087803b1580156114bb57600080fd5b505af19250505080156114cc575060015b611543573d80600081146114fc576040519150601f19603f3d011682016040523d82523d6000602084013e611501565b606091505b50600095507f1eb8e357ef0b2983fc31fb02a8c5a81c0316c5e32962f204e18ee31a676bc94c816040516115359190613b3b565b60405180910390a150611544565b5b61158b611578886005015461156a670de0b6b3a764000089612b9c90919063ffffffff16565b612bb290919063ffffffff16565b8860030154612e9890919063ffffffff16565b87600301819055505b438760020181905550505050505050505b50565b600260015414156115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e5906139e8565b60405180910390fd5b600260018190555060006006828154811061160c5761160b613a08565b5b9060005260206000209060060201905060006007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154905060008260000181905550600082600101819055506116dc33828560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e129092919063ffffffff16565b8083600501541061170b576116fe818460050154612bc890919063ffffffff16565b8360050181905550611716565b600083600501819055505b833373ffffffffffffffffffffffffffffffffffffffff167fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05958360405161175d9190613281565b60405180910390a35050506001808190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61019081565b6000600680549050905060005b818110156117cd576117bc816110de565b806117c690613b8c565b90506117ab565b5050565b60055481565b6117df612b94565b73ffffffffffffffffffffffffffffffffffffffff166117fd611c2e565b73ffffffffffffffffffffffffffffffffffffffff1614611853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184a906137cc565b60405180910390fd5b61185d6000612eae565b565b600a81565b61186c612b94565b73ffffffffffffffffffffffffffffffffffffffff1661188a611c2e565b73ffffffffffffffffffffffffffffffffffffffff16146118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906137cc565b60405180910390fd5b8260001515600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90613c21565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119ad9190613471565b602060405180830381865afa1580156119ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ee9190613a4c565b506101908361ffff161115611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90613cb3565b60405180910390fd5b8115611a4757611a4661179e565b5b60006009544311611a5a57600954611a5c565b435b9050611a7386600854612e9890919063ffffffff16565b6008819055506001600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060066040518060c001604052808773ffffffffffffffffffffffffffffffffffffffff168152602001888152602001838152602001600081526020018661ffff1681526020016000815250908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548161ffff021916908361ffff16021790555060a0820151816005015550506001600680549050611beb9190613cd3565b7faa6642278d4bbef86d8990c37355d5d4dfe365c194106bdf7a65162268606f07868887604051611c1e93929190613d38565b60405180910390a2505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611c6c8383612bc890919063ffffffff16565b905092915050565b6007602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b603281565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a6020528060005260406000206000915054906101000a900460ff1681565b601481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90613dbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea90613910565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f618c54559e94f1499a808aad71ee8729f8e74e8c48e979616328ce493a1a52e760405160405180910390a350565b611e99612b94565b73ffffffffffffffffffffffffffffffffffffffff16611eb7611c2e565b73ffffffffffffffffffffffffffffffffffffffff1614611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f04906137cc565b60405180910390fd5b6101908261ffff161115611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d90613e4d565b60405180910390fd5b8015611f6557611f6461179e565b5b611fb183611fa360068781548110611f8057611f7f613a08565b5b906000526020600020906006020160010154600854612bc890919063ffffffff16565b612e9890919063ffffffff16565b6008819055508260068581548110611fcc57611fcb613a08565b5b9060005260206000209060060201600101819055508160068581548110611ff657611ff5613a08565b5b906000526020600020906006020160040160006101000a81548161ffff021916908361ffff160217905550837f39f0c3d078af018954b4fa56832a05a2b511afaa999b133ea3f1c487c21ed2876006868154811061205757612056613a08565b5b906000526020600020906006020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16858560405161209a93929190613d38565b60405180910390a250505050565b600260015414156120ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e5906139e8565b60405180910390fd5b600260018190555060006006838154811061210c5761210b613a08565b5b9060005260206000209060060201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612179846110de565b6000816000015411156121eb5760006121d382600101546121c5670de0b6b3a76400006121b787600301548760000154612b9c90919063ffffffff16565b612bb290919063ffffffff16565b612bc890919063ffffffff16565b905060008111156121e9576121e83382612bde565b5b505b60008311156126c35760008260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122539190613471565b602060405180830381865afa158015612270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122949190613a4c565b90506122e73330868660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f72909392919063ffffffff16565b612397818460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016123489190613471565b602060405180830381865afa158015612365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123899190613a4c565b612bc890919063ffffffff16565b935060008360040160009054906101000a900461ffff1661ffff1611156126825760006123f76127106123e98660040160009054906101000a900461ffff1661ffff1688612b9c90919063ffffffff16565b612bb290919063ffffffff16565b9050600061247261246361242b606461241d601e60ff1687612b9c90919063ffffffff16565b612bb290919063ffffffff16565b6124556064612447603260ff1688612b9c90919063ffffffff16565b612bb290919063ffffffff16565b612e9890919063ffffffff16565b83612bc890919063ffffffff16565b905061250e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166124c460646124b6603260ff1687612b9c90919063ffffffff16565b612bb290919063ffffffff16565b8760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e129092919063ffffffff16565b6125a8600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661255e6064612550601e60ff1687612b9c90919063ffffffff16565b612bb290919063ffffffff16565b8760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e129092919063ffffffff16565b612619600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e129092919063ffffffff16565b61264282612634888760000154612e9890919063ffffffff16565b612bc890919063ffffffff16565b846000018190555061267382612665888860050154612e9890919063ffffffff16565b612bc890919063ffffffff16565b856005018190555050506126c1565b612699848360000154612e9890919063ffffffff16565b82600001819055506126b8848460050154612e9890919063ffffffff16565b83600501819055505b505b6126f8670de0b6b3a76400006126ea84600301548460000154612b9c90919063ffffffff16565b612bb290919063ffffffff16565b8160010181905550833373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15856040516127479190613281565b60405180910390a35050600180819055505050565b601e81565b612769612b94565b73ffffffffffffffffffffffffffffffffffffffff16612787611c2e565b73ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d4906137cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561284d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284490613edf565b60405180910390fd5b61285681612eae565b50565b612861612b94565b73ffffffffffffffffffffffffffffffffffffffff1661287f611c2e565b73ffffffffffffffffffffffffffffffffffffffff16146128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc906137cc565b60405180910390fd5b6009544310612919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291090613f71565b60405180910390fd5b80431061295b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295290614003565b60405180910390fd5b6000600680549050905060005b818110156129b15760006006828154811061298657612985613a08565b5b9060005260206000209060060201905083816002018190555050806129aa90613b8c565b9050612968565b50816009819055507f1ff2238e284780b094bb341b41af7e6ce294dee1da3799ae49cd0e29fbe127096009546040516129ea9190613281565b60405180910390a15050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7d9061406f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aed90613910565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f45774421128dcbccdf636aad8d796027bf7a65e4ee6114b611f8b893aa5071a060405160405180910390a350565b600033905090565b60008183612baa919061408f565b905092915050565b60008183612bc09190614118565b905092915050565b60008183612bd69190613cd3565b905092915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612c399190613471565b602060405180830381865afa158015612c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7a9190613a4c565b9050600081831115612d2b577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff1660e01b8152600401612ce1929190613a79565b6020604051808303816000875af1158015612d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d24919061415e565b9050612dcc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff1660e01b8152600401612d86929190613a79565b6020604051808303816000875af1158015612da5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc9919061415e565b90505b80612e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e03906141fd565b60405180910390fd5b50505050565b612e938363a9059cbb60e01b8484604051602401612e31929190613a79565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612ffb565b505050565b60008183612ea6919061421d565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612ff5846323b872dd60e01b858585604051602401612f9393929190614273565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612ffb565b50505050565b600061305d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166130c29092919063ffffffff16565b90506000815111156130bd578080602001905181019061307d919061415e565b6130bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b39061431c565b60405180910390fd5b5b505050565b60606130d184846000856130da565b90509392505050565b60608247101561311f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613116906143ae565b60405180910390fd5b613128856131ee565b613167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315e9061441a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516131909190614476565b60006040518083038185875af1925050503d80600081146131cd576040519150601f19603f3d011682016040523d82523d6000602084013e6131d2565b606091505b50915091506131e2828286613201565b92505050949350505050565b600080823b905060008111915050919050565b6060831561321157829050613261565b6000835111156132245782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325891906144d1565b60405180910390fd5b9392505050565b6000819050919050565b61327b81613268565b82525050565b60006020820190506132966000830184613272565b92915050565b600080fd5b6132aa81613268565b81146132b557600080fd5b50565b6000813590506132c7816132a1565b92915050565b6000602082840312156132e3576132e261329c565b5b60006132f1848285016132b8565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613325826132fa565b9050919050565b6133358161331a565b811461334057600080fd5b50565b6000813590506133528161332c565b92915050565b60006020828403121561336e5761336d61329c565b5b600061337c84828501613343565b91505092915050565b6000819050919050565b60006133aa6133a56133a0846132fa565b613385565b6132fa565b9050919050565b60006133bc8261338f565b9050919050565b60006133ce826133b1565b9050919050565b6133de816133c3565b82525050565b600061ffff82169050919050565b6133fb816133e4565b82525050565b600060c08201905061341660008301896133d5565b6134236020830188613272565b6134306040830187613272565b61343d6060830186613272565b61344a60808301856133f2565b61345760a0830184613272565b979650505050505050565b61346b8161331a565b82525050565b60006020820190506134866000830184613462565b92915050565b600080604083850312156134a3576134a261329c565b5b60006134b1858286016132b8565b92505060206134c2858286016132b8565b9150509250929050565b600080604083850312156134e3576134e261329c565b5b60006134f1858286016132b8565b925050602061350285828601613343565b9150509250929050565b60006135178261331a565b9050919050565b6135278161350c565b811461353257600080fd5b50565b6000813590506135448161351e565b92915050565b613553816133e4565b811461355e57600080fd5b50565b6000813590506135708161354a565b92915050565b60008115159050919050565b61358b81613576565b811461359657600080fd5b50565b6000813590506135a881613582565b92915050565b600080600080608085870312156135c8576135c761329c565b5b60006135d6878288016132b8565b94505060206135e787828801613535565b93505060406135f887828801613561565b925050606061360987828801613599565b91505092959194509250565b600060408201905061362a6000830185613272565b6136376020830184613272565b9392505050565b600060ff82169050919050565b6136548161363e565b82525050565b600060208201905061366f600083018461364b565b92915050565b6000613680826133b1565b9050919050565b61369081613675565b82525050565b60006020820190506136ab6000830184613687565b92915050565b6000602082840312156136c7576136c661329c565b5b60006136d584828501613535565b91505092915050565b6136e781613576565b82525050565b600060208201905061370260008301846136de565b92915050565b600080600080608085870312156137225761372161329c565b5b6000613730878288016132b8565b9450506020613741878288016132b8565b935050604061375287828801613561565b925050606061376387828801613599565b91505092959194509250565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137b660208361376f565b91506137c182613780565b602082019050919050565b600060208201905081810360008301526137e5816137a9565b9050919050565b7f546f6f2068696768000000000000000000000000000000000000000000000000600082015250565b600061382260088361376f565b915061382d826137ec565b602082019050919050565b6000602082019050818103600083015261385181613815565b9050919050565b7f7365744469766964656e64416464726573733a20464f5242494444454e000000600082015250565b600061388e601d8361376f565b915061389982613858565b602082019050919050565b600060208201905081810360008301526138bd81613881565b9050919050565b7f216e6f6e7a65726f000000000000000000000000000000000000000000000000600082015250565b60006138fa60088361376f565b9150613905826138c4565b602082019050919050565b60006020820190508181036000830152613929816138ed565b9050919050565b7f77697468647261773a206e6f7420676f6f640000000000000000000000000000600082015250565b600061396660128361376f565b915061397182613930565b602082019050919050565b6000602082019050818103600083015261399581613959565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006139d2601f8361376f565b91506139dd8261399c565b602082019050919050565b60006020820190508181036000830152613a01816139c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613a46816132a1565b92915050565b600060208284031215613a6257613a6161329c565b5b6000613a7084828501613a37565b91505092915050565b6000604082019050613a8e6000830185613462565b613a9b6020830184613272565b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613adc578082015181840152602081019050613ac1565b83811115613aeb576000848401525b50505050565b6000601f19601f8301169050919050565b6000613b0d82613aa2565b613b178185613aad565b9350613b27818560208601613abe565b613b3081613af1565b840191505092915050565b60006020820190508181036000830152613b558184613b02565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b9782613268565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bca57613bc9613b5d565b5b600182019050919050565b7f6e6f6e4475706c6963617465643a206475706c69636174656400000000000000600082015250565b6000613c0b60198361376f565b9150613c1682613bd5565b602082019050919050565b60006020820190508181036000830152613c3a81613bfe565b9050919050565b7f6164643a20696e76616c6964206465706f73697420666565206261736973207060008201527f6f696e7473000000000000000000000000000000000000000000000000000000602082015250565b6000613c9d60258361376f565b9150613ca882613c41565b604082019050919050565b60006020820190508181036000830152613ccc81613c90565b9050919050565b6000613cde82613268565b9150613ce983613268565b925082821015613cfc57613cfb613b5d565b5b828203905092915050565b6000613d22613d1d613d18846133e4565b613385565b613268565b9050919050565b613d3281613d07565b82525050565b6000606082019050613d4d6000830186613462565b613d5a6020830185613272565b613d676040830184613d29565b949350505050565b7f6465763a207775743f0000000000000000000000000000000000000000000000600082015250565b6000613da560098361376f565b9150613db082613d6f565b602082019050919050565b60006020820190508181036000830152613dd481613d98565b9050919050565b7f7365743a20696e76616c6964206465706f73697420666565206261736973207060008201527f6f696e7473000000000000000000000000000000000000000000000000000000602082015250565b6000613e3760258361376f565b9150613e4282613ddb565b604082019050919050565b60006020820190508181036000830152613e6681613e2a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ec960268361376f565b9150613ed482613e6d565b604082019050919050565b60006020820190508181036000830152613ef881613ebc565b9050919050565b7f63616e6e6f74206368616e676520737461727420626c6f636b2069662066617260008201527f6d2068617320616c726561647920737461727465640000000000000000000000602082015250565b6000613f5b60358361376f565b9150613f6682613eff565b604082019050919050565b60006020820190508181036000830152613f8a81613f4e565b9050919050565b7f63616e6e6f742073657420737461727420626c6f636b20696e2074686520706160008201527f7374000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fed60228361376f565b9150613ff882613f91565b604082019050919050565b6000602082019050818103600083015261401c81613fe0565b9050919050565b7f73657450726f6a656374416464726573733a20464f5242494444454e00000000600082015250565b6000614059601c8361376f565b915061406482614023565b602082019050919050565b600060208201905081810360008301526140888161404c565b9050919050565b600061409a82613268565b91506140a583613268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140de576140dd613b5d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061412382613268565b915061412e83613268565b92508261413e5761413d6140e9565b5b828204905092915050565b60008151905061415881613582565b92915050565b6000602082840312156141745761417361329c565b5b600061418284828501614149565b91505092915050565b7f7361666557696c645472616e736665723a207472616e73666572206661696c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006141e760218361376f565b91506141f28261418b565b604082019050919050565b60006020820190508181036000830152614216816141da565b9050919050565b600061422882613268565b915061423383613268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561426857614267613b5d565b5b828201905092915050565b60006060820190506142886000830186613462565b6142956020830185613462565b6142a26040830184613272565b949350505050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000614306602a8361376f565b9150614311826142aa565b604082019050919050565b60006020820190508181036000830152614335816142f9565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b600061439860268361376f565b91506143a38261433c565b604082019050919050565b600060208201905081810360008301526143c78161438b565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000614404601d8361376f565b915061440f826143ce565b602082019050919050565b60006020820190508181036000830152614433816143f7565b9050919050565b600081905092915050565b600061445082613aa2565b61445a818561443a565b935061446a818560208601613abe565b80840191505092915050565b60006144828284614445565b915081905092915050565b600081519050919050565b60006144a38261448d565b6144ad818561376f565b93506144bd818560208601613abe565b6144c681613af1565b840191505092915050565b600060208201905081810360008301526144eb8184614498565b90509291505056fea2646970667358221220a167dc6653fae59f74369e18b0c9433df3412a71334ace4ecb537f2fe3387b6564736f6c634300080a003300000000000000000000000054c6960fbb3e6572377980277057cf08ccad646b000000000000000000000000add41442532f1ad243584a64c88ac67264a50c57000000000000000000000000beae614a42dcdd8e0be6914ac66397c6d66ab443000000000000000000000000b90197ec2930713b5e4ab78d2c5ec6b45c7afd60000000000000000000000000000000000000000000000000002445f0df28200000000000000000000000000000000000000000000000000000000000015a40db
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000054c6960fbb3e6572377980277057cf08ccad646b000000000000000000000000add41442532f1ad243584a64c88ac67264a50c57000000000000000000000000beae614a42dcdd8e0be6914ac66397c6d66ab443000000000000000000000000b90197ec2930713b5e4ab78d2c5ec6b45c7afd60000000000000000000000000000000000000000000000000002445f0df28200000000000000000000000000000000000000000000000000000000000015a40db
-----Decoded View---------------
Arg [0] : _Wild (address): 0x54c6960fbb3e6572377980277057cf08ccad646b
Arg [1] : _devAddress (address): 0xadd41442532f1ad243584a64c88ac67264a50c57
Arg [2] : _projectAddress (address): 0xbeae614a42dcdd8e0be6914ac66397c6d66ab443
Arg [3] : _dividendAddress (address): 0xb90197ec2930713b5e4ab78d2c5ec6b45c7afd60
Arg [4] : _WildPerBlock (uint256): 10210000000000000
Arg [5] : _startBlock (uint256): 22692059
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000054c6960fbb3e6572377980277057cf08ccad646b
Arg [1] : 000000000000000000000000add41442532f1ad243584a64c88ac67264a50c57
Arg [2] : 000000000000000000000000beae614a42dcdd8e0be6914ac66397c6d66ab443
Arg [3] : 000000000000000000000000b90197ec2930713b5e4ab78d2c5ec6b45c7afd60
Arg [4] : 000000000000000000000000000000000000000000000000002445f0df282000
Arg [5] : 00000000000000000000000000000000000000000000000000000000015a40db
Deployed ByteCode Sourcemap
41926:16840:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46858:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;57803:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;57441:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43780:26;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;44021:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43480:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43580:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44175:53;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;54767:867;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;44112:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49316:1104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50759:1679;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;55705:552;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43641:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44346:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50503:180;;;:::i;:::-;;43718:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24200:103;;;:::i;:::-;;44260:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;47028:1154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23549:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49099:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43862:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;44537:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43413:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44814:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44752:53;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;56844:266;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;48294:735;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;52507:2208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;44646:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24458:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;58127:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;57118:315;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46858:95;46903:7;46930:8;:15;;;;46923:22;;46858:95;:::o;57803:275::-;23780:12;:10;:12::i;:::-;23769:23;;:7;:5;:7::i;:::-;:23;;;23761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;57922:13:::1;44219:9;45303:13;:34;;45295:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;57953:17:::2;:15;:17::i;:::-;57996:13;57981:12;:28;;;;58044:10;58025:45;;;58056:13;58025:45;;;;;;:::i;:::-;;;;;;;;23840:1:::1;57803:275:::0;:::o;57441:324::-;57537:15;;;;;;;;;;;57523:29;;:10;:29;;;57515:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;57633:1;57605:30;;:16;:30;;;;57597:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;57677:16;57659:15;;:34;;;;;;;;;;;;;;;;;;57740:16;57709:48;;57728:10;57709:48;;;;;;;;;;;;57441:324;:::o;43780:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;44021:34::-;;;;:::o;43480:25::-;;;;;;;;;;;;;:::o;43580:29::-;;;;;;;;;;;;;:::o;44175:53::-;44219:9;44175:53;:::o;54767:867::-;54866:4;54872:7;45149;45112:8;:14;45121:4;45112:14;;;;;;;;;;;:26;45127:10;45112:26;;;;;;;;;;;;;;;:33;;;:44;;45090:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;26735:1:::1;27333:7;;:19;;27325:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;26735:1;27466:7;:18;;;;54919:21:::2;54943:8;54952:4;54943:14;;;;;;;;:::i;:::-;;;;;;;;;;;;54919:38;;54968:21;54992:8;:14;55001:4;54992:14;;;;;;;;;;;:26;55007:10;54992:26;;;;;;;;;;;;;;;54968:50;;55029:16;55040:4;55029:10;:16::i;:::-;55056:15;55074:124;55182:4;:15;;;55074:89;55158:4;55074:65;55118:4;:20;;;55074:4;:25;;;:43;;:65;;;;:::i;:::-;:83;;:89;;;;:::i;:::-;:107;;:124;;;;:::i;:::-;55056:142;;55223:1;55213:7;:11;55209:81;;;55241:37;55258:10;55270:7;55241:16;:37::i;:::-;55209:81;55314:1;55304:7;:11;55300:200;;;55346:24;55362:7;55346:4;:11;;;:15;;:24;;;;:::i;:::-;55332:4;:11;;:38;;;;55385:46;55411:10;55423:7;55385:4;:12;;;;;;;;;;;;:25;;;;:46;;;;;:::i;:::-;55462:26;55480:7;55462:4;:13;;;:17;;:26;;;;:::i;:::-;55446:4;:13;;:42;;;;55300:200;55528:47;55570:4;55528:37;55544:4;:20;;;55528:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;55510:4;:15;;:65;;;;55612:4;55600:10;55591:35;;;55618:7;55591:35;;;;;;:::i;:::-;;;;;;;;54908:726;;;26691:1:::1;27645:7:::0;:22:::1;;;;54767:867:::0;;;;:::o;44112:25::-;;;;:::o;49316:1104::-;49416:7;49441:21;49465:8;49474:4;49465:14;;;;;;;;:::i;:::-;;;;;;;;;;;;49441:38;;49490:21;49514:8;:14;49523:4;49514:14;;;;;;;;;;;:21;49529:5;49514:21;;;;;;;;;;;;;;;49490:45;;49546:23;49572:4;:20;;;49546:46;;49636:4;:20;;;49621:12;:35;:70;;;;;49690:1;49673:4;:13;;;:18;;49621:70;:106;;;;;49726:1;49708:15;;:19;49621:106;49603:716;;;49754:18;49775:98;49807:4;:20;;;49846:12;49775:13;:98::i;:::-;49754:119;;49888:18;49909:124;50017:15;;49909:85;49978:4;:15;;;49909:46;49942:12;;49909:10;:32;;:46;;;;:::i;:::-;:68;;:85;;;;:::i;:::-;:107;;:124;;;;:::i;:::-;49888:145;;50089:4;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;50052:34;50075:10;50052:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:22;;:34;;;;:::i;:::-;:47;50048:135;;;50133:34;50148:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;50133:4;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:14;;:34;;;;:::i;:::-;50120:47;;50048:135;50215:92;50253:39;50278:4;:13;;;50253:20;50268:4;50253:10;:14;;:20;;;;:::i;:::-;:24;;:39;;;;:::i;:::-;50215:15;:19;;:92;;;;:::i;:::-;50197:110;;49739:580;;49603:716;50349:63;50396:4;:15;;;50349:42;50386:4;50349:32;50365:15;50349:4;:11;;;:15;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;:46;;:63;;;;:::i;:::-;50329:83;;;;;49316:1104;;;;:::o;50759:1679::-;50811:21;50835:8;50844:4;50835:14;;;;;;;;:::i;:::-;;;;;;;;;;;;50811:38;;50880:4;:20;;;50864:12;:36;50860:75;;50917:7;;;50860:75;50966:1;50949:4;:13;;;:18;:42;;;;50990:1;50971:4;:15;;;:20;50949:42;50945:131;;;51031:12;51008:4;:20;;:35;;;;51058:7;;;50945:131;51086:18;51107:49;51121:4;:20;;;51143:12;51107:13;:49::i;:::-;51086:70;;51167:18;51188:112;51284:15;;51188:77;51249:4;:15;;;51188:42;51217:12;;51188:10;:28;;:42;;;;:::i;:::-;:60;;:77;;;;:::i;:::-;:95;;:112;;;;:::i;:::-;51167:133;;51313:17;51333:37;44308:2;51333:10;:14;;:37;;;;:::i;:::-;51313:57;;51381:21;51405:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;51381:42;;51434:17;51454:4;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;51434:30;;51475:20;51498:44;51531:10;51498:28;51516:9;51498:13;:17;;:28;;;;:::i;:::-;:32;;:44;;;;:::i;:::-;51475:67;;51575:9;51559:12;:25;51555:371;;51670:4;:9;;;51680:10;;;;;;;;;;;51692:9;51670:32;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51601:240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51779:1;51766:14;;51804:21;51818:6;51804:21;;;;;;:::i;:::-;;;;;;;;51719:122;51601:240;;;;51555:371;;;51886:28;51900:13;51886:9;:13;;:28;;;;:::i;:::-;51873:41;;51555:371;51956:1;51942:10;:15;51938:447;;52062:4;:9;;;52080:4;52087:10;52062:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51974:263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52175:1;52162:14;;52200:21;52214:6;52200:21;;;;;;:::i;:::-;;;;;;;;52115:122;51974:263;;;;52276:97;52319:39;52344:4;:13;;;52319:20;52334:4;52319:10;:14;;:20;;;;:::i;:::-;:24;;:39;;;;:::i;:::-;52276:4;:20;;;:24;;:97;;;;:::i;:::-;52253:4;:20;;:120;;;;51938:447;52418:12;52395:4;:20;;:35;;;;50800:1638;;;;;;;50759:1679;;:::o;55705:552::-;26735:1;27333:7;;:19;;27325:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;26735:1;27466:7;:18;;;;55779:21:::1;55803:8;55812:4;55803:14;;;;;;;;:::i;:::-;;;;;;;;;;;;55779:38;;55828:21;55852:8;:14;55861:4;55852:14;;;;;;;;;;;:26;55867:10;55852:26;;;;;;;;;;;;;;;55828:50;;55889:14;55906:4;:11;;;55889:28;;55942:1;55928:4;:11;;:15;;;;55972:1;55954:4;:15;;:19;;;;55984:45;56010:10;56022:6;55984:4;:12;;;;;;;;;;;;:25;;;;:45;;;;;:::i;:::-;56063:6;56046:4;:13;;;:23;56042:147;;56102:25;56120:6;56102:4;:13;;;:17;;:25;;;;:::i;:::-;56086:4;:13;;:41;;;;56042:147;;;56176:1;56160:4;:13;;:17;;;;56042:147;56236:4;56224:10;56206:43;;;56242:6;56206:43;;;;;;:::i;:::-;;;;;;;;55768:489;;;26691:1:::0;27645:7;:22;;;;55705:552;:::o;43641:30::-;;;;;;;;;;;;;:::o;44346:46::-;44389:3;44346:46;:::o;50503:180::-;50548:14;50565:8;:15;;;;50548:32;;50596:11;50591:85;50619:6;50613:3;:12;50591:85;;;50649:15;50660:3;50649:10;:15::i;:::-;50627:5;;;;:::i;:::-;;;50591:85;;;;50537:146;50503:180::o;43718:27::-;;;;:::o;24200:103::-;23780:12;:10;:12::i;:::-;23769:23;;:7;:5;:7::i;:::-;:23;;;23761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24265:30:::1;24292:1;24265:18;:30::i;:::-;24200:103::o:0;44260:50::-;44308:2;44260:50;:::o;47028:1154::-;23780:12;:10;:12::i;:::-;23769:23;;:7;:5;:7::i;:::-;:23;;;23761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;47195:8:::1;44953:5;44926:32;;:13;:23;44940:8;44926:23;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;44918:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;47246:8:::2;:18;;;47273:4;47246:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;44389:3;47314:13;:33;;;;47292:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;47427:11;47423:61;;;47455:17;:15;:17::i;:::-;47423:61;47494:23;47535:10;;47520:12;:25;:79;;47589:10;;47520:79;;;47561:12;47520:79;47494:105;;47628:32;47648:11;47628:15;;:19;;:32;;;;:::i;:::-;47610:15;:50;;;;47697:4;47671:13;:23;47685:8;47671:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;47712:8;47740:267;;;;;;;;47777:8;47740:267;;;;;;47816:11;47740:267;;;;47863:15;47740:267;;;;47914:1;47740:267;;;;47948:13;47740:267;;;;;;47990:1;47740:267;;::::0;47712:306:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48076:1;48058:8;:15;;;;:19;;;;:::i;:::-;48036:138;48100:8;48124:11;48150:13;48036:138;;;;;;;;:::i;:::-;;;;;;;;47205:977;23840:1:::1;47028:1154:::0;;;;:::o;23549:87::-;23595:7;23622:6;;;;;;;;;;;23615:13;;23549:87;:::o;49099:153::-;49198:7;49230:14;49238:5;49230:3;:7;;:14;;;;:::i;:::-;49223:21;;49099:153;;;;:::o;43862:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;44537:52::-;44587:2;44537:52;:::o;43413:31::-;;;:::o;44814:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;44752:53::-;44803:2;44752:53;:::o;56844:266::-;56930:10;;;;;;;;;;;56916:24;;:10;:24;;;56908:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;56996:1;56973:25;;:11;:25;;;;56965:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;57037:11;57024:10;;:24;;;;;;;;;;;;;;;;;;57090:11;57064:38;;57078:10;57064:38;;;;;;;;;;;;56844:266;:::o;48294:735::-;23780:12;:10;:12::i;:::-;23769:23;;:7;:5;:7::i;:::-;:23;;;23761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44389:3:::1;48477:13;:33;;;;48455:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;48590:11;48586:61;;;48618:17;:15;:17::i;:::-;48586:61;48675:87;48740:11;48675:46;48695:8;48704:4;48695:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;;48675:15;;:19;;:46;;;;:::i;:::-;:50;;:87;;;;:::i;:::-;48657:15;:105;;;;48801:11;48773:8;48782:4;48773:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;:39;;;;48853:13;48823:8;48832:4;48823:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:27;;;:43;;;;;;;;;;;;;;;;;;48906:4;48884:137;48933:8;48942:4;48933:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:22;;;;;;;;;;;;48971:11;48997:13;48884:137;;;;;;;;:::i;:::-;;;;;;;;48294:735:::0;;;;:::o;52507:2208::-;26735:1;27333:7;;:19;;27325:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;26735:1;27466:7;:18;;;;52588:21:::1;52612:8;52621:4;52612:14;;;;;;;;:::i;:::-;;;;;;;;;;;;52588:38;;52637:21;52661:8;:14;52670:4;52661:14;;;;;;;;;;;:26;52676:10;52661:26;;;;;;;;;;;;;;;52637:50;;52698:16;52709:4;52698:10;:16::i;:::-;52743:1;52729:4;:11;;;:15;52725:309;;;52761:15;52779:140;52903:4;:15;;;52779:101;52875:4;52779:73;52831:4;:20;;;52779:4;:29;;;:51;;:73;;;;:::i;:::-;:95;;:101;;;;:::i;:::-;:123;;:140;;;;:::i;:::-;52761:158;;52948:1;52938:7;:11;52934:89;;;52970:37;52987:10;52999:7;52970:16;:37::i;:::-;52934:89;52746:288;52725:309;53058:1;53048:7;:11;53044:1538;;;53076:21;53100:4;:12;;;;;;;;;;;;:22;;;53131:4;53100:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;53076:61;;53152:65;53182:10;53202:4;53209:7;53152:4;:12;;;;;;;;;;;;:29;;;;:65;;;;;;:::i;:::-;53242:56;53284:13;53242:4;:12;;;;;;;;;;;;:22;;;53273:4;53242:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;:56;;;;:::i;:::-;53232:66;;53337:1;53317:4;:17;;;;;;;;;;;;:21;;;53313:1258;;;53359:18;53380:96;44476:5;53380:30;53392:4;:17;;;;;;;;;;;;53380:30;;:7;:11;;:30;;;;:::i;:::-;:34;;:96;;;;:::i;:::-;53359:117;;53495:31;53575:265;53639:159;53724:47;53767:3;53724:38;44693:2;53724:38;;:10;:14;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;53639:50;53685:3;53639:41;44587:2;53639:41;;:10;:14;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;:54;;:159;;;;:::i;:::-;53575:10;:14;;:265;;;;:::i;:::-;53549:291;;53859:154;53907:14;;;;;;;;;;;53944:50;53990:3;53944:41;44587:2;53944:41;;:10;:14;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;53859:4;:12;;;;;;;;;;;;:25;;;;:154;;;;;:::i;:::-;54032:147;54080:10;;;;;;;;;;;54113:47;54156:3;54113:38;44693:2;54113:38;;:10;:14;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;54032:4;:12;;;;;;;;;;;;:25;;;;:147;;;;;:::i;:::-;54198:67;54224:15;;;;;;;;;;;54241:23;54198:4;:12;;;;;;;;;;;;:25;;;;:67;;;;;:::i;:::-;54298:40;54327:10;54298:24;54314:7;54298:4;:11;;;:15;;:24;;;;:::i;:::-;:28;;:40;;;;:::i;:::-;54284:4;:11;;:54;;;;54373:42;54404:10;54373:26;54391:7;54373:4;:13;;;:17;;:26;;;;:::i;:::-;:30;;:42;;;;:::i;:::-;54357:4;:13;;:58;;;;53340:1091;;53313:1258;;;54470:24;54486:7;54470:4;:11;;;:15;;:24;;;;:::i;:::-;54456:4;:11;;:38;;;;54529:26;54547:7;54529:4;:13;;;:17;;:26;;;;:::i;:::-;54513:4;:13;;:42;;;;53313:1258;53061:1521;53044:1538;54610:47;54652:4;54610:37;54626:4;:20;;;54610:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;54592:4;:15;;:65;;;;54693:4;54681:10;54673:34;;;54699:7;54673:34;;;;;;:::i;:::-;;;;;;;;52577:2138;;26691:1:::0;27645:7;:22;;;;52507:2208;;:::o;44646:49::-;44693:2;44646:49;:::o;24458:201::-;23780:12;:10;:12::i;:::-;23769:23;;:7;:5;:7::i;:::-;:23;;;23761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24567:1:::1;24547:22;;:8;:22;;;;24539:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;24623:28;24642:8;24623:18;:28::i;:::-;24458:201:::0;:::o;58127:636::-;23780:12;:10;:12::i;:::-;23769:23;;:7;:5;:7::i;:::-;:23;;;23761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;58244:10:::1;;58229:12;:25;58207:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;58383:14;58368:12;:29;58346:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;58470:14;58487:8;:15;;;;58470:32;;58518:11;58513:159;58541:6;58535:3;:12;58513:159;;;58571:21;58595:8;58604:3;58595:13;;;;;;;;:::i;:::-;;;;;;;;;;;;58571:37;;58646:14;58623:4;:20;;:37;;;;58556:116;58549:5;;;;:::i;:::-;;;58513:159;;;;58695:14;58682:10;:27;;;;58727:28;58744:10;;58727:28;;;;;;:::i;:::-;;;;;;;;58196:567;58127:636:::0;:::o;57118:315::-;57212:14;;;;;;;;;;;57198:28;;:10;:28;;;57190:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;57305:1;57278:29;;:15;:29;;;;57270:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;57348:15;57331:14;;:32;;;;;;;;;;;;;;;;;;57409:15;57379:46;;57397:10;57379:46;;;;;;;;;;;;57118:315;:::o;22359:98::-;22412:7;22439:10;22432:17;;22359:98;:::o;3568:::-;3626:7;3657:1;3653;:5;;;;:::i;:::-;3646:12;;3568:98;;;;:::o;3967:::-;4025:7;4056:1;4052;:5;;;;:::i;:::-;4045:12;;3967:98;;;;:::o;3211:::-;3269:7;3300:1;3296;:5;;;;:::i;:::-;3289:12;;3211:98;;;;:::o;56371:437::-;56447:19;56469:4;:14;;;56492:4;56469:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;56447:51;;56509:20;56562:11;56552:7;:21;56548:181;;;56608:4;:13;;;56622:3;56627:11;56608:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;56590:49;;56548:181;;;56690:4;:13;;;56704:3;56709:7;56690:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;56672:45;;56548:181;56747:15;56739:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;56436:372;;56371:437;;:::o;18467:211::-;18584:86;18604:5;18634:23;;;18659:2;18663:5;18611:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18584:19;:86::i;:::-;18467:211;;;:::o;2830:98::-;2888:7;2919:1;2915;:5;;;;:::i;:::-;2908:12;;2830:98;;;;:::o;24819:191::-;24893:16;24912:6;;;;;;;;;;;24893:25;;24938:8;24929:6;;:17;;;;;;;;;;;;;;;;;;24993:8;24962:40;;24983:8;24962:40;;;;;;;;;;;;24882:128;24819:191;:::o;18686:248::-;18830:96;18850:5;18880:27;;;18909:4;18915:2;18919:5;18857:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18830:19;:96::i;:::-;18686:248;;;;:::o;21040:716::-;21464:23;21490:69;21518:4;21490:69;;;;;;;;;;;;;;;;;21498:5;21490:27;;;;:69;;;;;:::i;:::-;21464:95;;21594:1;21574:10;:17;:21;21570:179;;;21671:10;21660:30;;;;;;;;;;;;:::i;:::-;21652:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;21570:179;21110:646;21040:716;;:::o;13346:229::-;13483:12;13515:52;13537:6;13545:4;13551:1;13554:12;13515:21;:52::i;:::-;13508:59;;13346:229;;;;;:::o;14466:510::-;14636:12;14694:5;14669:21;:30;;14661:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;14761:18;14772:6;14761:10;:18::i;:::-;14753:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14827:12;14841:23;14868:6;:11;;14887:5;14894:4;14868:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14826:73;;;;14917:51;14934:7;14943:10;14955:12;14917:16;:51::i;:::-;14910:58;;;;14466:510;;;;;;:::o;10540:387::-;10600:4;10808:12;10875:7;10863:20;10855:28;;10918:1;10911:4;:8;10904:15;;;10540:387;;;:::o;17152:712::-;17302:12;17331:7;17327:530;;;17362:10;17355:17;;;;17327:530;17496:1;17476:10;:17;:21;17472:374;;;17674:10;17668:17;17735:15;17722:10;17718:2;17714:19;17707:44;17472:374;17817:12;17810:20;;;;;;;;;;;:::i;:::-;;;;;;;;17152:712;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:96::-;1546:7;1575:24;1593:5;1575:24;:::i;:::-;1564:35;;1509:96;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:60::-;2247:3;2268:5;2261:12;;2219:60;;;:::o;2285:142::-;2335:9;2368:53;2386:34;2395:24;2413:5;2395:24;:::i;:::-;2386:34;:::i;:::-;2368:53;:::i;:::-;2355:66;;2285:142;;;:::o;2433:126::-;2483:9;2516:37;2547:5;2516:37;:::i;:::-;2503:50;;2433:126;;;:::o;2565:140::-;2629:9;2662:37;2693:5;2662:37;:::i;:::-;2649:50;;2565:140;;;:::o;2711:159::-;2812:51;2857:5;2812:51;:::i;:::-;2807:3;2800:64;2711:159;;:::o;2876:89::-;2912:7;2952:6;2945:5;2941:18;2930:29;;2876:89;;;:::o;2971:115::-;3056:23;3073:5;3056:23;:::i;:::-;3051:3;3044:36;2971:115;;:::o;3092:799::-;3337:4;3375:3;3364:9;3360:19;3352:27;;3389:85;3471:1;3460:9;3456:17;3447:6;3389:85;:::i;:::-;3484:72;3552:2;3541:9;3537:18;3528:6;3484:72;:::i;:::-;3566;3634:2;3623:9;3619:18;3610:6;3566:72;:::i;:::-;3648;3716:2;3705:9;3701:18;3692:6;3648:72;:::i;:::-;3730:71;3796:3;3785:9;3781:19;3772:6;3730:71;:::i;:::-;3811:73;3879:3;3868:9;3864:19;3855:6;3811:73;:::i;:::-;3092:799;;;;;;;;;:::o;3897:118::-;3984:24;4002:5;3984:24;:::i;:::-;3979:3;3972:37;3897:118;;:::o;4021:222::-;4114:4;4152:2;4141:9;4137:18;4129:26;;4165:71;4233:1;4222:9;4218:17;4209:6;4165:71;:::i;:::-;4021:222;;;;:::o;4249:474::-;4317:6;4325;4374:2;4362:9;4353:7;4349:23;4345:32;4342:119;;;4380:79;;:::i;:::-;4342:119;4500:1;4525:53;4570:7;4561:6;4550:9;4546:22;4525:53;:::i;:::-;4515:63;;4471:117;4627:2;4653:53;4698:7;4689:6;4678:9;4674:22;4653:53;:::i;:::-;4643:63;;4598:118;4249:474;;;;;:::o;4729:::-;4797:6;4805;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;5107:2;5133:53;5178:7;5169:6;5158:9;5154:22;5133:53;:::i;:::-;5123:63;;5078:118;4729:474;;;;;:::o;5209:110::-;5260:7;5289:24;5307:5;5289:24;:::i;:::-;5278:35;;5209:110;;;:::o;5325:150::-;5412:38;5444:5;5412:38;:::i;:::-;5405:5;5402:49;5392:77;;5465:1;5462;5455:12;5392:77;5325:150;:::o;5481:167::-;5541:5;5579:6;5566:20;5557:29;;5595:47;5636:5;5595:47;:::i;:::-;5481:167;;;;:::o;5654:120::-;5726:23;5743:5;5726:23;:::i;:::-;5719:5;5716:34;5706:62;;5764:1;5761;5754:12;5706:62;5654:120;:::o;5780:137::-;5825:5;5863:6;5850:20;5841:29;;5879:32;5905:5;5879:32;:::i;:::-;5780:137;;;;:::o;5923:90::-;5957:7;6000:5;5993:13;5986:21;5975:32;;5923:90;;;:::o;6019:116::-;6089:21;6104:5;6089:21;:::i;:::-;6082:5;6079:32;6069:60;;6125:1;6122;6115:12;6069:60;6019:116;:::o;6141:133::-;6184:5;6222:6;6209:20;6200:29;;6238:30;6262:5;6238:30;:::i;:::-;6141:133;;;;:::o;6280:785::-;6376:6;6384;6392;6400;6449:3;6437:9;6428:7;6424:23;6420:33;6417:120;;;6456:79;;:::i;:::-;6417:120;6576:1;6601:53;6646:7;6637:6;6626:9;6622:22;6601:53;:::i;:::-;6591:63;;6547:117;6703:2;6729:67;6788:7;6779:6;6768:9;6764:22;6729:67;:::i;:::-;6719:77;;6674:132;6845:2;6871:52;6915:7;6906:6;6895:9;6891:22;6871:52;:::i;:::-;6861:62;;6816:117;6972:2;6998:50;7040:7;7031:6;7020:9;7016:22;6998:50;:::i;:::-;6988:60;;6943:115;6280:785;;;;;;;:::o;7071:332::-;7192:4;7230:2;7219:9;7215:18;7207:26;;7243:71;7311:1;7300:9;7296:17;7287:6;7243:71;:::i;:::-;7324:72;7392:2;7381:9;7377:18;7368:6;7324:72;:::i;:::-;7071:332;;;;;:::o;7409:86::-;7444:7;7484:4;7477:5;7473:16;7462:27;;7409:86;;;:::o;7501:112::-;7584:22;7600:5;7584:22;:::i;:::-;7579:3;7572:35;7501:112;;:::o;7619:214::-;7708:4;7746:2;7735:9;7731:18;7723:26;;7759:67;7823:1;7812:9;7808:17;7799:6;7759:67;:::i;:::-;7619:214;;;;:::o;7839:144::-;7907:9;7940:37;7971:5;7940:37;:::i;:::-;7927:50;;7839:144;;;:::o;7989:167::-;8094:55;8143:5;8094:55;:::i;:::-;8089:3;8082:68;7989:167;;:::o;8162:258::-;8273:4;8311:2;8300:9;8296:18;8288:26;;8324:89;8410:1;8399:9;8395:17;8386:6;8324:89;:::i;:::-;8162:258;;;;:::o;8426:357::-;8499:6;8548:2;8536:9;8527:7;8523:23;8519:32;8516:119;;;8554:79;;:::i;:::-;8516:119;8674:1;8699:67;8758:7;8749:6;8738:9;8734:22;8699:67;:::i;:::-;8689:77;;8645:131;8426:357;;;;:::o;8789:109::-;8870:21;8885:5;8870:21;:::i;:::-;8865:3;8858:34;8789:109;;:::o;8904:210::-;8991:4;9029:2;9018:9;9014:18;9006:26;;9042:65;9104:1;9093:9;9089:17;9080:6;9042:65;:::i;:::-;8904:210;;;;:::o;9120:757::-;9202:6;9210;9218;9226;9275:3;9263:9;9254:7;9250:23;9246:33;9243:120;;;9282:79;;:::i;:::-;9243:120;9402:1;9427:53;9472:7;9463:6;9452:9;9448:22;9427:53;:::i;:::-;9417:63;;9373:117;9529:2;9555:53;9600:7;9591:6;9580:9;9576:22;9555:53;:::i;:::-;9545:63;;9500:118;9657:2;9683:52;9727:7;9718:6;9707:9;9703:22;9683:52;:::i;:::-;9673:62;;9628:117;9784:2;9810:50;9852:7;9843:6;9832:9;9828:22;9810:50;:::i;:::-;9800:60;;9755:115;9120:757;;;;;;;:::o;9883:169::-;9967:11;10001:6;9996:3;9989:19;10041:4;10036:3;10032:14;10017:29;;9883:169;;;;:::o;10058:182::-;10198:34;10194:1;10186:6;10182:14;10175:58;10058:182;:::o;10246:366::-;10388:3;10409:67;10473:2;10468:3;10409:67;:::i;:::-;10402:74;;10485:93;10574:3;10485:93;:::i;:::-;10603:2;10598:3;10594:12;10587:19;;10246:366;;;:::o;10618:419::-;10784:4;10822:2;10811:9;10807:18;10799:26;;10871:9;10865:4;10861:20;10857:1;10846:9;10842:17;10835:47;10899:131;11025:4;10899:131;:::i;:::-;10891:139;;10618:419;;;:::o;11043:158::-;11183:10;11179:1;11171:6;11167:14;11160:34;11043:158;:::o;11207:365::-;11349:3;11370:66;11434:1;11429:3;11370:66;:::i;:::-;11363:73;;11445:93;11534:3;11445:93;:::i;:::-;11563:2;11558:3;11554:12;11547:19;;11207:365;;;:::o;11578:419::-;11744:4;11782:2;11771:9;11767:18;11759:26;;11831:9;11825:4;11821:20;11817:1;11806:9;11802:17;11795:47;11859:131;11985:4;11859:131;:::i;:::-;11851:139;;11578:419;;;:::o;12003:179::-;12143:31;12139:1;12131:6;12127:14;12120:55;12003:179;:::o;12188:366::-;12330:3;12351:67;12415:2;12410:3;12351:67;:::i;:::-;12344:74;;12427:93;12516:3;12427:93;:::i;:::-;12545:2;12540:3;12536:12;12529:19;;12188:366;;;:::o;12560:419::-;12726:4;12764:2;12753:9;12749:18;12741:26;;12813:9;12807:4;12803:20;12799:1;12788:9;12784:17;12777:47;12841:131;12967:4;12841:131;:::i;:::-;12833:139;;12560:419;;;:::o;12985:158::-;13125:10;13121:1;13113:6;13109:14;13102:34;12985:158;:::o;13149:365::-;13291:3;13312:66;13376:1;13371:3;13312:66;:::i;:::-;13305:73;;13387:93;13476:3;13387:93;:::i;:::-;13505:2;13500:3;13496:12;13489:19;;13149:365;;;:::o;13520:419::-;13686:4;13724:2;13713:9;13709:18;13701:26;;13773:9;13767:4;13763:20;13759:1;13748:9;13744:17;13737:47;13801:131;13927:4;13801:131;:::i;:::-;13793:139;;13520:419;;;:::o;13945:168::-;14085:20;14081:1;14073:6;14069:14;14062:44;13945:168;:::o;14119:366::-;14261:3;14282:67;14346:2;14341:3;14282:67;:::i;:::-;14275:74;;14358:93;14447:3;14358:93;:::i;:::-;14476:2;14471:3;14467:12;14460:19;;14119:366;;;:::o;14491:419::-;14657:4;14695:2;14684:9;14680:18;14672:26;;14744:9;14738:4;14734:20;14730:1;14719:9;14715:17;14708:47;14772:131;14898:4;14772:131;:::i;:::-;14764:139;;14491:419;;;:::o;14916:181::-;15056:33;15052:1;15044:6;15040:14;15033:57;14916:181;:::o;15103:366::-;15245:3;15266:67;15330:2;15325:3;15266:67;:::i;:::-;15259:74;;15342:93;15431:3;15342:93;:::i;:::-;15460:2;15455:3;15451:12;15444:19;;15103:366;;;:::o;15475:419::-;15641:4;15679:2;15668:9;15664:18;15656:26;;15728:9;15722:4;15718:20;15714:1;15703:9;15699:17;15692:47;15756:131;15882:4;15756:131;:::i;:::-;15748:139;;15475:419;;;:::o;15900:180::-;15948:77;15945:1;15938:88;16045:4;16042:1;16035:15;16069:4;16066:1;16059:15;16086:143;16143:5;16174:6;16168:13;16159:22;;16190:33;16217:5;16190:33;:::i;:::-;16086:143;;;;:::o;16235:351::-;16305:6;16354:2;16342:9;16333:7;16329:23;16325:32;16322:119;;;16360:79;;:::i;:::-;16322:119;16480:1;16505:64;16561:7;16552:6;16541:9;16537:22;16505:64;:::i;:::-;16495:74;;16451:128;16235:351;;;;:::o;16592:332::-;16713:4;16751:2;16740:9;16736:18;16728:26;;16764:71;16832:1;16821:9;16817:17;16808:6;16764:71;:::i;:::-;16845:72;16913:2;16902:9;16898:18;16889:6;16845:72;:::i;:::-;16592:332;;;;;:::o;16930:98::-;16981:6;17015:5;17009:12;16999:22;;16930:98;;;:::o;17034:168::-;17117:11;17151:6;17146:3;17139:19;17191:4;17186:3;17182:14;17167:29;;17034:168;;;;:::o;17208:307::-;17276:1;17286:113;17300:6;17297:1;17294:13;17286:113;;;17385:1;17380:3;17376:11;17370:18;17366:1;17361:3;17357:11;17350:39;17322:2;17319:1;17315:10;17310:15;;17286:113;;;17417:6;17414:1;17411:13;17408:101;;;17497:1;17488:6;17483:3;17479:16;17472:27;17408:101;17257:258;17208:307;;;:::o;17521:102::-;17562:6;17613:2;17609:7;17604:2;17597:5;17593:14;17589:28;17579:38;;17521:102;;;:::o;17629:360::-;17715:3;17743:38;17775:5;17743:38;:::i;:::-;17797:70;17860:6;17855:3;17797:70;:::i;:::-;17790:77;;17876:52;17921:6;17916:3;17909:4;17902:5;17898:16;17876:52;:::i;:::-;17953:29;17975:6;17953:29;:::i;:::-;17948:3;17944:39;17937:46;;17719:270;17629:360;;;;:::o;17995:309::-;18106:4;18144:2;18133:9;18129:18;18121:26;;18193:9;18187:4;18183:20;18179:1;18168:9;18164:17;18157:47;18221:76;18292:4;18283:6;18221:76;:::i;:::-;18213:84;;17995:309;;;;:::o;18310:180::-;18358:77;18355:1;18348:88;18455:4;18452:1;18445:15;18479:4;18476:1;18469:15;18496:233;18535:3;18558:24;18576:5;18558:24;:::i;:::-;18549:33;;18604:66;18597:5;18594:77;18591:103;;;18674:18;;:::i;:::-;18591:103;18721:1;18714:5;18710:13;18703:20;;18496:233;;;:::o;18735:175::-;18875:27;18871:1;18863:6;18859:14;18852:51;18735:175;:::o;18916:366::-;19058:3;19079:67;19143:2;19138:3;19079:67;:::i;:::-;19072:74;;19155:93;19244:3;19155:93;:::i;:::-;19273:2;19268:3;19264:12;19257:19;;18916:366;;;:::o;19288:419::-;19454:4;19492:2;19481:9;19477:18;19469:26;;19541:9;19535:4;19531:20;19527:1;19516:9;19512:17;19505:47;19569:131;19695:4;19569:131;:::i;:::-;19561:139;;19288:419;;;:::o;19713:224::-;19853:34;19849:1;19841:6;19837:14;19830:58;19922:7;19917:2;19909:6;19905:15;19898:32;19713:224;:::o;19943:366::-;20085:3;20106:67;20170:2;20165:3;20106:67;:::i;:::-;20099:74;;20182:93;20271:3;20182:93;:::i;:::-;20300:2;20295:3;20291:12;20284:19;;19943:366;;;:::o;20315:419::-;20481:4;20519:2;20508:9;20504:18;20496:26;;20568:9;20562:4;20558:20;20554:1;20543:9;20539:17;20532:47;20596:131;20722:4;20596:131;:::i;:::-;20588:139;;20315:419;;;:::o;20740:191::-;20780:4;20800:20;20818:1;20800:20;:::i;:::-;20795:25;;20834:20;20852:1;20834:20;:::i;:::-;20829:25;;20873:1;20870;20867:8;20864:34;;;20878:18;;:::i;:::-;20864:34;20923:1;20920;20916:9;20908:17;;20740:191;;;;:::o;20937:140::-;20986:9;21019:52;21037:33;21046:23;21063:5;21046:23;:::i;:::-;21037:33;:::i;:::-;21019:52;:::i;:::-;21006:65;;20937:140;;;:::o;21083:129::-;21169:36;21199:5;21169:36;:::i;:::-;21164:3;21157:49;21083:129;;:::o;21218:440::-;21366:4;21404:2;21393:9;21389:18;21381:26;;21417:71;21485:1;21474:9;21470:17;21461:6;21417:71;:::i;:::-;21498:72;21566:2;21555:9;21551:18;21542:6;21498:72;:::i;:::-;21580:71;21647:2;21636:9;21632:18;21623:6;21580:71;:::i;:::-;21218:440;;;;;;:::o;21664:159::-;21804:11;21800:1;21792:6;21788:14;21781:35;21664:159;:::o;21829:365::-;21971:3;21992:66;22056:1;22051:3;21992:66;:::i;:::-;21985:73;;22067:93;22156:3;22067:93;:::i;:::-;22185:2;22180:3;22176:12;22169:19;;21829:365;;;:::o;22200:419::-;22366:4;22404:2;22393:9;22389:18;22381:26;;22453:9;22447:4;22443:20;22439:1;22428:9;22424:17;22417:47;22481:131;22607:4;22481:131;:::i;:::-;22473:139;;22200:419;;;:::o;22625:224::-;22765:34;22761:1;22753:6;22749:14;22742:58;22834:7;22829:2;22821:6;22817:15;22810:32;22625:224;:::o;22855:366::-;22997:3;23018:67;23082:2;23077:3;23018:67;:::i;:::-;23011:74;;23094:93;23183:3;23094:93;:::i;:::-;23212:2;23207:3;23203:12;23196:19;;22855:366;;;:::o;23227:419::-;23393:4;23431:2;23420:9;23416:18;23408:26;;23480:9;23474:4;23470:20;23466:1;23455:9;23451:17;23444:47;23508:131;23634:4;23508:131;:::i;:::-;23500:139;;23227:419;;;:::o;23652:225::-;23792:34;23788:1;23780:6;23776:14;23769:58;23861:8;23856:2;23848:6;23844:15;23837:33;23652:225;:::o;23883:366::-;24025:3;24046:67;24110:2;24105:3;24046:67;:::i;:::-;24039:74;;24122:93;24211:3;24122:93;:::i;:::-;24240:2;24235:3;24231:12;24224:19;;23883:366;;;:::o;24255:419::-;24421:4;24459:2;24448:9;24444:18;24436:26;;24508:9;24502:4;24498:20;24494:1;24483:9;24479:17;24472:47;24536:131;24662:4;24536:131;:::i;:::-;24528:139;;24255:419;;;:::o;24680:240::-;24820:34;24816:1;24808:6;24804:14;24797:58;24889:23;24884:2;24876:6;24872:15;24865:48;24680:240;:::o;24926:366::-;25068:3;25089:67;25153:2;25148:3;25089:67;:::i;:::-;25082:74;;25165:93;25254:3;25165:93;:::i;:::-;25283:2;25278:3;25274:12;25267:19;;24926:366;;;:::o;25298:419::-;25464:4;25502:2;25491:9;25487:18;25479:26;;25551:9;25545:4;25541:20;25537:1;25526:9;25522:17;25515:47;25579:131;25705:4;25579:131;:::i;:::-;25571:139;;25298:419;;;:::o;25723:221::-;25863:34;25859:1;25851:6;25847:14;25840:58;25932:4;25927:2;25919:6;25915:15;25908:29;25723:221;:::o;25950:366::-;26092:3;26113:67;26177:2;26172:3;26113:67;:::i;:::-;26106:74;;26189:93;26278:3;26189:93;:::i;:::-;26307:2;26302:3;26298:12;26291:19;;25950:366;;;:::o;26322:419::-;26488:4;26526:2;26515:9;26511:18;26503:26;;26575:9;26569:4;26565:20;26561:1;26550:9;26546:17;26539:47;26603:131;26729:4;26603:131;:::i;:::-;26595:139;;26322:419;;;:::o;26747:178::-;26887:30;26883:1;26875:6;26871:14;26864:54;26747:178;:::o;26931:366::-;27073:3;27094:67;27158:2;27153:3;27094:67;:::i;:::-;27087:74;;27170:93;27259:3;27170:93;:::i;:::-;27288:2;27283:3;27279:12;27272:19;;26931:366;;;:::o;27303:419::-;27469:4;27507:2;27496:9;27492:18;27484:26;;27556:9;27550:4;27546:20;27542:1;27531:9;27527:17;27520:47;27584:131;27710:4;27584:131;:::i;:::-;27576:139;;27303:419;;;:::o;27728:348::-;27768:7;27791:20;27809:1;27791:20;:::i;:::-;27786:25;;27825:20;27843:1;27825:20;:::i;:::-;27820:25;;28013:1;27945:66;27941:74;27938:1;27935:81;27930:1;27923:9;27916:17;27912:105;27909:131;;;28020:18;;:::i;:::-;27909:131;28068:1;28065;28061:9;28050:20;;27728:348;;;;:::o;28082:180::-;28130:77;28127:1;28120:88;28227:4;28224:1;28217:15;28251:4;28248:1;28241:15;28268:185;28308:1;28325:20;28343:1;28325:20;:::i;:::-;28320:25;;28359:20;28377:1;28359:20;:::i;:::-;28354:25;;28398:1;28388:35;;28403:18;;:::i;:::-;28388:35;28445:1;28442;28438:9;28433:14;;28268:185;;;;:::o;28459:137::-;28513:5;28544:6;28538:13;28529:22;;28560:30;28584:5;28560:30;:::i;:::-;28459:137;;;;:::o;28602:345::-;28669:6;28718:2;28706:9;28697:7;28693:23;28689:32;28686:119;;;28724:79;;:::i;:::-;28686:119;28844:1;28869:61;28922:7;28913:6;28902:9;28898:22;28869:61;:::i;:::-;28859:71;;28815:125;28602:345;;;;:::o;28953:220::-;29093:34;29089:1;29081:6;29077:14;29070:58;29162:3;29157:2;29149:6;29145:15;29138:28;28953:220;:::o;29179:366::-;29321:3;29342:67;29406:2;29401:3;29342:67;:::i;:::-;29335:74;;29418:93;29507:3;29418:93;:::i;:::-;29536:2;29531:3;29527:12;29520:19;;29179:366;;;:::o;29551:419::-;29717:4;29755:2;29744:9;29740:18;29732:26;;29804:9;29798:4;29794:20;29790:1;29779:9;29775:17;29768:47;29832:131;29958:4;29832:131;:::i;:::-;29824:139;;29551:419;;;:::o;29976:305::-;30016:3;30035:20;30053:1;30035:20;:::i;:::-;30030:25;;30069:20;30087:1;30069:20;:::i;:::-;30064:25;;30223:1;30155:66;30151:74;30148:1;30145:81;30142:107;;;30229:18;;:::i;:::-;30142:107;30273:1;30270;30266:9;30259:16;;29976:305;;;;:::o;30287:442::-;30436:4;30474:2;30463:9;30459:18;30451:26;;30487:71;30555:1;30544:9;30540:17;30531:6;30487:71;:::i;:::-;30568:72;30636:2;30625:9;30621:18;30612:6;30568:72;:::i;:::-;30650;30718:2;30707:9;30703:18;30694:6;30650:72;:::i;:::-;30287:442;;;;;;:::o;30735:229::-;30875:34;30871:1;30863:6;30859:14;30852:58;30944:12;30939:2;30931:6;30927:15;30920:37;30735:229;:::o;30970:366::-;31112:3;31133:67;31197:2;31192:3;31133:67;:::i;:::-;31126:74;;31209:93;31298:3;31209:93;:::i;:::-;31327:2;31322:3;31318:12;31311:19;;30970:366;;;:::o;31342:419::-;31508:4;31546:2;31535:9;31531:18;31523:26;;31595:9;31589:4;31585:20;31581:1;31570:9;31566:17;31559:47;31623:131;31749:4;31623:131;:::i;:::-;31615:139;;31342:419;;;:::o;31767:225::-;31907:34;31903:1;31895:6;31891:14;31884:58;31976:8;31971:2;31963:6;31959:15;31952:33;31767:225;:::o;31998:366::-;32140:3;32161:67;32225:2;32220:3;32161:67;:::i;:::-;32154:74;;32237:93;32326:3;32237:93;:::i;:::-;32355:2;32350:3;32346:12;32339:19;;31998:366;;;:::o;32370:419::-;32536:4;32574:2;32563:9;32559:18;32551:26;;32623:9;32617:4;32613:20;32609:1;32598:9;32594:17;32587:47;32651:131;32777:4;32651:131;:::i;:::-;32643:139;;32370:419;;;:::o;32795:179::-;32935:31;32931:1;32923:6;32919:14;32912:55;32795:179;:::o;32980:366::-;33122:3;33143:67;33207:2;33202:3;33143:67;:::i;:::-;33136:74;;33219:93;33308:3;33219:93;:::i;:::-;33337:2;33332:3;33328:12;33321:19;;32980:366;;;:::o;33352:419::-;33518:4;33556:2;33545:9;33541:18;33533:26;;33605:9;33599:4;33595:20;33591:1;33580:9;33576:17;33569:47;33633:131;33759:4;33633:131;:::i;:::-;33625:139;;33352:419;;;:::o;33777:147::-;33878:11;33915:3;33900:18;;33777:147;;;;:::o;33930:373::-;34034:3;34062:38;34094:5;34062:38;:::i;:::-;34116:88;34197:6;34192:3;34116:88;:::i;:::-;34109:95;;34213:52;34258:6;34253:3;34246:4;34239:5;34235:16;34213:52;:::i;:::-;34290:6;34285:3;34281:16;34274:23;;34038:265;33930:373;;;;:::o;34309:271::-;34439:3;34461:93;34550:3;34541:6;34461:93;:::i;:::-;34454:100;;34571:3;34564:10;;34309:271;;;;:::o;34586:99::-;34638:6;34672:5;34666:12;34656:22;;34586:99;;;:::o;34691:364::-;34779:3;34807:39;34840:5;34807:39;:::i;:::-;34862:71;34926:6;34921:3;34862:71;:::i;:::-;34855:78;;34942:52;34987:6;34982:3;34975:4;34968:5;34964:16;34942:52;:::i;:::-;35019:29;35041:6;35019:29;:::i;:::-;35014:3;35010:39;35003:46;;34783:272;34691:364;;;;:::o;35061:313::-;35174:4;35212:2;35201:9;35197:18;35189:26;;35261:9;35255:4;35251:20;35247:1;35236:9;35232:17;35225:47;35289:78;35362:4;35353:6;35289:78;:::i;:::-;35281:86;;35061:313;;;;:::o
Swarm Source
ipfs://a167dc6653fae59f74369e18b0c9433df3412a71334ace4ecb537f2fe3387b65
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.